このQ&Aは役に立ちましたか?
アルディーノでのLED点灯・消灯プログラムを作成する方法
2023/10/20 18:41
- アルディーノでプッシュスイッチを押したらLEDが点灯し、30秒後に消灯するプログラムの作り方を教えてください。
- mills()を使用して秒数を取得し、LEDの状態を切り替えることでプログラムを実現する方法があります。
- 具体的なプログラムスケッチや注意点なども教えていただけると助かります。
アルディーノでのプログラムについて
2021/05/07 10:09
アルディーノのプログラムについて質問です。プッシュスイッチを押したらLEDが点灯し、約30秒したら、消灯すると言うプログラムを作りたいです。mills()を使うと良いとアドバイスいただいたのですが、具体的なプログラムスケッチが分かりません。ご教授のほどお願いします。
質問者が選んだベストアンサー
確実な反応するように割り込み使うの?それとも、ある程度の長押しで済ますの?それで色々変わってきます。
割り込み未使用の一番簡単バージョン
const int OUTPUT_PIN = 13;
const int INPUT_PIN = 2;
void setup() {
pinMode(OUTPUT_PIN,OUTPUT);
pinMode(INPUT_PIN ,INPUT_PULLUP);
}
void loop() {
if(!digitalRead(INPUT_PIN)){
digitalWrite(OUTPUT,HIGH);
delay(30000);
digitalWrite(OUTPUT,LOW);
}
補足
2021/05/07 15:09
ありがとうございます。ちなみに割り込みありだとどのようになるのでしょうか?
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
その他の回答 (2件中 1~2件目)
このあたりが参考になるのでは
https://garretlab.web.fc2.com/arduino/introduction/timing/
スイッチを押したことを検出したらLEDを点灯させmills()の値を変数Xに入れる。
ループ内でXの値+30秒(mills()はミリ秒だから30000)を現在のmills()の値と比較し現在の方が大きくなったらLEDを消灯させる。
って感じですかね。
お礼
2021/05/07 15:14
分かりやすい解説ありがとうございます。参考にさせて頂きます。
補足
2021/05/07 16:31
プッシュスイッチと書いてしまいましたが、タクトスイッチのような押すと接点が閉じるスイッチです。
お礼
2021/05/07 15:10
ありがとうございます。ちなみに割り込みありだとどのようになるのでしょうか?