Fala galera. Resolvi estudar Arduíno e para isso usei o livro Arduíno em Ação, este na foto abaixo.
Fiz o primeiro exercício e tudo bem. Usando a mesma configuração, fui para o segundo exercício, no qual foi adicionado um botão de interrupção e várias alterações no sketch.
- O sketch apresentou erros, mas fiz algumas alterações e funcionou na verificação. Os LEDs fazem o programado;
- Porém, o botão de interrupção não funciona. Ele não interrompe a sequência dos LEDs. Não sei se é erro na montagem ou do sketch. Troquei até o botão por outro.
Abaixo segue o esquema, seguido da foto da placa e o sketch.
volatile int state = LOW;
int ledArray = {8,9,10,11,12};
int count = 0;
int timer =75;
int pause=500;
void ledOnOff(); // minha alteração
int lastMillis = 20; // minha alteração
void setup() {
for (count=0;count<5;count++) {
pinMode(ledArray[count], OUTPUT);
}
attachInterrupt(0, ledOnOff, RISING);
}
void loop() {
for (count=0; count<5; count++) {
digitalWrite(ledArray[count], HIGH);
delay(timer);
}
delay(pause);
for (count=0; count<5; count++) {
digitalWrite(ledArray[count], LOW);
delay(timer);
}
delay(pause);
}
void ledOnOff() {
static unsigned long newMillis = millis();
if (newMillis - lastMillis < 50) {
}
else {
state =!state;
lastMillis = newMillis;
}
}