Tabla de contenido:
- Paso 1: Cómo funciona I2c
- Paso 2:
- Paso 3: uso
- Paso 4: Leer valor
- Paso 5: leer Vale desde el canal
- Paso 6: Escriba el valor
- Paso 7: Funciones adicionales
- Paso 8: Diagrama de conexión de ejemplos
- Paso 9: gracias
Video: PCF8591 (expansor de E / S analógicas i2c) Uso rápido y fácil: 9 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
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
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
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
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
Paso 9: gracias
Serie de proyectos i2c (Colección):
- Sensor de temperatura y humedad
- Expansor analógico
- Expansor digital
- Pantalla LCD
Recomendado:
¡Cambio rápido por menos de $ 50! Cambio rápido ajustable Kazeshifter Arduino: 7 pasos
¡Cambio rápido por menos de $ 50! Kazeshifter Arduino Ajustable Quick Shifter: ¡Hola, amantes de las Superbikes o de las motocicletas! En este instructivo, compartiré cómo hacer tu propio Quick Shifter por poco dinero. ya usando el sistema de inyección de combustible, en algún momento
Raspberry Pi - Tutorial de Python del expansor de entrada / salida PCA9536: 4 pasos
Raspberry Pi - Expansor de entrada / salida PCA9536 Tutorial de Python: El PCA9536 es un dispositivo CMOS de 8 pines que proporciona 4 bits de expansión de entrada / salida paralela de uso general (GPIO) para aplicaciones I2C-bus / SMBus. Consiste en un registro de configuración de 4 bits para servir el propósito de la selección de entrada o salida, 4 bits
DHT12 (sensor de temperatura y humedad económico i2c), uso rápido y fácil: 14 pasos
DHT12 (Sensor de temperatura y humedad barato i2c), uso rápido y fácil: puede encontrar actualizaciones y otras en mi sitio https://www.mischianti.org/2019/01/01/dht12-library-en/ Me gusta el sensor que se puede usar con 2 cables (protocolo i2c), pero me encanta el económico. Esta es una biblioteca Arduino y esp8266 para la serie DHT12 o
Raspberry Pi - Tutorial Java del expansor de entrada / salida PCA9536: 4 pasos
Raspberry Pi - Expansor de entrada / salida PCA9536 Tutorial de Java: El PCA9536 es un dispositivo CMOS de 8 pines que proporciona 4 bits de expansión de entrada / salida paralela de uso general (GPIO) para aplicaciones I2C-bus / SMBus. Consiste en un registro de configuración de 4 bits para servir el propósito de la selección de entrada o salida, 4 bits
DIY MusiLED, LED sincronizados con música con una aplicación de Windows y Linux con un clic (32 bits y 64 bits). Fácil de recrear, fácil de usar, fácil de portar: 3 pasos
DIY MusiLED, LED sincronizados con música con una aplicación de Windows y Linux con un solo clic (32 bits y 64 bits). Fácil de recrear, fácil de usar, fácil de portar: este proyecto lo ayudará a conectar 18 LED (6 rojos + 6 azules + 6 amarillos) a su placa Arduino y analizar las señales en tiempo real de la tarjeta de sonido de su computadora y transmitirlas a los LED para iluminarlos según los efectos de ritmo (Snare, High Hat, Kick)