Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

LED a comando tramite monitor seriale

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[1] LED a comando tramite monitor seriale

Messaggioda Foto Utentela1982 » 12 mar 2017, 22:43

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:

codice.jpg


avete idea grazie mille.

Buona notte.
Avatar utente
Foto Utentela1982
65 2 6
Frequentatore
Frequentatore
 
Messaggi: 114
Iscritto il: 1 gen 2016, 21:06
Località: Massa(MS)

0
voti

[2] Re: led a comando tramite monitor seriale

Messaggioda Foto Utentela1982 » 12 mar 2017, 22:49

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?
Avatar utente
Foto Utentela1982
65 2 6
Frequentatore
Frequentatore
 
Messaggi: 114
Iscritto il: 1 gen 2016, 21:06
Località: Massa(MS)

2
voti

[3] Re: led a comando tramite monitor seriale

Messaggioda Foto UtenteCarloCoriolano » 12 mar 2017, 23:13

Quando rilevi i due comandi, svuota il buffer d'ingresso.
Avatar utente
Foto UtenteCarloCoriolano
1.446 3 4 7
---
 
Messaggi: 1023
Iscritto il: 24 mag 2016, 13:08

0
voti

[4] Re: led a comando tramite monitor seriale

Messaggioda Foto Utentela1982 » 13 mar 2017, 13:11

come si fa.. ?

mi dici bene come si chiama il buffer che cerco documentazione su google?.
Grazie mille e buona giornata.
Avatar utente
Foto Utentela1982
65 2 6
Frequentatore
Frequentatore
 
Messaggi: 114
Iscritto il: 1 gen 2016, 21:06
Località: Massa(MS)

1
voti

[5] Re: led a comando tramite monitor seriale

Messaggioda Foto Utentegammaci » 13 mar 2017, 13:24

mi dici bene come si chiama il buffer

Codice: Seleziona tutto
char comando

#-o

Quando fai

Codice: Seleziona tutto
Serial.Read()

viene svuotato il buffer della seriale? o gli rimane in pancia l'ultimo ?
Da soli conosciamo alcune cose.
In molti ne conosceremo molte di più.
Avatar utente
Foto Utentegammaci
3.838 2 4 7
Master
Master
 
Messaggi: 1040
Iscritto il: 27 feb 2014, 12:20

0
voti

[6] Re: led a comando tramite monitor seriale

Messaggioda Foto UtenteCarloCoriolano » 13 mar 2017, 13:54

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ù.
Avatar utente
Foto UtenteCarloCoriolano
1.446 3 4 7
---
 
Messaggi: 1023
Iscritto il: 24 mag 2016, 13:08

0
voti

[7] Re: LED a comando tramite monitor seriale

Messaggioda Foto UtenteMassimoB » 15 mar 2017, 0:19

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 :D
MCSA Windows Server 2012 R2
Cisco CCNA R&S - Cisco CCNA Security - Cisco CCNA Cyber Ops
CompTia A+ - CompTia Linux+ - CompTIA Systems Support Specialist CSSS
CompTia Pentest+ LPIC-1 - VCP VMware - Cisco CCNP Enterprise
Avatar utente
Foto UtenteMassimoB
14,2k 6 12 13
Expert free
 
Messaggi: 3163
Iscritto il: 28 ott 2012, 9:56
Località: Milano

0
voti

[8] Re: LED a comando tramite monitor seriale

Messaggioda Foto Utentela1982 » 20 mar 2017, 15:30

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.
Avatar utente
Foto Utentela1982
65 2 6
Frequentatore
Frequentatore
 
Messaggi: 114
Iscritto il: 1 gen 2016, 21:06
Località: Massa(MS)


Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti