Tabla de contenido:

PCF8591 (expansor de E / S analógicas i2c) Uso rápido y fácil: 9 pasos
PCF8591 (expansor de E / S analógicas i2c) Uso rápido y fácil: 9 pasos

Video: PCF8591 (expansor de E / S analógicas i2c) Uso rápido y fácil: 9 pasos

Video: PCF8591 (expansor de E / S analógicas i2c) Uso rápido y fácil: 9 pasos
Video: Expansor de puertos: 74HC595 + bit banging y PCF8574 2024, Noviembre
Anonim
PCF8591 (expansor de E / S analógicas i2c) Rápido y fácil uso
PCF8591 (expansor de E / S analógicas i2c) Rápido y fácil uso

Biblioteca para usar i2c pcf8591 IC con arduino y esp8266.

Este IC puede controlar (hasta 4) entradas analógicas y / o 1 salida analógica como medir voltaje, leer el valor del termistor o desvanecer un LED.

Puede leer valores analógicos y escribir valores analógicos con solo 2 cables (perfecto para ESP-01).

Intento simplificar el uso de este IC, con un conjunto mínimo de operaciones.

Puede encontrar la versión actualizada en mi sitio

Paso 1: Cómo funciona I2c

Cómo funciona I2c
Cómo funciona I2c

I2C funciona con sus dos cables, SDA (línea de datos) y SCL (línea de reloj).

Ambas líneas son de drenaje abierto, pero se levantan con resistencias.

Por lo general, hay un maestro y uno o varios esclavos en la línea, aunque puede haber varios maestros, pero hablaremos de eso más adelante.

Tanto los maestros como los esclavos pueden transmitir o recibir datos, por lo tanto, un dispositivo puede estar en uno de estos cuatro estados: maestro de transmisión, maestro de recepción, esclavo de transmisión, esclavo de recepción.

Paso 2:

Puedes encontrar mi biblioteca aquí.

Descargar.

Haga clic en el botón DESCARGAS en la esquina superior derecha, cambie el nombre de la carpeta sin comprimir PCF8591.

Verifique que la carpeta PCF8591 contenga PCF8591.cpp y PCF8591.h.

Coloque la carpeta de la biblioteca PCF8591 en su carpeta / libraries /.

Es posible que deba crear la subcarpeta de bibliotecas si es su primera biblioteca.

Reinicie el IDE.

Paso 3: uso

Constructor: debe pasar la dirección de i2c (para verificar la dirección use esta guía I2cScanner)

PCF8591 (dirección uint8_t);

para esp8266 si desea especificar el pin SDA e SCL, use esto:

PCF8591 (dirección uint8_t, uint8_t sda, uint8_t scl);

Paso 4: Leer valor

Leer valor
Leer valor

IC como se puede ver en la imagen tiene 4 entradas analógicas y 1 salida analógica.

Entonces, para leer todas las entradas analógicas en una transmisión, puede hacer (el valor es de 0 a 255):

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

Serial.print (ai.ain0); Serial.print ("-"); Serial.print (ai.ain1); Serial.print ("-"); Impresión serial (ai.ain2); Serial.print ("-"); Serial.println (ai.ain3);

si desea leer una única entrada o canal analógico:

int ana = pcf8591.analogRead (AIN0); // leer analógico 0

Paso 5: leer Vale desde el canal

Leer Vale del canal
Leer Vale del canal

Este IC tiene varios tipos de lectura y puede usar una entrada analógica o un canal analógico (cuando usa una entrada analógica de lectura única y el canal está en las imágenes).

Por ejemplo para leer el valor del canal 0 en Dos entradas diferenciales debes hacer:

int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // leer analógico 0

Paso 6: Escriba el valor

Si quieres escribir un valor analógico debes hacerlo (el valor es de 0 a 255):

pcf8591.analogWrite (128);

Paso 7: Funciones adicionales

La característica adicional es leer un voltaje de escritura: Para el cálculo del voltaje debe pasar algún parámetro:

  • microcontrollerReferenceVoltage: obtenga voltaje del voltaje del microcontrolador (solo AVR no esp8266 para esp 3.3v fijo)
  • referenceVoltage: si microcontrollerReferenceVoltage false toma este valor El comando es:

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

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

Un ejemplo es:

pcf8591.voltageWrite (2.7); // Salida de 2,7 voltios

retraso (3000);

flotar ana0V = pcf8591.voltageRead (AIN0); // Leer voltaje del analógico 0

Serial.println (ana0V);

Paso 8: Diagrama de conexión de ejemplos

Ejemplos de diagrama de conexión
Ejemplos de diagrama de conexión

Paso 9: gracias

Serie de proyectos i2c (Colección):

  • Sensor de temperatura y humedad
  • Expansor analógico
  • Expansor digital
  • Pantalla LCD

Recomendado: