LESSON 015
タクトスィッチでArduino を制御する。
スィッチでONにする事でマイコンボードに電気信号が伝達し制御出来ます。
スィッチを押したら、LEDが点灯しもう一つのスィッチを押したらLEDが消える制御の実験をします。
![]() |
![]() |
目 次
-
- 構成部品
- 配線図
- スケッチ
- 解説
- まとめ
const int LED = 5;
const int SW1 = 9;
const int SW2 = 8;
void setup() {
pinMode( LED, OUTPUT );
pinMode( SW1, INPUT_PULLUP );
pinMode( SW2, INPUT_PULLUP );
}
void loop() {
if(digitalRead(SW1)==LOW)
{
digitalWrite( LED, HIGH );
}
if(digitalRead(SW2)==LOW)
{
digitalWrite( LED, LOW );
}
}
リンク
SW1を押すとLEDが点灯し、SW2を押すと消灯します。
- 設定
pinMode( 変数, INPUT_PULLUP );
デジタル信号は矩形波(赤)のような綺麗な波形ではありません。
実際(青)はノイズが乗っている状態です。
ノイズが乗っている信号から切り分け方は閾(しきい)値を設ける事で切り分けられます。
デジタル信号のノイズを閾値を設定する事である程度は対応できますが、スイッチの様な回路は不安定な状況が生まれます。この不安定な状況は誤動作の状態になります。
スイッチがOFFだと電気が流れず0Vになるはずですが、実際には幾らかの電気が流れていて不安定な状況になります。
そこで抵抗を入れることで安定した状況が作れます。
スイッチ等を用いる場合、抵抗を入れる事で対応するか、INPUT_PULLUP の設定する事で対応できます。
今回は INPUT_PULLUP で対応しました。
○ スイッチを使う場合は、Arduino では、内部プルアップ抵抗を設定することで安定した状態になります。
タクトスィッチ
リミットスイッチ
触覚センサー
○ Arduino を 学ぶ上で書籍やWebpageを参考に作っていますが、私なりに噛み砕いて書いているつもりですが、判らない点がありましたら連絡下さい。