Ciao ragazzi , ho collegato al mio arduino un amplificatore per poter creare delle luci stroboscopiche , i valori letti dall'ingresso analogico volevo mostrarli sul display seriale .
Siccome non potevo utilizzare la funzione delay() , poiché avrebbe interrotto le luci , ho creato questa piccola funzione che mi avrebbe stampato ogni 500 millisecondi il valore ma senza bloccare il ciclo (una specie di delay asincrono);
int led = 13;
int tempo , fatto = 0;
void asinkDelay (int attesa){ // ecco la funzione
if(fatto != 1){ // memorizza il tempo
tempo = millis() + attesa;
fatto = 1;
}
if(fatto == 1){
if(millis() >= tempo){ // controlla se ha superato il tempo memorizzato
Serial.println(millis());
fatto = 0;
}
}
}
void setup(){
pinMode( led , OUTPUT);
Serial.begin(9600);
}
void loop(){
digitalWrite(led , HIGH);
delay(100);
digitalWrite(led , LOW);
delay(100);
asinkDelay(500);
}
non so per quale motivo , la funzione per un certo periodo funziona , dopo di che smette di stampare.
mi sapreste aiutare? vi ringrazio in anticipo