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