Arduino Mega comunicazione seriale

Buongiorno gente, mi rivolgo a voi ancora una volta per un problema che mi sta facendo disperare.
In buona sostanza, non riesco a fare comunicare due arduini MEGA con le loro porte seriali.
Il problema è che, mentre non viene trasmesso nulla, la porta seriale restituisce sempre il valore -1.
Ho provato anche a scambiare i due arduini per capire se uno dei due fosse rotto, ma niente. L'arduino ricevente riceve sempre -1. Ho anche provato a staccare totalmente i cavi che mettevano in comunicazione le due porte.. Compare semrpre questa raffica insopportabile di -1.
Allego gli sketch
Ricevente:

int a = 0;
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
  Serial1.begin(9600);
}

void loop() {
 if (Serial1.available()>0);
 {
  a = Serial1.read();
  Serial.println(a);
  delay(500);
  // put your main code here, to run repeatedly:

}
}

Teoricamente, se non sta ricevendo nulla, o se le porte seriali sono scollegate, non dovrebbe ricevere nulla giusto?

Questo lo sketch del trasmettitore:

int a = 10;
void setup() {
  Serial.begin(9600);
  Serial1.begin(9600);
  // put your setup code here, to run once:

}

void loop() {
  Serial1.write(a);
   Serial.println(a);
   delay(5000);
  // put your main code here, to run repeatedly:

}

Con questi sketch, nel monitor seriale del ricevente continua ad apparire una sfilza di -1 e, ogni 5 secondi, compare un 10.
specifico che i gnd degli arduino sono in comune, e che ho provato tutte le porte seriali del mega (1, 2, 3).
Vi prego aiutatemi non so più saltarci fuori..
Inoltre mi serviva la comunicazione per uno sketch ben più complesso, e l'ultima volta funzionava normalmente.. Poi ha preso ad impazzire e a ricevere a caso, tutto d'un tratto :sob: E a quel punto ho provato con un semplicissimo sketch di trasmissione per vedere cosa succedeva e questo è il risultato...
spero tanto di aver fatto un errore stupidissimo e che me lo facciate notare al più presto :grinning:

Non è rotto, hai solo messo un punto e virgola di troppo :wink:

aurelias:
... Teoricamente, se non sta ricevendo nulla, o se le porte seriali sono scollegate, non dovrebbe ricevere nulla giusto?

Sbagliato, nel reference della classe Serial è chiaramente indicato che se tu leggi una porta seriale e NON c'è nulla da leggere, viene restituito il valore -1 e, causa l'errore che ti ha indicato qui sopra Claudio_FF, è proprio quello che tu stai facendo :smiley:

Guglielmo

Grazie!!
Ah l’ho visto!!! Mannaggia al punto e virgola!! Che stupida!! Grazie ragazzi :slight_smile:
P.s. questo spiega perché ieri, quando per disperazione, ho riavviato lo sketch più complesso originale (dove ci sono 17 pulsanti su un Arduino e 18 sull’altro ed una combinazione che li sfrutta tutti e 35) alla fine funzionava (li il punto e virgola galeotto infatti lì non c’è)…
Resta da capire come mai all’inizio aveva smesso di funzionare, leggendo valori senza motivo… speriamo non riaccada!
Se ho altri problemi magari aggiorno :slight_smile: intanto grazie :slight_smile:

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.