Stap 16: Tweede Arduino met I2C
Op mijn puzzel doos heb ik een tweede Arduino (een Arduino Uno) met een Nixie-buis schild daarop dat als een timer fungeert. Hier is de verbindingen:Arduino Mega Arduino Uno
SDA---> SDA
SCL---> SCL
GND---> GND
Vin---> Vin (dit niet noodzakelijk kan zijn... iedereen weet zeker).
De kapitein (Arduino Mega) communiceert de dezelfde manier die normaal doet. De slaaf (Arduino Uno) is in Setup ingesteld als volgt:
Wire.begin(4); Join i2c bus met adres #4
Wire.onReceive(receiveEvent); evenement registreren
dan je gewoon moet te definiëren van de recieveEvent (deze is van het voorbeeld dat wordt geleverd met de Arduino IDE (het is onder de draad in voorbeelden)
VOID receiveEvent(int howMany)
{
terwijl (1 < Wire.available()) / / met alle, maar de laatste lus
{
char c = Wire.receive(); bytes ontvangen als een teken
Serial.Print(c); afdrukken van het teken
}
int x = Wire.receive(); Ontvangen bytes als integer
Serial.println(x); het gehele getal afdrukken
}
Voor mij zojuist ik heb de kapitein Stuur een ding dat de timer vertelt te starten.
Hier is een echt goede tutorial over het aansluiten van meerdere Arduinos
http://hacknmod.com/Hack/How-to-Connect-Multiple-Arduino-Microcontrollers-using-I2C/