【Arduino】タクトスイッチ使ってみた
タクトスイッチでLEDを制御
うねるジャンパワイヤ……。
タクトスイッチというスイッチを、オンやオフにすることでLEDを点けたり消したりしてみました。
タクトスイッチとは
軽く説明します🌱
タクトスイッチは、そのボタンを押し、スイッチをオンにすれば電気を通す通電状態になり、離してスイッチをオフにすれば、電気が流れない絶縁状態になります。
これを利用すると、ボタンを押せばLEDは点灯、離せば消灯というふうな制御をすることができます。
それと上の写真のように、ピンクの文字、青い文字の所がそれぞれ通電するようになっています。
プログラム
//タクトスイッチを接続するピン const int switchPin = 2; //LEDを接続するピン const int ledPin = 13; void setup() { //デジタル2番ピンを入力用として設定 pinMode(switchPin, INPUT); //デジタル13番ピンを出力用として設定 pinMode(ledPin, OUTPUT); } void loop() { //タクトスイッチの状態を取得 int buttonState = digitalRead(switchPin); //タクトスイッチの状態をLEDに反映 digitalWrite(ledPin, buttonState); }
スケッチはこうです。
degitalRead()関数が、タクトスイッチが通電または絶縁状態かを読み取ります。
それを、degitalWrite()関数で、LEDへ伝えています。
回路図
LEDはプラス極側をデジタル13番ピンへ、マイナス極側をブレッドボードのGNDへつないでいます。
タクトスイッチは電源の5Vと結果を入力するためのデジタル2番ピン、それとブレッドボードのGNDへつなぎます。
気を付けなければいけないのが、ブレッドボードのGNDは穴が2列あるけれど、通電はそれぞれの列ずつでしかしないこと。
だからいろいろなピンがGNDを使うには、同じ列のなかでつなげなくてはいけない😶
スイッチのようす
ボタンを押しておらず、LEDも消えている状態です。
ボタンを押しているので、LEDがキレイにぴかっと光ってます!
感想
今回はかなり苦戦しました。
特に回路。タクトスイッチの結果がちゃんとLEDへ反映されなくて、ガチャガチャ組みかえまくりました…😓
でもそれで、ブレッドボードのGNDは同じ列同士じゃないと通電しないことが思い知れてよかったです。
こんな一見単純なところでつまずくとは思いませんでしたが…。
何はともあれ、結果はうまくいってよかったので次もいろいろと挑戦していきます!!
【Arduino】Lチカやってみた③
明るくなったり暗くなったり
今回はArduinoのスケッチ例から「fade」を使って動かしていきたいと思います。
これもLチカと呼んでいいのかな…?
まぁ、LEDが何かしら動作してればいいや😏
プログラム
//LEDを明るくしたり暗くする //intでそれぞれ定義する int led = 9; //LEDの初期値が9 int brightness = 0; //brightnessの初期値が0 int fadeAmount = 5; //fadeAmountの初期値が5 void setup() { //デジタルピン9番をLED出力設定 pinMode(led, OUTPUT); } void loop() { //PWM波をデジタルピン9番にデューティ比brightness/255で出力 analogWrite(led, brightness); //次のloop()実行時のbrightnessの値 //fadeamountを加算していく brightness = brightness + fadeAmount; //brightnessの値が0以下または255以上であるときfadeAmountの符号反転 if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; } //最後に30ミリ秒待つ delay(30); }
こんな感じです。
PWM(Pulse Width Modulation)波とは、スイッチのオンとオフのスピードを切り替える電圧の制御をする波のことです。
制御は、デューティ比という比率によって行われます。
このスケッチのデューティ比は、周期の最大値255÷brightnessの値と決められています。
brightnessの値は、ループ関数の中に書かれた条件と式によって変化を続けます。
このおかげでデューティ比もまたずっと変化するので、電力が強くなったり弱くなったりが繰り返されます。
そのためLEDも、明るくなったり暗くなったりし続けます。
回路図
「Lチカやってみた①」とほとんど同じ回路ですが、つないでいるピンが違います。
今回はデジタル9番ピンを使っています。
実際のようす
gif動画ですが…。
もわ~と明るくなったり暗くなったりを繰り返しています。
ホタルの光みたいですね。
感想
最初は難しいプログラムなのかなと思ったけど、わかれば簡単でした。
スケッチ例、他にもいろいろ試していきたいです。
【Arduino】Lチカやってみた②
LEDを交互に光らせてみたー
2種類のLEDを使って、Lチカをちょいレベルアップ。
プログラム
void setup() { //新たにデジタル12番ピンを設定 pinMode(12, OUTPUT); pinMode(13, OUTPUT); } void loop() { //12番ピンにつながるLEDは点灯 digitalWrite(12, HIGH); //13番ピンにつながるLEDは消灯 digitalWrite(13, LOW); //ついでに時間を2000ミリ秒へ変えちゃった delay(2000); //12番ピンのLED消灯 digitalWrite(12, LOW); //13番ピンのLED点灯 digitalWrite(13, HIGH); delay(2000); }
この間のプログラムにちょこっと書き加えたただけ。
回路図
今回はふたつのLEDのマイナス極をそれぞれGNDへつなげる必要があるので、前回のようにひとつのワイヤでGNDピンへ直接つなぐことができません。
なのでブレッドボードにあるGND部分を利用します。
LEDのマイナス極とここをそれぞれワイヤでつなぎ、またこことArduinoのGNDピンとをつなぐと、電気がちゃんとめぐります!
実際に点けてみた
12番ピンにつないだのが緑色のLED、
13番ピンにつないだのが赤色のLEDです。
今点灯しているのは緑色…。わかりづらいんですが😓
それぞれにつなげてある抵抗の値も違うので…。
緑色の抵抗値は10kΩ。
拡大しました。
仄か~に光ってます。
そして今点いているのが赤色のLEDです。すごくまぶしい!!
緑のLEDはちゃんと休んでます。
赤色の抵抗値は100Ωです。
今回の感想
だんだんArduino触るの慣れてきたかもです。
それとLEDとか抵抗とか、もっと部品をそろえていきたいなって思いました。
【Arduino】Lチカやってみた①
電子工作の第一歩 Lチカやってみよー
プログラム
ほとんどArduinoの中に入ってるスケッチ例使っただけ。
ファイル>スケッチ例>01.Basics>Blinc
//起動時に一度だけ設定される void setup() { //デジタル13番ピンを出力用として設定する pinMode(13, OUTPUT); } //繰り返し実行される void loop() { //デジタル13番ピンをHIGHに設定してLEDを点灯 digitalWrite(13, HIGH); //1000ミリ秒待つ(1秒止める) delay(1000); //デジタル13番ピンをLOWに設定してLEDを消灯 digitalWrite(13, LOW); delay(1000); }
これでLEDがちかちかします💡
deray();の()内をいろいろな数字に変えると面白い!
回路図
LEDのアノード(+)を13番に、カソード(-)をGND(グランド)につながるように組みます。
※LEDの脚が長いほうがアノード、もう一方がカソードです。
アノードの前に抵抗100Ωをはさみ、LEDへの負担を軽くしておきました😉
13番からは電気が流れてくるので「+」、GNDはその名の通り地面に電気を放つということで「-」の役割です。
今回の感想
LEDが思い通りに点く瞬間がとても楽しいです。
はじめての技術ブログ😄
テストです。
let hoge = "Hello World!!"