Un saluto a tutti !
Come ho già scritto in presentazione riprendo in mano un pò di aggeggi elettronici dopo 15 anni di digiuno.. XD
Sto smanettando da settimane ormai con i miei arduini e un passo alla volta mi sto districando tra le varie funzioni.
Il mio progetto che ho in testa è di domotizzare casa mia in maniera modulare. Pensavo a mettere un'Arduino UNO con TFT in ogni camera per renderli indipendenti in caso di guasti e collegarli ad una MEGA 2560 da mettere all'ingresso. La MEGA grazie a una shield Annikken Andee (che già ho e trovo fantastica perchè non devo imparare da zero a programmare android) viene comandata da un tablet Android.
Il progetto è in comtinua evoluzione e implementazione man mano che le mie conoscenze crescono.
Ma veniamo al mio problema.
Ho già preparato uno sketch che funge da termostato che verrà caricato su ogni arduino UNO (manca la parte TFT ma ci arriverò..). In questo sketch in sostanza mi trovo con due variabili Timpostata e Tambiente. L'unica cosa che mi manca è trasmettere queste variabili alla MEGA per poterle visualizzare con l'Andee sul tablet.
Penso che la soluzione migliore sia la libreria SoftwareSerial e finora sono riuscito in qualche modo a trasmettere qualcosa ma un problema mi blocca e pur cercando come un matto non trovo niente che mi aiuti.
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10,11);
float valore = 0.0 ;
void setup()
{
Serial.begin(9600);
pinMode(13 , OUTPUT);
mySerial.begin(9600);
}
void loop(){
if (mySerial.available())
{
valore = mySerial.read();
Serial.println(valore);
digitalWrite(13, HIGH);
}
}
Questo è lo sketch sul ricevitore, la MEGA 2560. Ho impostato la variabile valore come float perche la temperatura è con 2 decimali.
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);
float valore = 0.0 ;
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
}
void loop()
{
valore = 3.5;
if (valore>0){
mySerial.print(valore);
Serial.println(valore);
}
}
Questo è lo sketch sulla arduino UNO, il trasmettitore diciamo. Per ora come esperimento immetto a mano il valore della variabile.
Il problema è che sul monitor seriale della trasmittente mi scrive il valore corretto 3.50 mentre sul monitor seriale mi scrive valori sballati.
Tipo:
53
45
67
32
34
ecc ecc...
Oppure il meglio che sono riuscito a fare (e non ricordo come...) valori tipo 22.00 anche se il valore di partenza era 21.77.
Chi mi spiega un pochino come fare ?
Graaaazie....