Taula de continguts:

PCF8591 (i2c Analog I / O Expander) Ús fàcil i ràpid: 9 passos
PCF8591 (i2c Analog I / O Expander) Ús fàcil i ràpid: 9 passos

Vídeo: PCF8591 (i2c Analog I / O Expander) Ús fàcil i ràpid: 9 passos

Vídeo: PCF8591 (i2c Analog I / O Expander) Ús fàcil i ràpid: 9 passos
Vídeo: How to Use I2C LCD with Arduino | Very Easy Arduino LCD I2C Tutorial | Arduino 16x2 LCD I2C Tutorial 2024, Juliol
Anonim
PCF8591 (i2c Analog I / O Expander) Ús fàcil i ràpid
PCF8591 (i2c Analog I / O Expander) Ús fàcil i ràpid

Biblioteca per utilitzar IC i2c pcf8591 amb arduino i esp8266.

Aquest CI pot controlar (fins a 4) l'entrada analògica i / o 1 sortida analògica com mesurar la tensió, llegir el valor del termistor o esvair un led.

Pot llegir valor analògic i escriure valor analògic amb només 2 fils (perfecte per ESP-01).

Intento simplificar l’ús d’aquest CI, amb un conjunt mínim d’operacions.

Podeu trobar la versió actualitzada al meu lloc

Pas 1: Com funciona I2c

Com funciona I2c
Com funciona I2c

I2C funciona amb els seus dos cables, l'SDA (línia de dades) i SCL (línia de rellotge).

Ambdues línies són de drenatge obert, però estan arrossegades amb resistències.

Normalment hi ha un mestre i un o diversos esclaus a la línia, tot i que hi pot haver diversos mestres, però en parlarem més endavant.

Tant els amos com els esclaus poden transmetre o rebre dades, per tant, un dispositiu pot estar en un d’aquests quatre estats: transmissió mestra, recepció del mestre, transmissió d’esclau, recepció d’esclaus.

Pas 2:

Podeu trobar la meva biblioteca aquí.

Per descarregar.

Feu clic al botó DESCÀRREGUES de l'extrem superior dret i canvieu el nom de la carpeta sense comprimir PCF8591.

Comproveu que la carpeta PCF8591 contingui PCF8591.cpp i PCF8591.h.

Col·loqueu la carpeta de biblioteca PCF8591 a la vostra carpeta / libraries /.

És possible que hàgiu de crear la subcarpeta de biblioteques si és la vostra primera biblioteca.

Reinicieu l'IDE.

Pas 3: Ús

Constructor: heu de passar l'adreça d'i2c (per comprovar l'adreça, utilitzeu aquesta guia I2cScanner)

PCF8591 (adreça uint8_t);

per a esp8266 si voleu especificar el pin SDA e SCL, utilitzeu això:

PCF8591 (adreça uint8_t, uint8_t sda, uint8_t scl);

Pas 4: llegiu el valor

Llegiu el valor
Llegiu el valor

IC com podeu veure a la imatge tenen 4 entrades analògiques i 1 sortida analògica.

Per tant, podeu llegir totes les entrades analògiques en una transmissió (el valor és de 0 a 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 voleu llegir una sola entrada o canal analògic:

int ana = pcf8591.analogRead (AIN0); // llegir analògic 0

Pas 5: llegiu Vale From Channel

Llegiu Vale From Channel
Llegiu Vale From Channel

Aquest CI té diversos tipus de lectura i podeu utilitzar l'entrada analògica o canal analògic (quan utilitzeu entrada i canal analògics de lectura única a les imatges).

Per exemple, per llegir el valor del canal 0 a dues entrades diferencials, heu de fer:

int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // llegir analògic 0

Pas 6: escriviu valor

Si voleu escriure un valor analògic, heu de fer-ho (el valor és de 0 a 255):

pcf8591.analogWrite (128);

Pas 7: funcions addicionals

Una característica addicional és llegir una tensió d'escriptura: per al càlcul de la tensió heu de passar algun paràmetre:

  • microcontrollerReferenceVoltage: obtingueu la tensió del voltatge del microcontrolador (només AVR no esp8266 per esp 3.3v fix)
  • referenceVoltage: si el microcontrollerReferenceVoltage és fals, tingueu aquest valor L'ordre és:

void voltageWrite (valor flotant, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);

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

Un exemple és:

pcf8591.voltageWrite (2.7); // Sortida de 2,7 volts

retard (3000);

float ana0V = pcf8591.voltageRead (AIN0); // Llegiu la tensió de l’analògic 0

Serial.println (ana0V);

Pas 8: Exemples de diagrama de connexió

Exemples Diagrama de connexió
Exemples Diagrama de connexió

Pas 9: gràcies

Sèrie de projectes i2c (Col·lecció):

  • Sensor d'humitat de temperatura
  • Expansor analògic
  • Expander digital
  • Pantalla LCD

Recomanat: