PCF8574 : obtenez plus de broches de connexion pour Arduino

pcf8574

Vous vous êtes peut-être retrouvé dans une situation où vous souhaiteriez augmenter le nombre d'entrées et de sorties disponibles pour votre carte Arduino, puisque vous réalisez un projet qui nécessite plus d'appareils que prévu. Dans ces cas-là, vous ne pouvez faire qu'une chose, c'est penser à acheter une carte d'un modèle supérieur avec plus de ces connexions. Mais maintenant avec Le PCF8574 peut étendre les E/S d'Arduino d'une manière simple et bon marché.

Ici, nous allons vous montrer ce qu'est le PCF8574 au cas où vous ne le sauriez pas, en plus de vous montrer comment il peut être connecté à votre carte Arduino expliqué étape par étape et comment il fonctionne...

Qu'est-ce que le PCF8574?

pcf8574

El PCF8574 est un extenseur d'entrée et de sortie numérique (E/S) pour le bus I2C1. Cet appareil, fabriqué par Philips, vous permet de connecter un processeur tel qu'Arduino pour contrôler plus d'appareils en utilisant moins de broches2. Le PCF8574 intègre 8 broches quasi-directionnelles basées sur des sorties CMOS en configuration à drain ouvert.

De plus, le PCF8574 est un appareil basse consommation qui prend en charge les opérations VCC de 2.5 V à 6 V. Il dispose d'un port d'E/S quasi-bidirectionnel 8 bits, de sorties verrouillées, d'une sortie d'interruption à drain ouvert et d'une capacité de pilotage de courant élevé pour les LED. En revanche, sa consommation en veille est très faible, inférieure à 10 µA.

C'est très utile pour Développez les capacités de votre carte Arduino au-delà de ses limites, ce qui peut être d'une grande aide pour les créateurs qui ont besoin de quelque chose de plus que ce que propose Arduino. Le courant maximum que chaque broche peut fournir dépendra de la configuration :

  • Lorsqu'il fait office de sortie, il est de 25 mA lorsqu'il fait office de puits, c'est-à-dire lorsque le courant électrique circule vers le PCF8574. Il s'agit de la configuration par défaut.
  • Lorsqu'il agit comme source, il est de 300 µA, c'est-à-dire lorsque le courant provient du PCF8574. De même, vous devez savoir que toutes les sorties ont des Latchs, c'est-à-dire qu'elles maintiennent elles-mêmes l'état dans un registre. Il suffit d'agir lorsque l'on souhaite modifier l'état d'une des sorties.

La communication est faite via le bus I2C, il est donc facile d'obtenir des données à partir des appareils qui y sont connectés. De même, il faut noter qu'il dispose de 3 broches d'adresse, ce qui donne 8 connexions possibles sur un même bus I2C. Cela signifie qu'il est possible de contrôler 64 appareils en utilisant seulement 2 broches.

Paramètres d'adresse

Certains modèles de ce module PCF8574 incluent généralement des broches de configuration et des cavaliers comme ceux que vous voyez dans l'image ci-dessus. En revanche, d'autres modèles intègrent un interrupteur qui facilite les choses avec les trois micro-interrupteurs... Quoi qu'il en soit, ils servent à configurer les adresses de broches d'E/S :

A0 A1 A2 Direction
0 0 0 Assistance
0 0 1 Assistance
0 1 0 Assistance
0 1 1 Assistance
1 0 0 Assistance
1 0 1 Assistance
1 1 0 Assistance
1 1 1 Assistance

Prix ​​et où acheter

On peut le trouver pour seulement quelques euros. C'est un appareil pas cher du tout pour voir à quel point cela peut être pratique pour certains modèles Arduino qui ont un nombre inférieur d'E/S. Alors si vous recherchez un PCF8574, vous pouvez le trouver dans les magasins spécialisés ou également sur les grandes plateformes en ligne comme Amazon, Aliexpress ou eBay. Par exemple, nous en recommandons un ici :

