Salve a tutti, mi sono appena iscritto a questo fantastico forum perchè ho un problema con una programma per la scuola.
In pratica devo far sì che attraverso il monitor seriale quando digito le lettere 'a' 'b' 'c' si devono rispettivamente accendere led1-led2-led3, quando digito le lettere 'd''e''f' si devono spegnere rispettivamente led1-led2-led3. Mentre pigio 'g' si devono spegnere tutti e 3 i led. Fin qui nessun problema ma l'esercizio vuole anche che se pigio 'z' i 3 led si devono accendere/spegnere in sequenza con un ritardo di 100ms. Il ciclo son riuscito a farlo ma in pratica tutto questo avviene una sola volta ma non all'infinito, in pratica i led devono andare accendersi/spegnere all'infinito fino a quando non premo g per spegnere tutti i 3 led. Ho fatto il programma ma c'è appunto questo problema spero che qualcuno mi dica come risolverlo
Anche se è più "sporca" questa soluzione almeno proviamola. smiley
Infatti non è elegante, ma almeno funziona e c'è sempre tempo per trovare una soluzione più elegante.
Il codice mostrato sopra viene eseguito con un ritardo di almeno 600ms dovuto ai 6 delay(100) che se diventassero 1000 renderebbe il codice non funzionante.
Normalmente in questi casi di usa millis() per evitare delay() che si dice essere bloccante, ma se state seguendo un corso e possibile che ancora l'insegnante non vi abbia spiegato la funzione millis() e come usarla.
Grazie della dritta MauroTec!
E quindi il codice con millis diventerebbe? (Almeno anticipo il prof quando lo spiegherà ] )
Ho letto su internet un po' di informazioni ma ho notato che il codice si allungherebbe di molto usando millis(). O sbaglio?
Si esatto non ci hanno ancora spiegato il millis ().
Il mio docente si fa sempre più esigente =( vuole che il reset avvenga con tutte le lettere dell'alfabeto, mi spiego meglio: se premo 'z' entra nel ciclo che va all'infinito fin qui tutto ok, poi se premo una lettera ad esempio 'u' o qualsiasi altra lettera della tastiera i led si devono deve resettare mentre se premo 'a' o 'b' o 'c' il ciclo si deve fermare e accendere rispettivamente i soli led1 \ led2 \led3
Ti ringrazio ancora e scusami per l'attesa della risposta.
No non va in pratica quando avvio il ciclo, se premo una qualsiasi lettera non si ferma e se premo 'a' o 'b' o 'c' i 3 led finisco il ciclo e rimangono accesi tutti e 3 contemporaneamente
Posso parlare francamente? sono contrario a questo genere di aiuti, chi lo deve fare il compito... tu o gli altri utenti del forum? In questo modo non impari di certo
Poi... hai ragione, non sono certo fatti miei, per cui se a te va bene così, a me va bene il doppio