本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アルディーノでのプログラムについて)

アルディーノでのLED点灯・消灯プログラムを作成する方法

2023/10/20 18:41

このQ&Aのポイント
  • アルディーノでプッシュスイッチを押したらLEDが点灯し、30秒後に消灯するプログラムの作り方を教えてください。
  • mills()を使用して秒数を取得し、LEDの状態を切り替えることでプログラムを実現する方法があります。
  • 具体的なプログラムスケッチや注意点なども教えていただけると助かります。
※ 以下は、質問の原文です

アルディーノでのプログラムについて

2021/05/07 10:09

アルディーノのプログラムについて質問です。プッシュスイッチを押したらLEDが点灯し、約30秒したら、消灯すると言うプログラムを作りたいです。mills()を使うと良いとアドバイスいただいたのですが、具体的なプログラムスケッチが分かりません。ご教授のほどお願いします。

質問者が選んだベストアンサー

ベストアンサー
2021/05/07 10:48
回答No.2

確実な反応するように割り込み使うの?それとも、ある程度の長押しで済ますの?それで色々変わってきます。

割り込み未使用の一番簡単バージョン
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:10

ありがとうございます。ちなみに割り込みありだとどのようになるのでしょうか?

質問者

補足

2021/05/07 15:09

ありがとうございます。ちなみに割り込みありだとどのようになるのでしょうか?

質問者

このQ&Aは役に立ちましたか?

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する

その他の回答 (2件中 1~2件目)

2021/05/07 10:40
回答No.1

このあたりが参考になるのでは
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

プッシュスイッチと書いてしまいましたが、タクトスイッチのような押すと接点が閉じるスイッチです。

質問者

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。