10.タクトスイッチの入力を判定するdigitalRead
2016/08/18
スポンサードサーチ
digitalReadによって読み取るデジタル信号
ArduinoにおいてスイッチのON/OFFの状態を読むためには digitalReadを使います。
Arduinoの読み取るピンには、スイッチの接点の片方と+5Vを接続し、スイッチのもう片方は0V(GND)へ接続します。
原理的に言えば、スイッチが押されていないときは+5Vですから digitalReadをした場合 HIGH が返されます。
逆に、スイッチが押された瞬間は、+5VはGND側へ設置してしまうため、Arduinoのポートは0V(LOW)となり、この瞬間のdigitalReadはLOWを返します。
回路図的にあらわすと
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) ; //消す } }