Salve a tutti, sto facendo dei piccoli circuitini per capire Arduino.
Ho fatto un circuito in cui alla pressione di un pulsante due led incominciano a lampeggiare e quando lo premo nuovamente si fermano. Questo "teoricamente" perchè ho usato delay, e giustamente se premo il pulsante mentre il programma è in delay non melo riconosce...
Qualcuno mi potrebbe spiegare come potrei convertire le due funzioni delay con millis?
Ho fatto delle prove ma non funziona...
Ecco lo Sketch:
int led1 = 11;
int led2 = 10;
int puls = 12;
int newstato = 0;
int vecchiostato = 0;
int statoled;
void setup() {
pinMode( led1, OUTPUT);
pinMode( led2, OUTPUT);
pinMode( puls, INPUT);
Serial.begin(9600);
digitalWrite( led1, LOW);
digitalWrite( led2, LOW);
}
void loop() {
newstato = digitalRead( puls );
if ( newstato == 1 && vecchiostato == 0)
{
statoled = 1 - statoled;
}
vecchiostato = newstato;
if ( statoled == 1)
{
digitalWrite( led2, HIGH);
digitalWrite( led1, LOW);
delay(1000);
digitalWrite( led1, HIGH);
digitalWrite( led2, LOW);
delay(1000);
}
Serial.print( newstato );
Serial.print(" ");
Serial.print( vecchiostato );
Serial.print(" ");
Serial.println( statoled );
delay(50);
}