Salve a tutti,
sono nuovo del forum e questo è il mio primo post. Ho cominciato a interessarmi da appena due mesi ad Arduino e a rispolverare qualche sopita conoscenza elettronica del passato. Vi ringrazio in anticipo, perchè siete eccezionali, e con voi sto imparando molto. ![]()
Nelle mie varie sperimentazioni "solitarie" sono riuscito a smanettare con Arduino Uno, vari sensori fino a costruire un DataLogger, che funziona con la modalità sleep (modalità standalone) e scheda SD card per misurare l'umidità nel terreno in giardino.
Oggi vorrei "perfezionare l'opera" con un arduino master da tenere in casa, dotato di display, scheda rete, sdcard modulo radio e un arduino slave, da tenere in giardino con sensori e modulo radio.
Ero riuscito ad assemblare e far funzionare tutto compresi i moduli Xbee Pro con un codice ancora rozzo sicuramente da migliorare, ma da ieri sera ho uno strano problema improvviso. Non riesco più a far comunicare i due arduino sui pin 0 e 1 della seriale. Prima pensavo fossero i modulo Xbee, ma poi andando a collegare fisicamente le due schede mi sono reso conto che i due non comunicano più! :~
Vedo lampeggiare i led, sia in trasmissione sullo slave che in ricezione sul master, ma quando collego i pin il led del tx non lampeggia più! Di visualizzare la stringa sul display o sulla pagina html non ne vogliono più sapere. Se collego il cavo Usb anzichè l'alimentazione a batterie posso vedere dal monitor seriale che la print funziona bene sullo slave. Sul master invece collegando la USB dal monitor seriale riesco solo a far scrivere sul display quello che inserisco io manualmente dalla stessa finestra. ![]()
Vi chiedo un aiuto, perchè vorrei continuare ad utilizzare la seriale con gli xbee in modalità trasparente, ho visto che ci sono anche altri metodi, ma non vorrei complicare ulteriormente le cose, visto che per ora per me è già abbastanza difficile così.
Quache info:
- Uso due Arduino Uno rev.3
- Windows 7
- Ide 1.0.5 rev2
- Xbee Pro Serie 1
- Simple board
- Display 16x2
- Alimentazione a batterie (4x1.25V)
I codici di riferimento per ora sono il SerialDisplay dei File di esempio per il master e il seguente per lo slave:
void setup()
{
Serial.begin(9600); // Apre la comunicazione seriale e attende l'apertura della porta:
pinMode(2, OUTPUT); // Apri porta lettura sensore 1 del terreno
pinMode(10, OUTPUT); // Porta Led
}
void loop()
{
digitalWrite(10, LOW); // Reset soglia Spegnimento LED
String dataString = "";
digitalWrite(2, HIGH); // Dai tensione sulla porta digitale del sensore Hum1
delay(500); // Attendo che la resistenza nel terreno umido si stabilizzi per un secondo
int Hum1 = analogRead(A0); // Eseguo la lettura sulla porta analogica dell'umidità del terreno
if (String(Hum1).length() == 1) { dataString += "000"; }
if (String(Hum1).length() == 2) { dataString += "00"; }
if (String(Hum1).length() == 3) { dataString += "0"; }
dataString += String(Hum1); // Aggiungo il valore alla stringa
digitalWrite(2, LOW); // Tolgo tensione dalla porta digitale del sensore Hum1
if (Hum1<300)
{
digitalWrite(10, HIGH); // Superata la soglia Accensione LED
dataString +=" Sup. soglia";
}
Serial.println(dataString); // Visualizza su nuova linea la stringa sul monitor seriale
delay(6000);
}