大好きArduino

Arduino総合情報サイト

Arduinoプログラミング基礎

10.タクトスイッチの入力を判定するdigitalRead

2016/08/18

digitalReadによって読み取るデジタル信号

ArduinoにおいてスイッチのON/OFFの状態を読むためには digitalReadを使います。
Arduinoの読み取るピンには、スイッチの接点の片方と+5Vを接続し、スイッチのもう片方は0V(GND)へ接続します。
原理的に言えば、スイッチが押されていないときは+5Vですから digitalReadをした場合 HIGH が返されます。
逆に、スイッチが押された瞬間は、+5VはGND側へ設置してしまうため、Arduinoのポートは0V(LOW)となり、この瞬間のdigitalReadはLOWを返します。

回路図的にあらわすと

ArduinoSWOFFの回路図

ArduinoSWONの回路図

10Kの抵抗がついているのは、Arduinoのピンに大きな電流を流さないため!
ここに流れる電流は、オームの法則 I(電流 A)=E(電圧 V)÷ R(抵抗 Ω) によって求められます。
ここでは、5V÷10000 = 0.0005A → 5mA の電流が流れることになります。

ブレッドボードで配線してみると

スイッチ入力配線図

 

プログラム的にあらわすと


//LEDがおされたらボード上のLEDを点灯させる
//

#define input_pin   7
Edefine led_pin    13

void setup(){
    pinMode(input_pin,INPUT) ;
    pinMode(led_pin,OUTPUT) ;
}
void loop(){
    int status ;

    status = digitalRead(input_pin) ; //スイッチの状態を読む

    if(status == HIGH){
        digitalWrite(led_pin,HIGH) ;//点灯
    }else{
        digitalWrite(led_pin,LOW) ; //消す
    }

}

-Arduinoプログラミング基礎