LED a comando tramite monitor seriale

Inviato:
12 mar 2017, 22:43
da la1982
Salve ho scritto questo semplicemente codice di esempio.. ma funziona però perché se digito a o s mi salta fuori anche l'else ogni volta che premo "a" o "s".
ecco il codice:
- Codice: Seleziona tutto
void led_a_comando()
{
if(Serial.available()){
char comando = Serial.read();
if(comando == 'a'){
digitalWrite(ledPin, HIGH);
Serial.println("LED ON");
}else if(comando == 's'){
digitalWrite(ledPin, LOW);
Serial.println("LED OFF");
}else{
Serial.println("Comando non riconosciuto");
}
}
delay(10);
}
immagine:
avete idea grazie mille.
Buona notte.
Re: led a comando tramite monitor seriale

Inviato:
12 mar 2017, 22:49
da la1982
informazione.. ho caricato il programma sbagliato.. ma fa la stessa cosa di quello precedente..
dopo LED ON mi viene la scritta "Comando non riconosciuto"
e se premo la s "LED OFF" esce fuori sempre l'else.
avete idea?
Re: led a comando tramite monitor seriale

Inviato:
12 mar 2017, 23:13
da CarloCoriolano
Quando rilevi i due comandi, svuota il buffer d'ingresso.
Re: led a comando tramite monitor seriale

Inviato:
13 mar 2017, 13:11
da la1982
come si fa.. ?
mi dici bene come si chiama il buffer che cerco documentazione su google?.
Grazie mille e buona giornata.
Re: led a comando tramite monitor seriale

Inviato:
13 mar 2017, 13:24
da gammaci
mi dici bene come si chiama il buffer
- Codice: Seleziona tutto
char comando

Quando fai
- Codice: Seleziona tutto
Serial.Read()
viene svuotato il buffer della seriale? o gli rimane in pancia l'ultimo ?
Re: led a comando tramite monitor seriale

Inviato:
13 mar 2017, 13:54
da CarloCoriolano
Intanto devi documentarti sulla libreria che stai usando. Quasi certamente l'oggetto "Serial" è una classe che avrà un buffer, col relativo metodo per svuotarlo, (ipotizzo io).
In secondo luogo, aiutandoti con ulteriori print più specifici e dettagliati, devi capire perché e con quali caratteri hai l'emissione di comando non valido. Potresti scoprire che da remoto stai inviando un carattere a 16 bit, invece che ad 8 bit, oppure una sequenza CR+LF, et smilia, dietro al carattere, ecc.
Insomma, se non fai del debug SERIO dietro al tuo lavoro, il forum può dirti ben poco più di nulla.
Ultimo, te lo dico senza che tu lo abbia chiesto, se non cancelli tutte le istruzioni "Delay" dal tuo codice, e non ripieghi su una forma più "elegante" per misurare il tempo, io non intervengo più.
Re: LED a comando tramite monitor seriale

Inviato:
15 mar 2017, 0:19
da MassimoB
la1982 ha scritto:Salve ho scritto questo semplicemente codice di esempio
Bene postalo tutto allora così si può avere una idea.
CarloCoriolano ha scritto:Ultimo, te lo dico senza che tu lo abbia chiesto, se non cancelli tutte le istruzioni "Delay" dal tuo codice, e non ripieghi su una forma più "elegante" per misurare il tempo, io non intervengo più.
e qui sono pienamente d'accordo...spezzo una lancia però in suo favore... gestire il tempo in un controllo di processo non è cosa che si impara in due minuti

siamo nella sezione Arduino

Re: LED a comando tramite monitor seriale

Inviato:
20 mar 2017, 15:30
da la1982
ok, studio meglio prima .. invece di partire sempre in 4.. che dopo la gatta per la furia li fecce cechi.
Non ricordo esattamente come si diceva il proverbio..
Ora mi leggo i manuali che ho.. senza correre..
vi ringrazio molto e scusate del ritardo ma stavo facendo il backup di marzo del mio computer.
Grazie e buona giornata.