Arduino Unoを利用した電子工作を学習する講座シリーズ。Arduino工作講座の第5弾。この講座では、スイッチの利用方法について学ぶことができます。
Arduino工作講座 スイッチを使ってみよう
プッシュボタンを使って、LEDを点けたり、切ったりしよう。このレッスン前半はELEGOO社のArduino基本セットのチュートリアルのレッスン5を参考にさせていただいています。
必要となる部品
- Arduino Uno
- プッシュボタン
- 赤色LED
- 220Ωの抵抗
- ブレッドボード
- ジャンパー線 赤色と黒色
回路と回路図


プログラムコード
//www.elegoo.com
//2016.12.08
int ledPin = 5;
int buttonApin = 9;
int buttonBpin = 8;
byte leds = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(buttonApin, INPUT_PULLUP);
pinMode(buttonBpin, INPUT_PULLUP);
}
void loop()
{
if (digitalRead(buttonApin) == LOW)
{
digitalWrite(ledPin, HIGH);
}
if (digitalRead(buttonBpin) == LOW)
{
digitalWrite(ledPin, LOW);
}
}
この演習では、片方のボタンを押すとLEDが点き、もう片方のボタンを押すとLEDが消える回路を作成していきます。
なんで、スイッチを2個使うんだろうと思うと思います。
それは、今回使ったスイッチがプッシュボタンだからです。
カッチと押すと、その状態を維持しないで、手を離したら元の状態に戻ってしまいます。
ループで状態をずっと確認しているので、条件分岐で簡単に振り分けていると、手を離したら、消えてしまします。押すと点く。はなすと切れる。なので、点けるスイッチと切るスイッチを2つ用意しています。
基本的には、電気が流れているのでHIGHの状態になります。スイッチを押すとLOW、電気が流れていない状態になります。
今回は、ボタンAが押されると、LEDの電気をHIGHにしています。ボタンBが押されると、LEDの電気をLOWにしています。
IOピンのモードを設定しています。
pinMode(pinNo, INPUT); :pinNoで指定された外部端子を入力モードにします。
pinMode(pinNo, OUTPUT); :pinNoで指定された外部端子を出力モードにします。
ピン番号で指定されたピンの状態を読み取ります。デジタルピンはHIGHとLOWを確認できます。
digitalWrite(pinNo, HIGH); :pinNoで指定された外部端子をHIGHの状態にします。
digitalWrite(pinNo, LOW); :PinNoで指定された外部端子をLOWの状態にします。
スライドスイッチ、または、トグルスイッチを使ってみる。
必要となる部品
- Arduino Uno
- スライドスイッチ、または、トグルスイッチ
- 赤色LED
- 220Ωの抵抗
- ブレッドボード
- ジャンパー線 赤色と黒色


プログラムコード
int ledPin = 5;
int buttonApin = 8;
byte leds = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(buttonApin, INPUT_PULLUP);
}
void loop()
{
if (digitalRead(buttonApin) == LOW)
{
digitalWrite(ledPin, HIGH);
}
else
{
digitalWrite(ledPin, LOW);
}
}
この演習では、スライドスイッチ、トグルスイッチというスイッチを使っています。普段利用しているオンオフするスイッチなら形が違うだけで全て考え方は同じですね。
プログラムもみてもらえばわかりますが、簡単だと思います。基本は、電気が流れているのでHIGH状態から始まります。なので、ボタンを押すと、LOWの状態になります。
このボタンは、もう一度、スイッチを切る動作をしない限り、LOWならLOWの状態が続きます。続いている間、LEDをHIGHにしています。電気をつけている状態です。
すこし気づいてくると思うのですが、ピンの状態を変えただけで電気がつきます。マイコンを使っているので難しいと思っていたのに、マイコンに電気を流す状態のHIGH、電気を流さない状態のLOWを指定してもらっているだけみたいです。簡単に思えてきませんか?
何か電子工作してみたくなってきましたね。では、また、次の機会に。
コメント