I^2C
Voor het communiceren tussen instrumenten kun je gebruik maken van verschillende methodes. Voor dit project is gekozen voor I^2C, een protocol dat snel informatie naar veel verschillende systemen kan sturen.
Werking
I^2C werkt op het Master - Slave principe. De Master mag data versturen en de Slaves ontvangen. Elke Slave geeft aan op welk adres hij zit(mag hij zelf bepalen) De Master kan vervolgens data versturen naar de benodigde adressen. dat kan dan per adres verschillen (dat bepaal je in de code) Voor de Energia en Arduino is er een Wire bibliotheek beschikbaar.
Aansluiting
je maakt 2 lijnen, eentje voor de adressen en eentje voor de data. een lijn sluit je parallel aan op elke poort 4 van de Arduino(1.6 op Launchpad) de andere lijn sluit je parallel aan op elke poort 5 van de Arduino(1.7 op Launchpad)
problemen die je kunt ondervinden hebben te maken met een te lange lijn, deze krijgt dan een te lage spanning. je lost dit op door een labvoeding op de lijn aan te sluiten. de instelling hiervan hangt af van de lengte van de draad. experimenteer hier voorzichtig mee!
Wire Methodes
- include <Wire.h> //deze zet je helemaal bovenin je code zodat je van de volgende commando's gebruik kunt maken:
Wire.begin(void of integer) //Als je tussen de haakjes niks invult ben je Master, anders vul je een getal in, dit is dan je Slave-adres
Voor het versturen van data
Wire.beginTransmission(adres); //start een verbinding met het gekozen adres Wire.send(Waarde); // verstuur je data, integers en chars werken makkelijk, met strings moet je oppassen dat deze niet te lang word. Wire.endTransmission(); // stop met de verbinding
Voor het ontvangen van data
Wire.receive() // Ontvang data van je data lijn