Nota
¡Hola, bienvenido a la comunidad de entusiastas de SunFounder en Facebook sobre Raspberry Pi, Arduino y ESP32! Sumérgete más a fondo en Raspberry Pi, Arduino y ESP32 con otros entusiastas.
¿Por qué unirse?
Soporte de Expertos: Resuelve problemas posventa y desafíos técnicos con ayuda de nuestra comunidad y equipo.
Aprender y Compartir: Intercambia consejos y tutoriales para mejorar tus habilidades.
Previsualizaciones Exclusivas: Obtén acceso anticipado a anuncios de nuevos productos y avances exclusivos.
Descuentos Especiales: Disfruta de descuentos exclusivos en nuestros productos más nuevos.
Promociones Festivas y Sorteos: Participa en sorteos y promociones festivas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [aquí] ¡y únete hoy!
Lección 10: Módulo Convertidor ADC DAC PCF8591
En esta lección, aprenderás a conectar la Placa de Desarrollo ESP32 con un Módulo Convertidor ADC DAC PCF8591. Cubriremos la lectura de valores analógicos de la entrada AIN0, el envío de estos valores al DAC (AOUT) y la visualización de las lecturas tanto crudas como convertidas en voltaje en el monitor serial. El potenciómetro del módulo está conectado a AIN0 mediante capsulas de puente, y el LED D2 en el módulo está conectado a AOUT, por lo que podrás ver cómo cambia el brillo del LED D2 a medida que giras el potenciómetro.
Componentes Requeridos
En este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ARTÍCULOS EN ESTE KIT |
ENLACE |
|---|---|---|
Kit Universal de Sensores para Creadores |
94 |
También puedes comprarlos por separado desde los siguientes enlaces.
Introducción al Componente |
Enlace de Compra |
|---|---|
ESP32 & Placa de Desarrollo (Placa ESP32) |
|
Cableado
Código
Nota
Para instalar la librería, usa el Administrador de Librerías de Arduino y busca «Adafruit PCF8591» e instálala.
Análisis del Código
Incluir la Librería y Definir Constantes
Nota
Para instalar la librería, usa el Administrador de Librerías de Arduino y busca «Adafruit PCF8591» e instálala.
// Incluir la librería Adafruit PCF8591 #include <Adafruit_PCF8591.h> // Definir el voltaje de referencia para la conversión ADC #define ADC_REFERENCE_VOLTAGE 3.3
Esta sección incluye la librería Adafruit PCF8591, que proporciona funciones para interactuar con el módulo PCF8591. El voltaje de referencia del ADC se establece en 3.3 voltios, que es el voltaje máximo que el ADC puede medir.
Configuración del Módulo PCF8591
// Crear una instancia del módulo PCF8591 Adafruit_PCF8591 pcf = Adafruit_PCF8591(); void setup() { Serial.begin(9600); Serial.println("# Adafruit PCF8591 demo"); if (!pcf.begin()) { Serial.println("# PCF8591 not found!"); while (1) delay(10); } Serial.println("# PCF8591 found"); pcf.enableDAC(true); }
En la función de configuración, se inicia la comunicación serial y se crea una instancia del módulo PCF8591. La función
pcf.begin()verifica si el módulo está conectado correctamente. Si no lo está, imprime un mensaje de error y detiene el programa. Si el módulo es encontrado, se habilita el DAC.Lectura del ADC y Escritura en el DAC
void loop() { AIN0 = pcf.analogRead(0); pcf.analogWrite(AIN0); Serial.print("AIN0: "); Serial.print(AIN0); Serial.print(", "); Serial.print(int_to_volts(AIN0, 8, ADC_REFERENCE_VOLTAGE)); Serial.println("V"); delay(500); }
La función loop lee continuamente el valor analógico desde AIN0 (entrada analógica 0) del módulo PCF8591, luego escribe este valor de vuelta en el DAC. También imprime el valor crudo y el valor convertido en voltaje de AIN0 en el Monitor Serial.
Las capsulas de puente vinculan el potenciómetro del módulo a AIN0, y el LED D2 está conectado a AOUT; por favor, consulta el schematic para más detalles. El brillo del LED cambia a medida que se gira el potenciómetro.
Función de Conversión de Digital a Voltaje
float int_to_volts(uint16_t dac_value, uint8_t bits, float logic_level) { return (((float)dac_value / ((1 << bits) - 1)) * logic_level); }
Esta función convierte el valor digital de vuelta a su correspondiente voltaje. Toma el valor digital (
dac_value), el número de bits de resolución (bits), y el voltaje de nivel lógico (logic_level) como parámetros. La fórmula utilizada es un enfoque estándar para convertir un valor digital a su voltaje equivalente.