【Arduino】 タクトスィッチ  ディジタル入力

LESSON 015

  タクトスィッチでArduino を制御する

  
 スィッチでONにする事でマイコンボードに電気信号が伝達し制御出来ます。
   スィッチを押したら、LEDが点灯しもう一つのスィッチを押したらLEDが消える制御の実験をします。

目 次

    • 構成部品
    • 配線図
    • スケッチ
    • 解説
    • まとめ
構成部品

Arduino​
USBケーブル​
ブレッドボード​
タクトスィッチ​
LED​
抵抗​ 220Ω
ジャンパー線
配線図

   

  
       GPIO    5  ⇒ 抵抗 220Ω
       GPIO 8  ⇒ スイッチ1
    GPIO 9  ⇒ スイッチ2​ 
    GPIO GND ⇒ ー
       
      

スケッチ《 test013 》
   
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を参考に作っていますが、私なりに噛み砕いて書いているつもりですが、判らない点がありましたら連絡下さい。

目次