Étape 2: Le Code
Si vous souhaitez utiliser des périphériques i2c, qu'il est préférable de comprendre comment fonctionne le code sinon vous allez avoir beaucoup de problèmes sur la route.
I2C est géré à l’aide de l' Arduino bibliothèque de fils.
Pour comprendre l’i2c, vous allez devoir faire un peu de lecture. S’attendre à être très confus dans un premier temps. Si vous envisagez de faire tout autre composant électronique intermédiaire et avancé, apprentissage i2c est impératif.
Je vais essayer de donner une explication très simple d’i2c.
Une chose que vous remarquerez, que vous commencez à travailler avec l’électronique, est que vous avez toujours un désordre de fils. Il y a longtemps que Phillips dit « enfer avec tous ces fils - nous avons besoin d’un moyen pour tous les périphériques de parler à eachother avec seulement deux fils ». Peu de temps après, i2c a été créé. Maintenant vous pouvez acheter des jetons i2c qui à peu près tout faire, et tous ces jetons sont capables de communiquer avec l’aide de seulement deux fils d’eachother. I2C est souvent appelé le « interface de deux fils ».
Alors, comment ces appareils communiquent entre eux ? Eh bien, ils ont tous une adresse, bien que vous avez une adresse postale à votre maison. Avec cette adresse unique, vous pouvez parler à chaque appareil individuellement. L’Arduino, qui serait le maître-i2c-périphérique, peut envoyer des instructions à l’esclave-i2c-dispositifs individuels à l’aide d’un protocole de communication fantaisie. Dans Arduino, la communication-envoi ressemble à ceci :
Wire.Send(someDate) ; Quelles données vous envoyez ce dispositif
Wire.endTransmission() ; fin de communication
Et la réception-communication ressemble à ceci :
dataReceived octets [2]; //a tableau de deux octets pour stocker nos données Wire.beginTransmission(aDeviceAddress) ; ///who tu racontes à? Wire.endTransmission() ; //end communication Wire.requestFrom(aDeviceAddress,2) ; //request deux octets de données
if(Wire.available()) { dataReceived [0] = Wire.receive() ; //read octet 1 dataReceived [1] = Wire.receive() ; //read octet 2 }
La partie réelle délicate d’i2c est interpréter la feuille de données et comprendre comment vous et attend de recevoir ou d’envoyer des données vers l’appareil. Lorsque vous écrivez du code i2c vous devez constamment faire référence à la feuille de données.
Le fichier de code Arduino est joint ci-dessous.
Remarque si vous utilisez Arduino1.0
Les instructions Wire.Send et Wire.receive doivent BE changé à Wire.write et Wire.read