Seu Curso

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

Comunicação entre dois Arduinos

Imprimir
Avaliação do Usuário: / 4
PiorMelhor 

Nesse tutorial trago uma solução para quando apenas um arduino não é suficiente para determinadas aplicações, que exigem de mais portas ou necessitam de um processamento dividido para as funcionalidades do hardware.

Logo é possível utilizar uma conexão entre dois ou mais arduinos e fazê-los trocar informações.

 

 

Para fazer isso é necessário, obviamente ter dois ou mais arduinos (segundo algumas pesquisas, é possivel conectar até 112 deles, mas não possuo tantos para fazer essa experiência).

 


 

 

O primeiro passo é bem simples (na realidade todos). Basta interligar os GNDs das placas.

O mesmo deve ser feito com as portas analógicas 4 e 5 de cada arduino, cada uma à sua respectiva na outra placa, como mostra o esquema abaixo:

 


 

Vamos à parte da codificação. Começando pelo arduino responsável por enviar as informações. O código é bem simples, utilizando a biblioteca Wire.

Neste exemplo há a verificação se o número (x) é par antes de ser enviado, apenas para efeito de testes.

 


#include <Wire.h>
 
void setup()
{
 Wire.begin();
}
 
byte x = 0;
 
void loop()
{
 if(x%2==0)
 {
 sendMessage(x);
 }
 x++;
 delay(500);
}
 
void sendMessage(int val)
{
 Wire.beginTransmission(4);
 Wire.write(val);
 Wire.endTransmission();
}

 

 

 

 

 

 

 

O segundo código, que fica no arduino responsável por receber as informações, é o que está logo abaixo. Nele há uma rotina de interrupção para quando os dados são recebidos. Os dados podem ser verificados no monitor Serial do arduino receptor.

 

#include <Wire.h>
void setup()
{
 Wire.begin(4);
 Wire.onReceive(receiveEvent);
 Serial.begin(9600);
}
void loop()
{
 delay(100);
}
void receiveEvent(int howMany)
{
 int x = Wire.read();
 Serial.println(x); 
}

 

 

 

 

 


Agora basta a criatividade de cada um para utilizar deste tutorial e fazer diversas aplicações ‘divididas’ entre controladores.

 

 

 

 

 

 

 

 

 

Comentários  

 
+2 #2 Douglas1Douglas1 11-11-2015 10:43
Bom dia, como ficaria se por exemplo eu usa se um arduino para ler dua chave so para dizer se é 1 ou 0 e enviar para outro arduino o estado da chave?
Obrigado
Citar
 
 
0 #1 Lucas LopesLucas Lopes 06-08-2015 11:34
Mas quando é feita a conexão serial entre os arduínos e então usasse as portas A4 e A5, perdesse essas portas(impossib ilidade de uso no projeto) nas duas placas? Pois preciso conectar vários potenciômetros em um arduino(Mega) e enviar esses dados via cabo pra outro arduíno(Uno), e usa-los para mover servo-motores. Eu perderia duas portas analógicas em cada placa ou ainda assim eu poderia usar elas?
Citar
 

Adicionar comentário


Código de segurança
Atualizar

You are here: