ARDUINO COMUNICAÇÃO SERIAL ENTRE DUAS PLACAS MEGA

Boa noite a todos,

Este é o meu primeiro tópico me desculpem se eu fizer algo de errado.

Gente eu estou tentado fazer duas placas do Arduino Mega se comunicarem. As duas estão na mesma fonte e ambas com o GND interligadas...

Eu dei uma pesquisada aqui no forum e tentei uns 3 programas adaptados esse é o ultimo que tentei:

Quando acertar o programa a placa transmissora vai enviar variáveis e a placa receptora vai tratá-las...    

//Placa transmissora:

void setup()
{
Serial3.begin(9600);

}
void loop()
{

delay(100);

Serial3.print("TESTE");
delay(100);
Serial.flush ();
delay(100);

}

___________________________________________________________________________________

// Placa Receptora

#include <LiquidCrystal.h>// Biblioteca LCD

//DETERMINA PINAGEM/NOMES **************************************************************

LiquidCrystal lcd(53, 51, 49, 47, 45, 43); // Determina os pinos da LCD

int contador=0;
char buffer[5];

//Determina nome aos pinos
int RELE_LED_VERDE = 52;
int RELE_LED_VERMMELHO= 50;
int RELE_LED_AMARELO = 48;

int RELE_FORCA = 46;

int porta_rele5 = 44;
int porta_rele6 = 42;
int porta_rele7 = 40;
int porta_rele8 = 38;
int porta_rele9 = 36;
int porta_rele10 = 34;
int porta_rele11 = 32;
int porta_rele12 = 30;
int porta_rele13 = 28;
int porta_rele14 = 26;
int porta_rele15 = 24;
int porta_rele16 = 22;

void setup()
{

pinMode(RELE_LED_VERDE, OUTPUT); //Define pino como saida
pinMode(RELE_LED_VERMMELHO, OUTPUT); //Define pino como saida
pinMode(RELE_LED_AMARELO, OUTPUT); //Define pino como saida
pinMode(RELE_FORCA, OUTPUT); //Define pino como saida
pinMode(porta_rele5, OUTPUT); //Define pino como saida
pinMode(porta_rele6, OUTPUT); //Define pino como saida
pinMode(porta_rele7, OUTPUT); //Define pino como saida
pinMode(porta_rele8, OUTPUT); //Define pino como saida
pinMode(porta_rele9, OUTPUT); //Define pino como saida
pinMode(porta_rele10, OUTPUT); //Define pino como saida
pinMode(porta_rele11, OUTPUT); //Define pino como saida
pinMode(porta_rele12, OUTPUT); //Define pino como saida
pinMode(porta_rele13, OUTPUT); //Define pino como saida
pinMode(porta_rele14, OUTPUT); //Define pino como saida
pinMode(porta_rele15, OUTPUT); //Define pino como saida
pinMode(porta_rele16, OUTPUT); //Define pino como saida

lcd.begin(20, 4);
Serial3.begin(9600);

}

void loop()
{
Serial.flush ();
contador=0;

while(Serial3.available() == 0){ }
// Necessario para preencher o buffer
delay(100);

// Enquanto encontrar algo para ler na Serial e o contador de caracteres não estourar...
while((Serial3.available() > 0)&&(contador<=5))

{
buffer[contador]=Serial3.read();
contador++;
}

lcd.clear();
delay(1000);

while(contador >= 0)
{
lcd.print(buffer[contador]);
contador--;
}
delay(3000);
}

Ele esta retornando 7 caracteres todos misturados.... no LCD...

Obrigado pela ajuda de todos!!!

Exibições: 400

Responder esta

Respostas a este tópico

Pessoal no serial monitor aparece corretamente...  A placa receptora...que não ta conseguindo ler..

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço