Existem diversas maneiras de fazer 2 arduinos se comunicarem , eu utilizei a mais clássica usando Wire ou I2C. O Detalhe é que você pode conectar até mais que 2 arduinos usando o I2C.
Ex de código:
Arduino 1:
Para comunicar 2 arduinos Megas usando I2C , você precisa ligar os seguintes pinos entre eles :
Mega2560 | 20 (SDA), 21 (SCL) |
Ex de código:
Enviando um byte para outro arduino
Arduino 1:
const byte SlaveDeviceId = 1;
void setup()
{
Wire.begin(SlaveDeviceId);
}
void setup()
{
Wire.begin();
}
void loop()
{
Wire.beginTransmission(SlaveDeviceId);
Wire.write(1);
Wire.endTransmission();
delay(1000);
}
Recebendo os dados em outro arduino
Arduino 2:
const byte SlaveDeviceId = 1;
void receiveCallback(int numberOfBytes)
{
while(1 < Wire.available())
{
Wire.begin(SlaveDeviceId);
}
void setup()
{
Wire.begin();
}
void loop()
{
Wire.beginTransmission(SlaveDeviceId);
Wire.write(1);
Wire.endTransmission();
delay(1000);
}
Recebendo os dados em outro arduino
Arduino 2:
const byte SlaveDeviceId = 1;
void receiveCallback(int numberOfBytes)
{
while(1 < Wire.available())
{
// read byte as a character
char c = Wire.read();
if (c == 1)
{
//TODO:
}
{
//TODO:
}
}
}
void setup()
}
void setup()
{
Wire.begin(SlaveDeviceId);
Wire.onReceive(receiveCallback);
}
void loop()
{
}
Wire.begin(SlaveDeviceId);
Wire.onReceive(receiveCallback);
}
void loop()
{
}
Mais exemplos :
Nenhum comentário:
Postar um comentário