Ola pessoALL, sou novo nisto e estou a precisar da ajuda dos veteranos.
Tenho o seguinte código em que após accionar um interruptor começa a acender um led, e depois o segundo e depois o terceiro e depois acendem todos.
E eu queria que ao acenderem todos, permanecessem acesos ate novo clique do interruptor.
Alguém para dar uma dica?
Tenho o arduino uno original R3
Obrigado.
Ajeiras
CODIGO COMPLETO DO QUE TENHO
const int btnPin = 7; //RESISTENCIA 1K DO POSITOVO AO PINO 7 E AO INTERRUPTOR
//OUTRO PINO DO INTERRUPTOR À MASSA
const int led1Pin = 2;
const int led2Pin = 3;
const int led3Pin = 5;
const int led4Pin = 6;
enum fcnMode {
OFF,
LED1,
LED2,
LED3,
LED4,
ALL,
NBSTATE
};
int ledState1 = LOW, ledState2 = LOW, ledState3 = LOW; // ledState used to set the LED
unsigned long buttonState = 0;
int funcState = 0;
unsigned long currentMillis1, currentMillis2, currentMillis3; // will store current time
unsigned long previousMillis1, previousMillis2, previousMillis3; // will store last time LED was updated
void setup()
{
pinMode(btnPin, INPUT);
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
pinMode(led4Pin, OUTPUT);
}
void loop() {
buttonPressed();
setMode();
}
void buttonPressed() {
buttonState = pulseIn(btnPin, HIGH, 1000000);
if (buttonState > 5) {
funcState += 1;
}
funcState = funcState % NBSTATE;
}
void setMode() {
// All Off
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
switch (funcState) {
case OFF:
break;
case LED1:
digitalWrite(led1Pin, HIGH);
delay(1000);
digitalWrite(led1Pin, LOW);
case LED2:
digitalWrite(led2Pin, HIGH);
delay(1000);
digitalWrite(led2Pin, LOW);
case LED3:
digitalWrite(led3Pin, HIGH);
delay(1000);
digitalWrite(led3Pin, LOW);
delay(1000);
case ALL:
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, HIGH);
digitalWrite(led3Pin, HIGH);
delay(2000);
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
case LED4:
digitalWrite(led4Pin, HIGH);
delay(500);
}
}