Les interfaces

1°) SPI : Serial Peripheral Interface :

http://arduino.cc/en/Reference/SPI

http://www.circuitsathome.com/mcu/running-multiple-slave-devices-on-arduino-spi-bus

L’interface Série pour périphériques (SPI) est un protocole de communication série synchrone simple utilisé par les microcontrôleurs (tels que la carte Arduino) pour communiquer avec un ou plusieurs composants périphériques rapidement sur de courtes distances. Ce protocole peut aussi être utilisé pour des communications entre deux microcontrôleurs.

Communication SPI avec le composant « maître » et un composant « esclave ».

Avec une connexion SPI, il y a toujours un composant maître (habituellement un microcontrôleur) lequel commande le ou les composants périphériques. Typiquement, il y a 3 lignes communes à tous les composants et qui les relient entre eux :

  • la ligne Maître entrant – Esclave sortant (ou MISO pour « Master In Slave Out » en anglais ) : c’est la ligne utilisée pour envoyer des données depuis le(s) périphérique(s) vers le maître,
  • la ligne Maître sortant – Esclave entrant ( ou MOSI pour « Master Out Slave In » en anglais) : c’est la ligne utilisée pour envoyer des données du maître vers le(s) périphérique(s).
  • la ligne du signal d’horloge ( ou SCLK pour Serial Clock en anglais) : cette ligne transmet les impulsions de signal d’horloge générées par le composant maître et qui synchronisent la transmission des données.

A ces 3 lignes communes, s’ajoutent une ligne de sélection par périphérique :

  • la ligne de sélection de l’esclave (ou /SS pour « Slave Select » en anglais) : chaque composant périphérique dispose d’une broche de sélection (active sur le niveau BAS) que le composant maître peut utiliser pour activer ou désactiver le(s) composant(s) périphérique(s) voulu(s). Quand cette broche est mise au niveau HAUT, le composant ignore ce qui se passe sur le bus SPI. Ceci permet d’avoir plusieurs composants périphériques qui se partagent les 3 lignes de communications MISO, MOSI et SCLK

Sur la carte Arduino UNO, le bus SPI utilise les broches :

  • 10 : /SS
  • 11 : MOSI
  • 12 : MISO
  • et 13 : SCLK.

Sur l’Arduino Mega, ce sont les broches :

  • 50 : MISO
  • 51 : MOSI
  • 52 : SCLK
  • et 53 : /SS
Sur la carte UNO et la Mega, les broches 1, 3 et 4 du connecteur ICSP sont connectées aux broches MISO, MOSI et SCLK. Ceci permet notamment l’utilisation de modules Arduino indifféremment avec une carte UNO et Mega, la connexion SPI se faisant par les 3 broches du connecteur ICSP connectées au bus SPI.

Noter que même si vous n’utilisez pas la broche /SS, elle doit quand même être configurée en sortie; sinon, l’interface SPI sera mise en mode « esclave » et rendra la librairie inopérante.

Il est possible d’utiliser une autre broche que la broche 10 en tant que broche de sélection de périphérique ( /SS pour Slave Select – active sur niveau BAS). Par exemple, le module Arduino Ethernet utilise la broche 4 pour activer la connexion SPI avec la carte mémoire SD et la broche 10 pour activer la connexion SPI avec l’interface Ethernet.

Utilisation :

Pour inclure la librairie SPI dans un programme, on ajoutera au début du programme la ligne suivante :

#include <SPI.h>
Pour ce faire, le plus simple est d’utiliser le menu du logiciel Arduino Programme > Importer Librairie > Nom_librairie

2°) SERIE (RX/TX) :

2 Arduinos reliées en série

Sur la première carte : Tx en vert ; Rx en orange Sur la deuxième, c’est inversé !

Entre une carte Arduino et un autre micro contrôleur

Là, c’est la même chose que pour connecter deux Arduino ensemble. Il faut relier le Tx et le Rx de la carte Arduino au Rx et au Tx du micro-contrôleur.

http://fr.openclassrooms.com/sciences/cours/arduino-pour-bien-commencer-en-electronique-et-en-programmation/envoyer-des-donnees

La carte UNO possède 1 port Série/USB, la LEONARDO 1 distinct de l’USB (Serial1), la MEGA, 3 ports en plus del’USB.

4°) Un fil :

C’est, par exemple, l’interface du capteur de température DHT11

5°) I2C :

I2C est le diminutif de ‘Inter Integrated Circuit’ . Ce protocole de communication a été développé par Phillips pour standardiser la communication entre circuit intégré. Plusieurs puces peuvent communiquer sur le même bus I2C en ayant chacune des fonctionnalités différentes. Chaque équipement possédant une adresse unique.
Le bus I2C a 2 lignes de communication : SDA(Serial Data) et SCL (Serial Clock). Pour l’Arduino UNO, ces lignes sont  SDA (Analog Input 4) & SCL (Analog Input 5), pour MEGA SDA=44 SCL=43.
Pour utiliser l’I2C il faut inclure la libraie ‘Wire’.

Pour trouver l’adresse unique du périphérique, utilisez le sketch suivant :

 // i2c_scanner  
 // This sketch tests the standard 7-bit addresses  
 // Devices with higher bit address might not be seen properly.  
 //------------------------------------------------------------  
 // You can plug and unplug device during the test  
 // Line SDA plug in UNO pin Analog 4 / Mega 44  
 // line SCL plug in UNO pin Analog 5 / Mega 43  
 #include <Wire.h>  
 void setup()  
 {  
  Wire.begin();  
  Serial.begin(9600);  
  Serial.println("\nI2C Scanner");  
 }  
 void loop()  
 {  
  byte error, address;  
  int nDevices;  
  Serial.println("Scanning...");  
  nDevices = 0;  
  for(address = 1; address < 127; address++ )   
  {  
   // The i2c_scanner uses the return value of  
   // the Write.endTransmisstion to see if  
   // a device did acknowledge to the address.  
   Wire.beginTransmission(address);  
   error = Wire.endTransmission();  
   if (error == 0)  
   {  
    Serial.print("I2C device found at address 0x");  
    if (address<16)   
     Serial.print("0");  
    Serial.print(address,HEX);  
    Serial.println(" !");  
    nDevices++;  
   }  
   else if (error==4)   
   {  
    Serial.print("Unknow error at address 0x");  
    if (address<16)   
     Serial.print("0");  
    Serial.println(address,HEX);  
   }    
  }  
  if (nDevices == 0)  
   Serial.println("No I2C devices found\n");  
  else  
   Serial.println("done\n");  
  delay(5000);      // wait 5 seconds for next scan  
 }  
 Attention ! vérifier la nécessité d’un « pull up » résistance de 10k en cas de chaînage de périphérique
Références :

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Articles récents
Commentaires récents
fatima sur Bienvenue !
AdminDroid sur Bienvenue !
fatima sur Bienvenue !
Archives
Catégories
%d blogueurs aiment cette page :