Buongiorno a tutti so che per molti è semplicissimo ma per me no, vorrei modificare il valore del delay di un programma blink utilizzando il monitor seriale. in pratica sul monitor scrivo 100 e l'uscita corrispondente resterà 100 mS alta e 100 mS bassa ovviamente sempre in loop.
Grazie a tutti in anticipo
I passi che devi fare sono :
-
mettere il valore del ritardo in una variabile ed usarla per il delay()
-
studiarti bene la classe Serial()
-
nel loop() verificare la presenza di dati sulla seriale (vd. metodo available())
-
leggere il nuovo valore dalla seriale e metterlo nella variabile sopra detta
Guglielmo
ciao,
non c'è nulla di semplice in assoluto o a prescindere...tutto, o quasi, si può "semplificare".
detto questo...in primis devi tenere conto che se scrivi 100 sul monitor seriale e premi invio arduino NON riceverà un byte con valore decimale 100 (o binario 01100100 o esadecimale 0x64) ma riceverà 3 char rispettivamente, in decimale, 49, 48, 48 ('1', '0', '0' tradotto in ASCII).
quindi ti devi gestire questo tipo di flusso dati...e qua potrebbero esserci una serie di modi...dipende da come vuoi fare; dipende se vuoi dare un limite ad il valore inseribile etc etc...se per esempio decidi che il range va da 0 a 999 ti basterebbe gestire un array di 3 elementi più una variabile di indice...man mano che arrivano dati popoli l'array incrementando l'indice...alla fine verificando il valore dell'indice sai se hai ricevuto 1-2-3 caratteri e quindi fai tutte le moltiplicazioni del caso...attenzione ad inviare il primo carattere come '0'...
ORSO2001:
ciao,
non c'è nulla di semplice in assoluto o a prescindere...tutto, o quasi, si può "semplificare".....
... ecco, appunto, data l'inesperienza in ambito Arduino del OP, è bene che si studi la classe Serial() e che, in questa prima fase di apprendimento, magari usi la più semplice (pappa fatta
) parseInt() senza preoccuparsi, per ora, di tutto il resto.
Quando avrà fatto un po' più di pratica su Arduino studierà le stringhe del 'C' e ... come veramente si deve fare una lettura da seriale ... ma diamogli il tempo ![]()
Guglielmo
propedeutico allo studio della classe conviene dare un'occhiata anche agli esempi inclusi nell'ide sotto la voce 04.comunications dove uno degli esempi è appunto ReadASCIIString ![]()
Si ho bisogno di un programma che varia da 1 a 100ms
ciao,
tra quanto scritto da Guglielmo, Patrik ed io ti abbiamo dato una serie di suggerimenti...prova a darci un occhio ed a scrivere uno sketch...poi si vede se va/non va o altro...