>masterdom76: ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).
In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.
Guglielmo
P.S.: Ti ricordo che, purtroppo, fino a quando non avrai sistemato il codice come richiesto, nessuno ti potrà rispondere, quindi ti consiglio di farlo al più presto.
masterdom76:
ma mi memorizza tutti e due i valori nella prima variabile (in questo caso "hum"), non riesco a capire cosa c'è che non va...
Gli array iniziano SEMPRE da 0, tu invece parti dalla posizione 1 e il ciclo for che hai descritto è vero solo per un'unica condizione ovvero quando i==1
Nel "giro" di loop() successivo, ricominci da capo e quindi leggerai il secondo valore inviato sulla seriale che però va a finire nuovamente in dati_cpu[1] e quindi in hum.
Grazie mille, ho risolto il problema di ricevere i valori e metterli in un array, ora ho un altro problema: avendo messo il codice in un funzione non mi memorizza più i valori nelle variabili, vi è un modo per restituire l'intero array di valori letti o devo restituirli uno a uno?
Dato che sto usando un arduino mega e i dati arrivano da seriale bletooth, ho pensato di usare "Serial.event()" il codice che sto provando ad usare è il seguente:
float hum; //Variabile in cui verrà inserita la % di umidità
float temp; //Variabile in cui verrà inserita la temperatura
float dati_cpu[2];
void setup(){
}
void loop(){
Serial.println(temp);
Serial.println(hum);
}
void eventSerial1()
{
int n_letture = 0;
while(Serial1.available())
{
Serial.println("Cucina:");
for (n_letture=0; n_letture<2 ;n_letture++)
{
dati_cpu[n_letture] =Serial1.parseFloat();
}
temp = dati_cpu[0];
hum = dati_cpu[1];
}
return dati_cpu[2];
}