Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Arduino e Input da seriale

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Arduino e Input da seriale

Messaggioda Foto UtenteVRI » 19 nov 2012, 12:59

Salve :D
Smanettando un po' sono riuscito a far compiere ad Arduino ciò che volevo utilizzando un input da tastiera:
la pressione di un determinato tasto della tastiera faceva stampare sul monitor seriale la temperatura letta da un sensore.

Mi piacerebbe cambiare il tipo di input ovvero, passare dalla pressione di un solo pulsante a, per esempio, l'input "leggi" al posto che la sola pressione del tasto "L".
è possibile?
Mi sono spiegato bene?
:D
Grazie!
Avatar utente
Foto UtenteVRI
754 2 7 9
Sostenitore
Sostenitore
 
Messaggi: 1259
Iscritto il: 14 giu 2011, 12:00

0
voti

[2] Re: Arduino e Input da seriale

Messaggioda Foto Utentesimo85 » 19 nov 2012, 13:42

Se hai usato la EUSART per leggere un carattere alla volta, modifica la funzione di ricezione e quando hai letto N caratteri fai quello che devi fare.
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[3] Re: Arduino e Input da seriale

Messaggioda Foto UtenteVRI » 19 nov 2012, 19:01

EUSART? :shock:
Mi sa che non è cosa alla mia portata :shock:
Avatar utente
Foto UtenteVRI
754 2 7 9
Sostenitore
Sostenitore
 
Messaggi: 1259
Iscritto il: 14 giu 2011, 12:00

0
voti

[4] Re: Arduino e Input da seriale

Messaggioda Foto UtenteTardoFreak » 19 nov 2012, 19:18

Ma stai scherzando, vero?
Hai aperto la discussione dicendo che usi l' input da seriale ed ora vieni a dire che l' EUSART (o USART o UART chiamala come vuoi) è fuori dalla tua portata? :shock:
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[5] Re: Arduino e Input da seriale

Messaggioda Foto UtenteVRI » 19 nov 2012, 23:30

Non so che cosa significa quella sigla :(
Avatar utente
Foto UtenteVRI
754 2 7 9
Sostenitore
Sostenitore
 
Messaggi: 1259
Iscritto il: 14 giu 2011, 12:00

1
voti

[6] Re: Arduino e Input da seriale

Messaggioda Foto Utentedario » 28 nov 2012, 17:34

Ciao,

devi creare un ciclo while per memorizzare tutti i caratteri provenienti dalla seriale in un buffer di memoria. A questo punto dovrai implementare una funzione che legga tutto il buffer e se trova i caratteri che compongono la stringa "leggi" in sequenza a partire da un determinato indice del buffer, compiano l'azione desiderata.

Per iniziare cerca del codice per la gestione delle code circolari, se capisci come funziona una coda, saprai anche come procedere per il resto del tuo programma.

Saluti,
Dario.
Souliss Piattaforma di sviluppo open-source per IoT.

"Un esperto è un uomo che ha fatto tutti gli errori che è possibile compiere in un campo molto ristretto." N. Bohr

Saluti,
Dario.
Avatar utente
Foto Utentedario
430 4 12
Expert EY
Expert EY
 
Messaggi: 394
Iscritto il: 11 mag 2006, 16:03
Località: Napoli

1
voti

[7] Re: Arduino e Input da seriale

Messaggioda Foto Utenteaduri » 29 nov 2012, 14:21

Questo è uno stralcio di codice in Mikrobasic con cui ho letto da una seriale di un GPS (crea buffer) e poi filtrato secondo il protocollo NMEA183.
Se ti può essere utile.....

ciao
Antonio

Codice: Seleziona tutto
'esempio stringa da analizzare
'$GPGGA,204620.999,4530.6671,N,00916.9484,E,0,00,5 0.0,101.9,M,,,,0000*32

if USART_Data_Ready=1 then
rxDataGarbage = USART_Read
end if

'filtro frase "$GPGGA,"

rxDone = 0
rxIndex = 0
while rxDone=0
if USART_Data_Ready=1 then
     rxGPSData = USART_Read
       if (rxGPSData="$") then    'riconoscimento carattere $
             rxDone = 1
        else goto inizio
       end if
end if
wend

rxDone = 0
rxIndex = 0
while rxDone=0
if USART_Data_Ready=1 then
      rxGPSData = USART_Read
       if (rxGPSData="G") then     'riconoscimento carattere G
           rxDone = 1
       else goto inizio
       end if
end if
wend

rxDone = 0
rxIndex = 0
while rxDone=0
    if USART_Data_Ready=1 then
         rxGPSData = USART_Read
         if (rxGPSData="P") then
            rxDone = 1
          else goto inizio
          end if
    end if
wend

rxDone = 0
rxIndex = 0
while rxDone=0
if USART_Data_Ready=1 then
     rxGPSData = USART_Read
       if (rxGPSData="G") then
             rxDone = 1
        else goto inizio
       end if
end if
wend

rxDone = 0
rxIndex = 0
while rxDone=0
if USART_Data_Ready=1 then
      rxGPSData = USART_Read
       if (rxGPSData="G") then
           rxDone = 1
       else goto inizio
       end if
end if
wend

rxDone = 0
rxIndex = 0
while rxDone=0
    if USART_Data_Ready=1 then
         rxGPSData = USART_Read
         if (rxGPSData="A") then
            rxDone = 1
          else goto inizio
          end if
    end if
wend

rxIndex = 0
rxdone = 0
while rxDone=0
if USART_Data_Ready=1 then
   rxGPSData = USART_Read
   UTC[rxIndex] = rxGPSData ' UTC (ora)
                if (rxGPSData=44) then
                   rxdone=1
                end if
inc(rxIndex)
end if
wend

rxIndex = 0
rxdone = 0
while rxDone=0
if USART_Data_Ready=1 then
   rxGPSData = USART_Read
   Latitudine[rxIndex] = rxGPSData ' Latitudine
if (rxGPSData=44) then
   rxdone = 1
end if
inc(rxIndex)
end if
wend


Avatar utente
Foto Utenteaduri
435 1 5 11
Expert
Expert
 
Messaggi: 937
Iscritto il: 29 giu 2005, 23:13
Località: Genova

0
voti

[8] Re: Arduino e Input da seriale

Messaggioda Foto UtenteVRI » 29 nov 2012, 18:20

Purtroppo non è molto comprensibile per me :(
Avatar utente
Foto UtenteVRI
754 2 7 9
Sostenitore
Sostenitore
 
Messaggi: 1259
Iscritto il: 14 giu 2011, 12:00

0
voti

[9] Re: Arduino e Input da seriale

Messaggioda Foto UtenteTardoFreak » 29 nov 2012, 19:06

Il suggerimento di Foto Utentedario è ottimo.
Io penso che dovresti lasciar perdere lo smanettamento per iniziare a studiare bene il C.
Di buoni libri e tutorial ben fatti ne trovi parecchi.
Purtroppo se non hai buone basi di programmazione non puoi andare oltre il semplice giochicchiare.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[10] Re: Arduino e Input da seriale

Messaggioda Foto UtenteVRI » 29 nov 2012, 19:51

Spezziamo una lancia in mio favore...In un anno, con qualche esercizio di rpatica alla sera e qualche appunto di linguaggio C insegnato ad un elettrotecnico, ho imparato a gestire input, output, analogiche (a livello base) ecc. su Arduino...
I prossimi passi per me sono la gestione di un display (con le librerie apposite) e far lavorare l'ATMega 328 in stand alone...
Non facendo tutto ciò di mestiere non ho molto tempo da dedicargli e per ora sono soddisfatto dei progressi che ho compiuto :D
Avatar utente
Foto UtenteVRI
754 2 7 9
Sostenitore
Sostenitore
 
Messaggi: 1259
Iscritto il: 14 giu 2011, 12:00

Prossimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti