制御回路のはんだ付けが無事完了したので、さっそくプログラムを作る。
構造はシンプル。スイッチの状態に応じてLEDを点灯する。また、電源が入っている間はピッピッと音を出す。
構造はシンプルだし、エラー処理とかもいらないのでコードもシンプル。
voidsetup(){
// put your setup code here, to run once:
pinMode(PIN_PA1, OUTPUT);
pinMode(PIN_PA2, OUTPUT);
pinMode(PIN_PA3, OUTPUT);
pinMode(PIN_PA6, INPUT);
pinMode(PIN_PA7, INPUT);
}
voidloop(){
// put your main code here, to run repeatedly:
digitalWrite(PIN_PA1, !digitalRead(PIN_PA7));
digitalWrite(PIN_PA3, !digitalRead(PIN_PA6));
tone(PIN_PA2, 880, 10);
delay(500);
digitalWrite(PIN_PA1, HIGH);
digitalWrite(PIN_PA3, HIGH);
tone(PIN_PA2, 880, 5);
delay(500);
}
これで試しに動かしてみた。
・・・あれ。なぜかLEDが常に両方ONになる。なぜだろう?
試しにテスターでOFF側スイッチの電圧を計ってみる。0Vだ。あれ?テスターの針を当てたらLEDが消灯したぞ?ということは・・・入力インピーダンスが高すぎて、電荷が溜まってたのかな?というわけで、抵抗R11, 12を追加してみた。以下、変更後の回路図。
よし、無事動いた。以下、動いている様子。
今日はここまで。