Avaliação do Usuário

Estrela inativaEstrela inativaEstrela inativaEstrela inativaEstrela inativa
 

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.

 

 

{code}

#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();

}

{/code}

 

 

 

 

 

 

 

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.

 

{code}

#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);

}

{/code}

 

 

 

 

 

 

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