Go Down

Topic: Problema na comunicação serial entre dois arduinos (Read 184 times) previous topic - next topic

Rodrigo_Galvao_BS

Apr 20, 2019, 03:34 pm Last Edit: Apr 24, 2019, 11:06 am by Rodrigo_Galvao_BS
Eu tentei fazer a comunicação serial entre dois arduinos mas não funcionou. Procurei bastante mas nada funcionou.

O Arduino receptor é um Arduino Uno e o Arduino transmissor é um Arduino ProMini. Eu carreguei um codigo diferente pra cada um.

Connection Ports:

Ard. Uno Tx -----> Ard. ProMini Rx
Ard. Uno Rx -----> Ard. ProMini Tx
Ard. Uno GND -----> Ard. ProMini GND
Ard. Uno 5v -----> Ard. ProMini Vcc

and the codes:

Arduino ProMini:
Code: [Select]

void setup() {Serial.begin(9600);}

void loop() {

Serial.write('A');
delay(2000);
Serial.write('a');
delay(2000);

}


Arduino UNO:
Code: [Select]

void setup() {

pinMode(13, OUTPUT);
Serial.begin(9600);

}

void loop() {

if (Serial.available()>0) {

   char recebido = Serial.read();

   if(recebido=='A'){digitalWrite(13, HIGH);}
   if(recebido=='a'){digitalWrite(13, LOW); }
 
 }
}

alkuentrus

#1
Apr 22, 2019, 10:08 am Last Edit: Apr 22, 2019, 10:09 am by alkuentrus
Carissimo, conforme a administração tanto insiste, podes por favor editar o teu post e colocar o codigo de dentro do campo espeficificado (botão </>).





Depois, experimenta o seguinte:

Code: [Select]

Arduino UNO:

void setup() {

pinMode(13, OUTPUT);
Serial.begin(9600);

}

void loop() {

if (Serial.available()) {

   char recebido = Serial.read();

   if(recebido=='A'){digitalWrite(13, HIGH);}
   if(recebido=='a'){digitalWrite(13, LOW); }
 
 }
}

bubulindo

Algo que não estás a pensar é que a porta série do Arduino uno e do outro que pretendes usar já é utilizada pela porta USB do computador. Isso pode ser o motivo pelo qual o teu programa não está a funcionar.

This... is a hobby.

alkuentrus

#3
Apr 22, 2019, 04:43 pm Last Edit: Apr 22, 2019, 04:46 pm by alkuentrus
Outra coisa, eu alterei o código que o utilizador colocou porque acho que o é simplesmente serial.available() e não serial.available() > 0, por causa do tipo Char. Comigo no passado resultou assim.

Rodrigo_Galvao_BS

Bubulindo, esse era mais ou menos um dos problemas. O outro problema era o a diferença de clock, diminui o Pro Mini pra 8Mhz. Compilei o código no pro mini pra 3,3 V e 8Mhz isso resolveu o problema de desconfiguração da mensagem e criei SoftwareSerial nos dois pra resolver o conflito que estava tendo com o computador.

Obrigado aos dois!

alkuentrus

Porreiro :)  Quer dizer que o código inicial também funcionava?

Go Up