Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
Publicar Visualizar
http://arduinizando.blogspot.com.br/2013/02/comunicacao-serial-entre-arduinos.html 3/3