Différences entre versions de « MCP23017-Brancher-Entrée »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(12 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
{{MCP23017-NAV}}
 
{{MCP23017-NAV}}
 
{{traduction}}
 
  
 
== But de l'exemple ==
 
== But de l'exemple ==
 
Cet exemple présente le montage pour détecter la pression d'un bouton sur une broche du MCP23017 '''configurée comme entrée'''.
 
Cet exemple présente le montage pour détecter la pression d'un bouton sur une broche du MCP23017 '''configurée comme entrée'''.
  
Le but du montage est de faire clignoter une LED 13 de votre Arduino lorsque le bouton, raccordé sur la sortie #0 (GPA0) du MCP27013, est enfoncé.
+
Le but du montage est de refléter sur la LED Pin 13 de votre Arduino l'état de l'entrée #1 (GPA1) du MCP27013.
 +
 
 +
SI l'entrée #1 est à HIGH (haut, +5v) ALORS la LED est allumée.
 +
 
 +
SI l'entrée #1 est à LOW (bas, GND) ALORS la LED est éteinte.
  
 
== Truc et Astuce ==
 
== Truc et Astuce ==
  
 
=== La résistance Pull-Up ===
 
=== La résistance Pull-Up ===
Le MCP23017 dispose de résistance PullUp qui peuvent être activée.  
+
Le MCP23017 dispose, en interne, de résistances PullUp qui peuvent être activée pour chacune des broches.
 +
 
 +
Cela signifie que pour une broche configurée en entrée ET S'IL N'Y A AUCUNE INTERVENTION externe, cette dernière est ramenée automatique à +5V (état haut/HIGH) par le MCP23017.
 +
 
 +
C'est bigrement pratique car tout ce dont nous avons besoin de faire, c'est de ramener le potentiel à GND (0 volt) à l'aide d'un bouton poussoir :-)
 +
 
 +
C'est d'ailleurs le procédé que nous allons utiliser dans le montage ci-dessous.
  
Cela signifie que pour une broche configurée en entrée ET S'IL N'Y A AUCUNE INTERVENTION cette dernière est ramenée automatique à +5V (état haut/HIGH) par le MCP23017.
+
=== Une résistance de protection ===
 +
La résistance Pull-Up et un bouton poussoir c'est bien... mais en cas d'erreur, si la sortie est configurée en sortie et que vous pressez le bouton poussoir... PFFFF! Plus de MCP!!!!
 +
 
 +
Normal, cela revient à court-circuiter directement +5v sur la Masse!!!
 +
 
 +
Pour se mettre à l’abri d'une telle surprise, il suffit simplement de placer une résistance de 330 Ohms entre le bouton et la masse. Si la broche est configurée en sortie par accident, la résistance limitera la courant à 15mA et évitera le court-circuit franc. Ce courant limité 15mA (inférieur aux 20mA max par sortie du MCP23017) permettra à votre MCP de survivre à cette erreur ;-) .    
  
C'est bigrement pratique car tout ce dont nous avons besoin, c'est de   
 
 
 
== Montage ==
 
== Montage ==
  
[[Fichier:MCP23017-sortie.jpg|640px]]
+
[[Fichier:MCP23017-entrée.jpg]]
  
 
Voici les quelques étapes de raccordement.
 
Voici les quelques étapes de raccordement.
 +
 +
[[Fichier:MCP23017-layout.jpg]]
  
 
=== Brancher le bus I2C ===
 
=== Brancher le bus I2C ===
Ligne 35 : Ligne 48 :
  
 
=== Alimentation ===
 
=== Alimentation ===
Il faut bien entendu fournr
+
Il faut bien entendu fournir
 
* Connectez la broche #9 sur 5V (Alimentation)
 
* Connectez la broche #9 sur 5V (Alimentation)
 
* Connectez la broche #10 sur GND (Masse commune)
 
* Connectez la broche #10 sur GND (Masse commune)
Ligne 48 : Ligne 61 :
 
{{ambox-stop|text=Il important donc brancher la broche "reset" sur +5V... sinon le potentiel risque d'être flottant entre "reset" et "pas reset" et votre MCP qui fonctionnait il y a 5 minutes peut ensuite ne plus répondre aux différentes commandes. De quoi devenir chèvre.}}  
 
{{ambox-stop|text=Il important donc brancher la broche "reset" sur +5V... sinon le potentiel risque d'être flottant entre "reset" et "pas reset" et votre MCP qui fonctionnait il y a 5 minutes peut ensuite ne plus répondre aux différentes commandes. De quoi devenir chèvre.}}  
  
=== Brancher la sortie ===
+
=== Brancher l'entrée  ===
Nous allons utiliser la sortie sortie #0 (GPA0) du MCP23017 qui se trouve sur la Broche 21 du MCP.
+
Nous allons utiliser la broche #1 (GPA1) du MCP23017 qui se trouve sur la Broche 22 du MCP comme entrée.
  
Nous allons y raccorder une résistance de 330 Ohms puis une LED que nous raccorderons à la masse.  
+
Nous allons y raccorder une résistance de 330 Ohms (de séucrité) puis un actuateur (bouton poussoir) raccordé à la masse.  
  
* Brancher la LED et sa résistance sur la broche 21 du MCP23017.  
+
* Brancher la broche 22 à la masse par l'intermédiaire d'un bouton poussoir et d'une résistance de 330 Ohms.
  
 
== Code ==
 
== Code ==
Voici le code issu du programme toggle.pde de la librairie [https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library/blob/master/examples/toggle/toggle.pde Adafruit-MCP23017-Arduino-Library].
+
Voici le code issu du programme button.pde de la librairie [https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library/blob/master/examples/toggle/toggle.pde Adafruit-MCP23017-Arduino-Library].
 +
 
 +
Nous avons traduit les commentaires en Français pour faciliter la compréhension du code.
 +
 
 +
<nowiki>/* Exemple button.pde
 +
  Utilise la librairie Adafruit-MCP23017 pour la lecture d'entrée et activation de la Pull-Up sur un MCP23017 I/O expander
 +
 
 +
  Code écrit par LadyAda pour AdaFruit Industries [www.adafruit.com], Domaine Publique
 +
 
 +
  TRADUCTION FRANCAISE par Meurisse D. pour MCHobby.be [www.mchobby.be], CC-BY-SA pour tâche de traduction.
 +
  TUTORIEL complémentaire EN FRANCAIS par MCHobby.be sur (voir wiki pour licence tutoriel)
 +
      http://mchobby.be/wiki/index.php?title=MCP23017
 +
 
 +
  Acheter un MCP23017
 +
      http://shop.mchobby.be/product.php?id_product=218
 +
*/
 +
 
 +
#include <Wire.h>
 +
#include "Adafruit_MCP23017.h"
 +
// Test de base de lecture d'entrée (et activation de la Pull-Up) sur un MCP23017 I/O expander
 +
// Domaine Publique! (code d'origine)
 +
 
 +
// Connectez la broche #12 du MCP23017 sur Arduino broche Analogique A5 (Horloge I2C, SCL)
 +
// Connectez la broche #13 du MCP23017 sur Arduino broche Analogique A4 (Données I2C, SDA)
 +
// Connectez la broche #15, 16 et 17 du MCP23017 sur DNG (Sélection de l'adresse)
 +
// Connectez la broche #9 du MCP23017 sur 5V (Alimentation)
 +
// Connectez la broche #10 du MCP23017 sur GND (Masse commune)
 +
 
 +
// Entrée #1 (GPA1, broche 22) est connectée sur bouton puis sur la masse
 +
// par l'intermédiaire d'une résistance de 330 Ohms
 +
 
 +
// Ajout MCHobby:
 +
// - Connectez la broche #18 du MCP23017 sur 5V (désactiver la ligne Reset)
 +
 
 +
Adafruit_MCP23017 mcp;
 +
 
 +
void setup() { 
 +
  mcp.begin();      // Utiliser l'adresse par défaut 0x00
 +
 
 +
  mcp.pinMode(1, INPUT); // Activer GPA1 comme entrée
 +
  mcp.pullUp(1, HIGH);  // Activer la résistance Pull-Up interne de 100K
 +
 
 +
  pinMode(13, OUTPUT);  // Utiliser la LED sur la Broche 13 pour faire du débogage.
 +
}
  
Nous avons introduit quelques modifications et traduit les commentaires en Français
 
  
  
 +
void loop() {
 +
  // La LED 'rapporte' l'état de l'entrée du MCP
 +
  digitalWrite(13, mcp.digitalRead(1));
 +
}
 +
</nowiki>
  
 
{{MCP23017-TRAILER}}
 
{{MCP23017-TRAILER}}

Version actuelle datée du 16 janvier 2014 à 20:51

But de l'exemple

Cet exemple présente le montage pour détecter la pression d'un bouton sur une broche du MCP23017 configurée comme entrée.

Le but du montage est de refléter sur la LED Pin 13 de votre Arduino l'état de l'entrée #1 (GPA1) du MCP27013.

SI l'entrée #1 est à HIGH (haut, +5v) ALORS la LED est allumée.

SI l'entrée #1 est à LOW (bas, GND) ALORS la LED est éteinte.

Truc et Astuce

La résistance Pull-Up

Le MCP23017 dispose, en interne, de résistances PullUp qui peuvent être activée pour chacune des broches.

Cela signifie que pour une broche configurée en entrée ET S'IL N'Y A AUCUNE INTERVENTION externe, cette dernière est ramenée automatique à +5V (état haut/HIGH) par le MCP23017.

C'est bigrement pratique car tout ce dont nous avons besoin de faire, c'est de ramener le potentiel à GND (0 volt) à l'aide d'un bouton poussoir :-)

C'est d'ailleurs le procédé que nous allons utiliser dans le montage ci-dessous.

Une résistance de protection

La résistance Pull-Up et un bouton poussoir c'est bien... mais en cas d'erreur, si la sortie est configurée en sortie et que vous pressez le bouton poussoir... PFFFF! Plus de MCP!!!!

Normal, cela revient à court-circuiter directement +5v sur la Masse!!!

Pour se mettre à l’abri d'une telle surprise, il suffit simplement de placer une résistance de 330 Ohms entre le bouton et la masse. Si la broche est configurée en sortie par accident, la résistance limitera la courant à 15mA et évitera le court-circuit franc. Ce courant limité 15mA (inférieur aux 20mA max par sortie du MCP23017) permettra à votre MCP de survivre à cette erreur ;-) .

Montage

MCP23017-entrée.jpg

Voici les quelques étapes de raccordement.

MCP23017-layout.jpg

Brancher le bus I2C

  • Connectez la broche #12 sur Arduino broche Analogique A5 (Horloge I2C, SCL)
  • Connectez la broche #13 sur Arduino broche Analogique A4 (Données I2C, SDA)

Fixer l'adresse du MCP2307

Fixer l'adresse à la valeur par défaut cette adresse est 0x00.

Si ces connexions ne sont pas effectuées, votre MCP Risque d'avoir une adresse flottante... et ne répondra probablement pas à votre programme.

  • Connectez la broche #15, 16 et 17 sur GND (Sélection de l'adresse)

Alimentation

Il faut bien entendu fournir

  • Connectez la broche #9 sur 5V (Alimentation)
  • Connectez la broche #10 sur GND (Masse commune)

Signal Reset

Le signal Reset permet de réinitialiser le MCP.

Le "reset" intervient lorsque le potentiel de la broche est à 0v (GND).

  • Connectez la broche #18 sur 5V pour désactiver la ligne Reset

Brancher l'entrée

Nous allons utiliser la broche #1 (GPA1) du MCP23017 qui se trouve sur la Broche 22 du MCP comme entrée.

Nous allons y raccorder une résistance de 330 Ohms (de séucrité) puis un actuateur (bouton poussoir) raccordé à la masse.

  • Brancher la broche 22 à la masse par l'intermédiaire d'un bouton poussoir et d'une résistance de 330 Ohms.

Code

Voici le code issu du programme button.pde de la librairie Adafruit-MCP23017-Arduino-Library.

Nous avons traduit les commentaires en Français pour faciliter la compréhension du code.

/* Exemple button.pde
   Utilise la librairie Adafruit-MCP23017 pour la lecture d'entrée et activation de la Pull-Up sur un MCP23017 I/O expander
   
   Code écrit par LadyAda pour AdaFruit Industries [www.adafruit.com], Domaine Publique
   
   TRADUCTION FRANCAISE par Meurisse D. pour MCHobby.be [www.mchobby.be], CC-BY-SA pour tâche de traduction.
   TUTORIEL complémentaire EN FRANCAIS par MCHobby.be sur (voir wiki pour licence tutoriel)
      http://mchobby.be/wiki/index.php?title=MCP23017

   Acheter un MCP23017
      http://shop.mchobby.be/product.php?id_product=218
*/

#include <Wire.h>
#include "Adafruit_MCP23017.h"
// Test de base de lecture d'entrée (et activation de la Pull-Up) sur un MCP23017 I/O expander
// Domaine Publique! (code d'origine)

// Connectez la broche #12 du MCP23017 sur Arduino broche Analogique A5 (Horloge I2C, SCL)
// Connectez la broche #13 du MCP23017 sur Arduino broche Analogique A4 (Données I2C, SDA)
// Connectez la broche #15, 16 et 17 du MCP23017 sur DNG (Sélection de l'adresse)
// Connectez la broche #9 du MCP23017 sur 5V (Alimentation)
// Connectez la broche #10 du MCP23017 sur GND (Masse commune)

// Entrée #1 (GPA1, broche 22) est connectée sur bouton puis sur la masse 
// par l'intermédiaire d'une résistance de 330 Ohms

// Ajout MCHobby:
// - Connectez la broche #18 du MCP23017 sur 5V (désactiver la ligne Reset)

Adafruit_MCP23017 mcp;
  
void setup() {  
  mcp.begin();      // Utiliser l'adresse par défaut 0x00

  mcp.pinMode(1, INPUT); // Activer GPA1 comme entrée
  mcp.pullUp(1, HIGH);   // Activer la résistance Pull-Up interne de 100K

  pinMode(13, OUTPUT);  // Utiliser la LED sur la Broche 13 pour faire du débogage.
}



void loop() {
  // La LED 'rapporte' l'état de l'entrée du MCP
  digitalWrite(13, mcp.digitalRead(1));
}


Source: Librairie MCP23017 d'AdaFruit Industries

Tutoriel réalisé par Meurisse D pour MCHobby basé sur la librairie MCP23017 de LadyAda (AdaFruit Industries).

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com

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.