Arduino I2C Intro-Montage

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche

Broches I2C pour Arduino

Comme précisé, Arduino supporte le Bus I2C et dispose d'une librairie dans son environnement... mais faut-il encore savoir quelles broches utiliser sur votre Arduino.

Sur un Arduino Uno, le Bus I2C utilise les broches A4 et A5.

Il suffit de raccorder les broches A4 (SDA) ensembles et A5 (SCL) ensembles et partager une masse commune pour constituer le Bus I2C.

Notez que ces broches ne sont pas identiques pour toutes les plateformes Arduino, en voici un résumé:

Arduino Uno

  • SDA sur la broche I2C Data: broche Analogique A4
  • SCL sur la broche I2C Clock: broche Analogique A5

Arduino Mega

  • SDA sur la broche I2C Data: Broche 20
  • SCL sur la broche I2C Clock: Broche 21

Arduino Leonardo

  • SDA sur la broche I2C Data: Broche Digitale 1
  • SCL sur la broche I2C Clock: Broche Digitale 3

Deux Arduino sur un Bus I2C

Voici comment raccorder deux Arduino sur un même bus. Il y aura donc un Maître et l'autre (ou tous les autres) Arduino sera l'esclave.

Arduino-I2C-Intro-Montage2Arduino.jpg

Si vous n'avez qu'une seule alimentation pour vos deux Arduinos, vous pouvez connecter la sortie 5V de l'Arduino Maître sur la broche VIN de l'Arduino esclave.

Programme "Master Reader"

Comme précisé plus avant dans la documentaiton en "Master Reader", le Maître interroge un esclave et attend une réponse de la part de ce dernier.

Programme du Maître

Voici le programme issu de l'article "Arduino - MasterReader" sur Arduino.cc.

// Librairie Wire - Master Reader (Maitre Lit)
// *** Programme pour le Maître - Le maître Lit ***
//
// par Nicholas Zambetti <http://www.zambetti.com>
// Traduction par MCHobby.be <http://www.mchobby.be>
// 
// Démontre l'usage de la librairie Wire.
// Lectures de données depuis un périphérique I2C/TWI esclave.
//
// A utiliser avec le programme esclave de cet exemple.
//
// Crée le 29 mars 2006
// Traduit le 9 mars 2013 (MCHobby)
//
// This example code is in the public domain.
// Ce code d'exemple fait partie du domaine public.

#include <Wire.h>

void setup()
{
  Wire.begin();        // joindre le bus i2c (adresse est optionnelle pour un maître)
  Serial.begin(9600);  // démarré une communication série
}

void loop()
{
  Wire.requestFrom(2, 6);    // lecture de 6 octets (bytes) depuis l'esclave #2

  while(Wire.available())    // l'esclave pourrait envoyer moins de données qu'attendu
  {
    char c = Wire.read();    // Reception de l'octet (byte) comme caractère
    Serial.print(c);         // Affichage du caractère.
  }

  delay(500); // Attendre une demi seconde.
}

Programme de l'esclave

Voici le programme issu de l'article "Arduino - MasterReader" sur Arduino.cc.

// Librairie Wire - Master Reader (Maitre Lit)
// *** Programme pour l' Esclave - L'esclave écrit ***
//
// par Nicholas Zambetti <http://www.zambetti.com>
// Traduction par MCHobby.be <http://www.mchobby.be>
// 
// Démontre l'usage de la librairie Wire.
// Envoi des données sur le bus i2c en tant qu'esclave.
//
// A utiliser avec le programme Maître de cet exemple.
//
// Crée le 29 mars 2006
// Traduit le 9 mars 2013 (MCHobby)
//
// This example code is in the public domain.
// Ce code d'exemple fait partie du domaine public.


#include <Wire.h>

void setup()
{
  Wire.begin(2);                // Joindre le bus i2c avec l'adresse #2
  Wire.onRequest(requestEvent); // enregistrer l'événement (lorsqu'une demande arrive)
}

void loop()
{
  delay(100); // Attendre 100ms
}

// Fonction qui est exécutée lorsque des données sont demandées par le Maître.
// Cette fonction est enregistrée comme une événement ("event" en anglais), voir la fonction setup()
void requestEvent()
{
  Wire.write("hello "); // Répondre avec un message de 6 octets (bytes)
                        // comme attendu par le maître.
}

En savoir plus

L'article "Arduino - MasterReader" sur Arduino.cc vous propose plus d'informations. Vous y trouverez en autre la description des fonctions:



Réalisé par Meurisse D. pour MCHobby.be.

Contient également quelques images et exemples d'Arduino.cc, droits et copyrights sur ces ressources restant bien évidement à Arduino.cc.

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.