Paso 16: Segundo Arduino con I2C
En mi caja del rompecabezas que tengo un segundo Arduino (un Arduino Uno) con un escudo de tubo Nixie en él que actúa como un temporizador. Aquí está las conexiones:Arduino Mega Arduino Uno
SDA---> SDA
SCL---> SCL
Tierra---> GND
Vin---> Vin (esto puede no ser necesario... alguien sabe con certeza).
El maestro (Arduino Mega) comunica del mismo modo que lo hace normalmente. El esclavo (Arduino Uno) está configurado como esta en setup():
Wire.Begin(4); Únete a bus i2c con dirección #4
Wire.onReceive(receiveEvent); registrar evento
luego solo tienes que definir el recieveEvent (este es el ejemplo que viene con el IDE de Arduino (está debajo del alambre en ejemplos)
void receiveEvent(int howMany)
{
mientras (1 < Wire.available()) / / recorrer todos pero el último
{
char c = Wire.receive(); recibe byte como un carácter
Serial.Print(c); imprimir el carácter
}
int x = Wire.receive(); recibe byte como un número entero
Serial.println(x); imprimir el entero
}
Para mi solo tengo el maestro enviar una cosa que dice el contador de tiempo para iniciar.
Aquí está un tutorial muy bueno sobre la conexión de varios Arduinos
http://HackNMod.com/hack/How-to-Connect-Multiple-Arduino-Microcontrollers-Using-I2C/