Você está na página 1de 3

1/5/2014 Comunicação serial entre arduinos

13th February 2013 Comunicação serial entre arduinos

Comunicação serial entre arduinos


Objetivo:

Nesta postagem procuro demonstrar como implementar uma comunicação [bem simples] via porta serial
entre dois arduinos. E porque fazer isto? Simplesmente porque acredito que esta seja a comunicação
mais simples de ser feita e muitas vezes podemos nos deparar com a necessidade de comunicar dois
arduinos; além de não precisar de nenhum componente adicional. Encontrei muito pouco [para não dizer
nada] sobre este tipo de comunicação na rede, portanto espero trazer alguma contribuição.

Além disso, tenho uma predileção especial por comunicação serial, visto que começei a trabalhar em
redes de computadores quando elas eram totalmente seriais RS232. E acreditem: jogavamos em rede via
cabo serial com cabo RS232.

Cenário:

muito simples: dois arduinos, interconectados pelos pinos 0 e 1, respectivamente rx [pino de reçepção] e
tx [pino de transmissão]. O pino TX de um deve estar ligado ao pino RX do outro - formando um X.

aplicação: No caso um arduino envia um byte; o outro arduino recebe este byte e testa; se for 1 liga o led
do pino 13 se for 0 desliga. Nenhum protocolo foi especificado.
Basicamente, peguei o exemplo Básico [Blink] e 'portei' para comunicação serial.

Esquema:

[http://4.bp.blogspot.com/-u4t8-4Ak79Y/URvlhEEnVaI/AAAAAAAAAPs/FnDZ2iGIs7s/s1600/serial-entre-
arduino_bb.png]

http://arduinizando.blogspot.com.br/2013/02/comunicacao-serial-entre-arduinos.html 1/3
1/5/2014 Comunicação serial entre arduinos

Programação:

//mestre
int num = 0;

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

void loop(){
num = 0;
Serial.write(num);
delay(2000);
//escravo
num = 1;
int recByte;
Serial.write(num);
int led = 13;
Código do mestre delay(2000);
}
void setup(){
Serial.begin(9600);
pinMode(led,OUTPUT);
}

void loop(){
if(Serial.available() > 0){
recByte = Serial.read();
}

if(recByte == 0){
digitalWrite(led,LOW);
}else if(recByte == 1){
digitalWrite(led,HIGH);
}
Código do escravo:

Um detalhe:

A comunicação funcionará corretamente se, e somente se, a alimentação dos dois arduinos for feita por
fonte externa [vc pode usar bateria de 9v].

Não PODE ser usada alimentação via USB. E Por quê? Porque a comunicação do arduino UNO é feita por
um chip apenas, ou seja, a mesma comunicação serial dos pinos 0 e 1 é compartilhada com a
comunicação do cabo USB com o PC. Se tivermos um cabo USB conectado - mesmo que esteja sendo
usado apenas para alimentação fará com que o arduino 'pense' estar comunicando com um PC e o
programa não funciona. Esta regra pode não se aplicar a outras versões do arduino [vide Mega].

Referências:

não há.
Postado há 13th February 2013 por José Figueiredo

5 Visualizar comentários

etereletronica 12 de junho de 2013 17:26

http://arduinizando.blogspot.com.br/2013/02/comunicacao-serial-entre-arduinos.html 2/3
1/5/2014 Comunicação serial entre arduinos

Gostaria de saber se tem como utilizar o bluetooth no mestre nesse caso ai conectado no 0 e 1 RX e TX
respectivamente ?
Responder

José Figueiredo 13 de junho de 2013 15:37


Este comentário foi removido pelo autor.
Responder

Cássio Socal Cervo 1 de agosto de 2013 16:55


Fiz como esta no diagrama e os códigos e não funcionou!
Responder

CLAUDIO - PY3OZ 13 de abril de 2014 19:51


Este comentário foi removido pelo autor.
Responder

CLAUDIO - PY3OZ 13 de abril de 2014 19:54


Olá José tudo bem? Obrigado por compartilhar essa simples maneira de interligar dois arduínos. Gostaria
que vc me ajudasse no seguinte, vou tentar ser breve: Estou com um Arduino mega, um lcd 16x2 e um
sensor bússola HMC5883L. Fiz tudo funcionar. Minha aplicação escolhendo isso é em função do custo
ser baixo. Ocorre que(até então eu não sabia) quando eu inseri um cabo de rede de 50 metros do
Arduino até o sensor ele não funcionou mais. Repito: até então eu não sabia que assim não funciona.
Então lhe pergunto: Comprando outro Arduino e colocando ele junto com o sensor e fizer a comunicação
RS232 com o outro arduino que está com o lcd através deste cabo de 50 metros, irei conseguir fazer a
leitura da posição no lcd a esta distância de 50 metros? Outra pergunta que não é específica sobre isso.
A alimentação separada do Arduino(não o usb) admite até que tensão de entrada? 9V já sei que
funciona, mas 14Vcc é muito? Ou 12Vcc? No que puderes me ajudar agradeço. Se possível e se
estiveres disposto, gostaria de trocarmos e-mails sobre o assunto. Assim poderia lhe enviar fotos mais
precisas da aplicação que pretendo. Obrigado
Responder

Digite seu comentário...

Comentar como: Conta do Google

Publicar Visualizar

http://arduinizando.blogspot.com.br/2013/02/comunicacao-serial-entre-arduinos.html 3/3

Você também pode gostar