ho montato oggi il modulo I/O per Arduino FT919K della Futura Elettronica.
Dopo aver capito più o meno come lavorava lo sketch di esempio, mi sono messo in testa di fare un programma che accendesse i relais in sequenza dall'1 all'8 con un intervallo di un secondo. Fatto, senza grossi problemi.
Poi mi sono messo in testa ( ahia ) di passargli l'intervallo da tastiera: e qui iniziano i guai.
L'input da tastiera mi passa sempre il valore ASCIi del numero che premo, seguito invariabilmente da un 10 ASCII.
Ho scritto questo per vedere cosa legge la seriale
int valore=0;
void setup() { Serial.begin(9600);
}
void loop(){
if (Serial.available()>0){
valore=Serial.read();
delay(300); Serial.println(valore);
}
}
e il monitor seriale mi restituisce sempre l'ASCII del carattere che premo, seguito da 10.
Perché la seriale è una trasmissione per byte e l'Arduino contiene un buffer in cui vengono riversati tutti i caratteri che riceve.
Il tuo codice legge e scrive tutti i caratteri ricevuti finché il buffer non è stato svuotato: if (Serial.available()>0).
Se stai usando il monitor seriale dell'IDE, questa spedisce anche il carattere di ritorno a capo, a meno che tu non glielo disattivi con l'apposita opzione "Nessun fine riga".
PS:
ne approfitto per ricordarti di leggere sul Reference la gestione della seriale. E di fare una ricerca sul forum: questa ti avrebbe dato centinaia di discussioni in cui si parla della seriale.
grazie della risposta: ci siamo arrivati insieme Ho disabilitato quella maledetta tendina.
Ci credi che ho sventrato google per questa cosa ? Non sono riuscito a trovare niente o forse ero troppo impappato col cervello: ho programmato oltre 20 anni fa col basic, e ci ho messo un po per entrare nella logica di un linguaggio che non ammette dichiarazioni on the fly
La reference l'ho vista, avoglia: ma un "please note that the IDE monitor settings add additional characters to the serial buffer" non stava da nessuna parte
Vabbè, continuo a giocare con i led e a fare la presentazione sul forum, mi scuso se non l'ho fatta prima ma ero proprio ( e sono ancora) cotto...
grazie della risposta: ci siamo arrivati insieme Ho disabilitato quella maledetta tendina.
Ci credi che ho sventrato google per questa cosa ? Non sono riuscito a trovare niente o forse ero troppo impappato col cervello: ho programmato oltre 20 anni fa col basic, e ci ho messo un po per entrare nella logica di un linguaggio che non ammette dichiarazioni on the fly
Anche tu provieni dal BASIC vecchio stampo? XD
Io ho imparato il C praticamente con l'Arduino, non l'ho mai usato in tanti anni.
leo72:
Anche tu provieni dal BASIC vecchio stampo? XD
Io ho imparato il C praticamente con l'Arduino, non l'ho mai usato in tanti anni.
Anch'io sono del 72 E forse anche tu come me ricevesti in regalo da un padre lungimirante un commodore 64, un padre che ha sacrificato un mese e oltre del proprio stipendio per la capoccia pazza di un figlio..
Il C l'ho letto tante volte quando mi mettevo a compilare qualche exploit, so leggere i listati e capire cosa fanno bene o male, ma quello che conta è aver programmato almeno una volta nella vita, anche in LISP, e aver acquisito la capacità di scomposizione di un problema..
Se si sa scomporre in "mattoncini lego" un problema, il 70% del lavoro è fatto. Poi tradurlo più o meno elegantemente in un linguaggio, si fa.
Ieri 10 righe di C, 2 ore. Ma per la prima volta dopo tanti anni, mi sono volate Erano secoli che non avevo più questa sensazione.
Ciao leo e ciao a tutti i lettori, buona domenica e have a nice arduino hack.
CRT:
Anch'io sono del 72 E forse anche tu come me ricevesti in regalo da un padre lungimirante un commodore 64, un padre che ha sacrificato un mese e oltre del proprio stipendio per la capoccia pazza di un figlio..
Io scelsi il C16: era uscito da poco e pensavo fosse una scelta valida, poi invece mi accorsi di come questo computer non era assolutamente all'altezza del C64. Però le sue limitazioni mi hanno insegnato a saper sfruttare bene la macchina, una cosa che oggigiorno sembra sia stata ribaltata: se il software è esoso di risorse, non si chiede al programmatore di scriverlo meglio ma all'utente di potenziare l'hardware.