響ロボットのブログ

ロボット製作のメモ的な感じでブログを書いていきます。初心者が書いているのでご参考程度にどうぞ。

Arduinoを使ってスイッチ入力をやってみる

今回はタクトスイッチを使ってスイッチ入力をやっていきます。プルアップ、プルダウンの話が出てくるので理解できていない人は

soundrobot.hatenablog.com

このブログを先に見ましょう!!

 

今回使用するタクトスイッチ

回路図

1番の回路図を見ると10k抵抗を使ってプルダウンしています。しかし2番の回路図を見ると抵抗がどこにも見当たりません。あれ? と思う方がいるかもしれませんがこれで大丈夫です。Arduinoは「pinMode(SW_PIN,INPUT_PULLUP)」と宣言するとArduino内で勝手にプルアップしてくれます。これは便利ですね!!、外部抵抗を必要としないので回路を簡素化することができます。もちろん外部抵抗を使ってプルアップしてもいいですよ。

 

外部プルダウンさせた時のプログラム例

//タクトスイッチ外部プルダウンプログラム
const int SW_PIN = 2;                       //20番ピン(D2)をSW_PINという名前に紐づけした。
void setup(){
  pinMode(SW_PIN,INPUT);                   //SW_PIN(D2)を入力ピンに指定した。
  Serial.begin( 9600 );                    // シリアル通信速度9600bpsに設定して開始
}
void loop() {
  if ( digitalRead( SW_PIN ) == HIGH ) {  //digitalRead( SW_PIN )でSW_PINの状態を読み取ってくる。
                                            //HIGHを読み取るとSerial.println("Switch is ON");を実行。
        Serial.println("Switch is ON");  //シリアルモニタに表示させる
  } 
  else {                                //ifが発動しないすなわちLOWを読み取ると
                                            //Serial.println("Switch is OFF");を実行。
      Serial.println("Switch is OFF");   //シリアルモニタに表示させる
  }
  delay( 200 );                           //0.2秒待機
}

内部プルアップさせた時のプログラム例

//タクトスイッチ内部プルアッププログラム
const int SW_PIN = 2;                       //20番ピン(D2)をSW_PINという名前に紐づけした。
void setup(){
  pinMode(SW_PIN,INPUT_PULLUP);             //SW_PIN(D2)を入力ピンに指定した。
  Serial.begin( 9600 );                     // シリアル通信速度9600bpsに設定して開始
}
void loop() {
    if ( digitalRead( SW_PIN ) == HIGH ) {  //digitalRead( SW_PIN )でSW_PINの状態を読み取ってくる。
                                              //HIGHを読み取るとSerial.println("Switch is ON");を実行。
        Serial.println("Switch is OFF");    //シリアルモニタに表示させる
    } 
    else {                                  //ifが発動しないすなわちLOWを読み取ると
                                              //Serial.println("Switch is OFF");を実行。
        Serial.println("Switch is ON");     //シリアルモニタに表示させる
    }

    delay( 200 );                           //0.2秒待機
}

実際の接続画像

外部プルダウン回路

内部プルアップ回路
配線が完了するとプログラムをダウンロードしましょう。
ArduinoIDEのシリアル通信の速度設定をお忘れなく。
シリアルモニタを確認するとスイッチが押されたらSwitch is ONと表示されます。
これでタクトスイッチの使い方紹介は終わりです。お疲れ様でした。