Ciao a tutti è un pò che non scrivo...in questi giorni sto lavorando su una scheda Arduino Uno.
Stavo cercando di creare un controllo imponendo un valore di riferimento da tastiera...il programma mi gira...l'unico problema che ho è dovuto al fatto che non riesco a convertire il dato impostato da tastiera in un valore decimale per effettuare il controllo...
infatti qualunque numero metto il risultato dell'if è sempre lo stesso...poi facendo qualche prova ho visto che il problema nasceva proprio dalla conversione dell'ascii....
Qualcuno sa darmi qualche indicazione su come convertire il dato impostato da tastiera da Ascii a decimale in modo tale da soddisfare la condizione sull'if....
Spero la domanda sia chiara....
Ciao Uwe...ho dato un'occhiata a quanto mi hai fatto vedere...non mi torna cmq neanche modificando il mio codice...non riesco a capire dove sta l'errore...
La parte di codice inerente quanto detto è:
long valore;
int i;
char Data [4];
long h;
long Temperatura (){
Serial.println ("Inserire il valore da leggere: ");
do {
if (Serial.available()) {
Data = Serial.read();
i++;*
}*
} while (i<4);* Data[4]=0; valore= atof (Data); i=0; Serial.println(valore); // ristampo il numero ricevuto }
void setup (){
Serial.begin (9600);*
h=Temperatura ();*
if (h <=500){*
Serial.println ("Numero minore");}*
else{*
Serial.println ("Numero maggiore");}* } e poi continua con il void loop che mi da altre funzioni. Quando vado ad eseguire il pezzo if non me lo esegue correttamentente,non riesco a capire perchè e non trovo l'errore...qualcuno può aiutarmi?
ho provato a modificare il codice andando a convertire la variabile mediante il comando h=float (h); nel setup....ma nulla....secondo voi dove sbaglio?