Loop nel Loop

leo72:
Non può essere un bug di Arduino. Il seguente codice riproduce ciò che vuoi fare tu:

unsigned long contatore;

void setup() {
   delay(2000);
   Serial.begin(19200);
   contatore=millis()+5000;
}

void loop() {
   if (millis()>contatore) {
       contatore=millis()+5000;
       Serial.println("Ciao");
   } else {
       Serial.println("Oh...");
   }
   delay(1000);
}



E funziona perfettamente. Quindi è qualcos'altro nel tuo programma, qualcosa che magari hai tralasciato di esaminare.

credo che invece il problema sia Serial.println() in quanto finchè non trasmette blocca il codice ma tu hai messo un delay(1000) che probabilmente ha risolto il problema.

potrebbe essere?

edit:
pardon ho letto dopo tutta la continuazione sulla ram XD