Connexion du PCF8574 à Arduinno

Pour connectez l'expandeur PCF8574 à votre carte Arduino, Le schéma de connexion est assez simple. Vous n'aurez qu'à vous connecter :

  • La broche SCL marquée sur la carte PCF8574 à la broche SCL d'Arduino. Cette broche peut changer selon le modèle, mais se trouve généralement sur l'A5 sur les modèles les plus populaires comme l'UNO.
  • La broche SDA de l'expandeur doit se connecter à la broche SDA de l'Arduino. La même chose que j'ai mentionnée plus haut, cela peut changer selon le modèle, mais généralement c'est l'A4. En cas de doute, vérifiez le brochage de votre modèle.
  • La broche GND du PCF8574 sera bien entendu connectée à celle marquée GND sur l'Arduino, c'est-à-dire qu'il s'agit de la connexion à la masse.
  • La broche Vcc de l'expandeur est connectée au 5V de l'Arduino, de cette façon, avec GND et Vcc nous avons déjà alimenté la carte d'extension pour qu'elle puisse commencer à fonctionner.

Opération

Une fois le PCF8574 connecté à la carte Arduino, il est maintenant temps de savoir Comment ça marche. Pour ce faire, vous devez garder à l'esprit que vous pourrez disposer de 8 broches supplémentaires, en échange d'avoir utilisé deux broches Arduino, en plus de celles de puissance. D'un autre côté, vous devez garder quelque chose à l'esprit, à savoir que sur chacune de ces 8 broches du PCF8574, vous avez un transistor MOSFET ainsi qu'une résistance de rappel à très faible résistance. Cela suppose une intensité de courant de 100 microA lorsque le transistor est actif.

Et cela nous laisse avec le panorama suivant :

  • Configuration en sortie- Lorsque la broche est utilisée comme sortie, elle agit comme un puits de courant, comme je l'ai expliqué ci-dessus, c'est-à-dire que le courant entre.
    • FAIBLE : À basse tension, il ne conduit pas le courant, charge = Vdd.
    • ÉLEVÉ : en haute tension, un courant pouvant atteindre 25 mA peut passer, la charge sera connectée à GND.
  • Configuration en entrée: il doit toujours être réglé sur HIGH, et dans ce cas il agira comme une source, c'est-à-dire que le courant s'écoule.
    • Fermé: Lorsque la charge externe n'est pas donnée, la tension sur la broche passe à GND.
    • Ouvert: Lorsqu'une charge externe se produit, la tension des broches devient Vdd.

Code IDE Arduino

Arduino IDE, types de données, programmation

Si vous souhaitez quelques exemples de création de code pour utiliser ce PCF8574 sur Arduino, c'est aussi simple que d'utiliser ces exemples de code que vous pouvez modifier en fonction de vos besoins :

  • Configuration en sortie :
#include <Wire.h>

const int pcfAddress = 0x38;

void setup()
{
  Wire.begin();
  Serial.begin(9600);
}

void loop()
{
  for (short channel = 0; channel < 8; channel++)
  {
    // Escribir dato en canal 'channel'
    Wire.beginTransmission(pcfAddress);
    Wire.write(~(1 << channel));
    Wire.endTransmission();
    
    // Leer dato de canal
    delay(500);
  }
}
  • Configuration en entrée :
#include <Wire.h>

const int pcfAddress = 0x38;

void setup()
{
  Wire.begin();
  Serial.begin(9600);
}

void loop()
{
  short channel = 1;
  byte value = 0;

  // Leer dato de canal 'channel'
  Wire.requestFrom(pcfAddress, 1 << channel);
  if (Wire.available())
  {
    value = Wire.read();
  }
  Wire.endTransmission();

  // Mostrar el valor por puerto serie
  Serial.println(value);
}

N'oubliez pas que vous pouvez également utiliser le bibliothèque créée spécialement pour le PCF8574 qui comprend également des exemples pratiques…


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.