Table des matières:

PCF8591 (extenseur d'E/S analogiques i2c) Utilisation simple et rapide : 9 étapes
PCF8591 (extenseur d'E/S analogiques i2c) Utilisation simple et rapide : 9 étapes

Vidéo: PCF8591 (extenseur d'E/S analogiques i2c) Utilisation simple et rapide : 9 étapes

Vidéo: PCF8591 (extenseur d'E/S analogiques i2c) Utilisation simple et rapide : 9 étapes
Vidéo: Проект 04 — Arduino как расширитель ввода-вывода 2024, Novembre
Anonim
PCF8591 (extenseur d'E/S analogiques i2c) Utilisation simple et rapide
PCF8591 (extenseur d'E/S analogiques i2c) Utilisation simple et rapide

Bibliothèque pour utiliser i2c pcf8591 IC avec arduino et esp8266.

Ce circuit intégré peut contrôler (jusqu'à 4) entrée analogique et/ou 1 sortie analogique comme mesurer la tension, lire la valeur de la thermistance ou éteindre une led.

Peut lire la valeur analogique et écrire la valeur analogique avec seulement 2 fils (parfait pour ESP-01).

J'essaie de simplifier l'utilisation de ce circuit intégré, avec un ensemble minimal d'opérations.

Vous pouvez trouver la version mise à jour sur mon site

Étape 1: Comment fonctionne I2c

Comment fonctionne I2c
Comment fonctionne I2c

I2C fonctionne avec ses deux fils, le SDA (ligne de données) et le SCL (ligne d'horloge).

Ces deux lignes sont à drain ouvert, mais sont tirées vers le haut avec des résistances.

Habituellement, il y a un maître et un ou plusieurs esclaves sur la ligne, bien qu'il puisse y avoir plusieurs maîtres, mais nous en reparlerons plus tard.

Les maîtres et les esclaves peuvent transmettre ou recevoir des données. Par conséquent, un appareil peut se trouver dans l'un de ces quatre états: transmission maître, réception maître, transmission esclave, réception esclave.

Étape 2:

Vous pouvez trouver ma bibliothèque ici.

Télécharger.

Cliquez sur le bouton TÉLÉCHARGEMENTS dans le coin supérieur droit, renommez le dossier non compressé PCF8591.

Vérifiez que le dossier PCF8591 contient PCF8591.cpp et PCF8591.h.

Placez le dossier de la bibliothèque PCF8591 dans votre dossier /libraries/.

Vous devrez peut-être créer le sous-dossier des bibliothèques s'il s'agit de votre première bibliothèque.

Redémarrez l'IDE.

Étape 3: Utilisation

Constructeur: vous devez passer l'adresse d'i2c (pour vérifier l'adresse utilisez ce guide I2cScanner)

PCF8591 (adresse uint8_t);

pour esp8266, si vous voulez spécifier la broche SDA et SCL, utilisez ceci:

PCF8591 (adresse uint8_t, uint8_t sda, uint8_t scl);

Étape 4: Lire la valeur

Lire la valeur
Lire la valeur

IC comme vous pouvez le voir sur l'image ont 4 entrées analogiques et 1 sortie analogique.

Donc, pour lire toutes les entrées analogiques en une seule transmission, vous pouvez faire (la valeur est de 0 à 255):

PCF8591::AnalogInput ai = pcf8591.analogReadAll();

Serial.print(ai.ain0); Serial.print(" - "); Serial.print(ai.ain1); Serial.print(" - "); Serial.print(ai.ain2); Serial.print(" - "); Serial.println(ai.ain3);

si vous voulez lire une seule entrée ou canal analogique:

int ana = pcf8591.analogRead(AIN0); // lecture analogique 0

Étape 5: Lire Vale From Channel

Lire Vale From Channel
Lire Vale From Channel

Ce circuit intégré a plusieurs types de lecture et vous pouvez utiliser une entrée analogique ou un canal analogique (lorsque vous utilisez une entrée analogique à lecture unique et un canal sont dans les images).

Par exemple pour lire la valeur de la voie 0 dans Deux entrées différentielles il faut faire:

int ana = pcf8591.analogRead(CHANNEL0, TWO_DIFFERENTIAL_INPUT); // lecture analogique 0

Étape 6: écrivez la valeur

Si vous voulez écrire une valeur analogique vous devez faire (la valeur est de 0 à 255):

pcf8591.analogWrite(128);

Étape 7: Fonctionnalités supplémentaires

La fonction supplémentaire est de lire une tension d'écriture: pour le calcul de la tension, vous devez passer certains paramètres:

  • microcontrollerReferenceVoltage: obtenir la tension à partir de la tension du microcontrôleur (uniquement AVR no esp8266 pour esp 3.3v fixe)
  • referenceVoltage: si le microcontrôleurReferenceVoltage est faux, prenez cette valeur La commande est:

void voltageWrite (valeur flottante, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);

float voltageRead(uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);

Un exemple est:

pcf8591.voltageWrite(2.7); // sortie 2,7 Volts

retard(3000);

float ana0V = pcf8591.voltageRead(AIN0); // Lire la tension de l'analogique 0

Serial.println(ana0V);

Étape 8: Exemples de schéma de connexion

Exemples Schéma de connexion
Exemples Schéma de connexion

Étape 9: Merci

Série de projets i2c (Collection):

  • Capteur de température et d'humidité
  • Extenseur analogique
  • Extenseur numérique
  • Affichage LCD

Conseillé: