はじめまして。
Arduinoのスリープモードからの割り込みを様々なサイトを見ながら学習中なのですが、プログラムの作成方法が分からず困っております。
電子工作およびプログラミングの初心者ですが、なんとかしたいので、皆様のご指導をお願いいたします。
<やりたいこと>
通常はスリープさせて、タクトスイッチを押すと割り込みが発生してLEDが点滅。その後、再度スリープ状態に戻る。
<回路>
・ArduinoのPD2を割り込み用ソケットに指定して、外部抵抗を通してプルダウンし、タクトスイッチの片方に接続しました。タクトスイッチのもう片方は5Vの電源に接続しました。
・ArduinoのPD8を出力ソケットに指定して、LEDに接続しました。
<プログラム>
#include <avr/sleep.h>
#include <avr/interrupt.h>
int led = 8;
volatile int state = LOW;
void sleepNow(){
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
attachInterrupt(0, interruptsw , RISING);
sleep_mode();
sleep_disable();
detachInterrupt(0);
}
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
if (state){
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}else{
sleepNow();
}
void interruptsw(){
state = !state;
}

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/11 13:01
2018/11/12 10:07
2018/11/12 10:34
2018/11/13 12:23