- Componentes requeridos
- Módulo PCF8591 ADC / DAC
- Pines I2C en Raspberry Pi
- Interfaz del módulo ADC / DAC PCF8591 con Raspberry Pi
- Programa Python para conversión analógica a digital (ADC)
La conversión de analógico a digital es una tarea muy importante en la electrónica embebida, ya que la mayoría de los sensores proporcionan salida como valores analógicos y para alimentarlos en un microcontrolador que solo entiende valores binarios, tenemos que convertirlos en valores digitales. Entonces, para poder procesar los datos analógicos, los microcontroladores necesitan un convertidor analógico a digital.
Algunos microcontroladores tienen ADC incorporado como Arduino, MSP430, PIC16F877A, pero algunos microcontroladores no lo tienen como 8051, Raspberry Pi, etc. y tenemos que usar algunos circuitos integrados convertidores analógicos a digitales externos como ADC0804, ADC0808. A continuación puede encontrar varios ejemplos de ADC con diferentes microcontroladores:
- ¿Cómo usar ADC en Arduino Uno?
- Tutorial de Raspberry Pi ADC
- Interfaz ADC0808 con microcontrolador 8051
- Voltímetro digital de 0-25 V con microcontrolador AVR
- Cómo utilizar ADC en STM32F103C8
- Cómo utilizar ADC en MSP430G2
- Cómo utilizar ADC en ARM7 LPC2148
- Uso del módulo ADC del microcontrolador PIC con MPLAB y XC8
En este tutorial, aprenderemos cómo interconectar el módulo ADC / DAC PCF8591 con Raspberry Pi.
Componentes requeridos
- Frambuesa-pi
- Módulo ADC PCF8591
- Olla 100K
- Cables de salto
Se supone que tiene Raspberry Pi con el último sistema operativo Raspbian instalado y sabe cómo SSH en el Pi utilizando un software de terminal como Putty. Si es nuevo en Raspberry Pi, siga este artículo para comenzar con Raspberry Pi. Aún así, si tiene algún problema, hay toneladas de Tutoriales de Raspberry Pi que pueden ayudar.
Módulo PCF8591 ADC / DAC
El PCF8591 es un módulo convertidor de analógico a digital de 8 bits o de digital a analógico de 8 bits, lo que significa que cada pin puede leer valores analógicos de hasta 256. También tiene un circuito LDR y termistor en la placa. Este módulo tiene cuatro entradas analógicas y una salida analógica. Funciona con comunicación I 2 C, por lo que hay pines SCL y SDA para el reloj en serie y la dirección de datos en serie. Requiere voltaje de suministro de 2.5-6V y tiene baja corriente de espera. También podemos manipular el voltaje de entrada ajustando la perilla del potenciómetro en el módulo. También hay tres saltadores en el tablero. J4 está conectado para seleccionar el circuito de acceso del termistor, J5 está conectado para seleccionar el circuito de acceso LDR / fotorresistenciay J6 está conectado para seleccionar el circuito de acceso de voltaje ajustable. Hay dos LED en la placa D1 y D2-D1 muestra la intensidad del voltaje de salida y D2 muestra la intensidad del voltaje de suministro. Cuanto mayor sea la tensión de salida o alimentación, mayor será la intensidad del LED D1 o D2. También puede probar estos LED utilizando un potenciómetro en VCC o en el pin AOUT.
Pines I2C en Raspberry Pi
Para usar PCF8591 con Raspberry Pi, lo primero que debe hacer es conocer los pines del puerto I2C de la Raspberry Pi y configurar el puerto I2C en la Raspberry pi.
A continuación se muestra el diagrama de pines de Raspberry Pi 3 Modelo B +, y en este tutorial se utilizan pines I2C GPIO2 (SDA) y GPIO3 (SCL).
Configuración de I2C en Raspberry Pi
De forma predeterminada, I2C está deshabilitado en Raspberry Pi. Entonces primero debe estar habilitado. Para habilitar el I2C en Raspberry Pi
1. Vaya a la terminal y escriba sudo raspi-config.
2. Ahora aparece la herramienta de configuración del software Raspberry Pi.
3. Seleccione Opciones de interfaz y luego habilite I2C.
4. Después de habilitar el I2C, reinicie el Pi.
Escaneo de la dirección I2C de PCF8591 usando Raspberry Pi
Ahora, para iniciar la comunicación con el PCF8591 IC, la Raspberry Pi debe conocer su dirección I2C. Para encontrar la dirección, primero conecte el pin SDA y SCL de PCF8591 al pin SDA y SCL de Raspberry Pi. También conecte los pines + 5V y GND.
Ahora abra el terminal y escriba el siguiente comando para conocer la dirección del dispositivo I2C conectado, sudo i2cdetect –y 1 o sudo i2cdetect –y 0
Después de encontrar la dirección I2C, ahora es el momento de construir el circuito e instalar las bibliotecas necesarias para usar PCF8591 con Raspberry Pi.
Interfaz del módulo ADC / DAC PCF8591 con Raspberry Pi
El diagrama de circuito para la interfaz de PCF8591 con Raspberry Pi es simple. En este ejemplo de interfaz, leeremos los valores analógicos de cualquiera de los pines analógicos y los mostraremos en la terminal Raspberry Pi. Podemos cambiar los valores usando un bote de 100K.
Conecte el VCC y GND a GPIO2 y GPIO de Raspberry Pi. A continuación, conecte SDA y SCL a GPIO3 y GPIO5 respectivamente. Finalmente conecte una olla de 100K con AIN0. También puede agregar una pantalla LCD de 16x2 para mostrar los valores de ADC en lugar de mostrarlos en la Terminal. Obtenga más información sobre cómo interconectar LCD 16x2 con Raspberry Pi aquí.
Programa Python para conversión analógica a digital (ADC)
El programa completo y el video de trabajo se encuentran al final de este tutorial.
En primer lugar, importe la biblioteca smbus para la comunicación del bus I 2 C y la biblioteca de tiempo para dar un tiempo de suspensión entre la impresión del valor.
importar tiempo de importación smbus
Ahora defina algunas variables. La primera variable contiene la dirección del bus I 2 C y la segunda variable contiene la dirección del primer pin de entrada analógica.
dirección = 0x48 A0 = 0x40
A continuación, hemos creado un objeto de la función SMBus (1) de la biblioteca smbus
bus = smbus.SMBus (1)
Ahora, mientras la primera línea le dice al IC que haga la medición analógica en el primer pin de entrada analógica. La segunda línea almacena la dirección leída en el pin analógico en un valor variable. Finalmente imprima el valor.
while True: bus.write_byte (dirección, A0) valor = bus.read_byte (dirección) print (valor) time.sleep (0.1)
Ahora finalmente guarde el código de Python en algún archivo con.py entension y ejecute el código en la terminal Raspberry Pi usando el siguiente comando
python filename.py
Antes de ejecutar el código, asegúrese de haber habilitado la comunicación I 2 C y de que todos los pines están conectados como se muestra en el diagrama; de lo contrario, se mostrarán errores. Los valores analógicos deben comenzar a aparecer en el terminal como se muestra a continuación. Ajuste la perilla del potenciómetro y verá el cambio gradual en los valores. Obtenga más información sobre cómo ejecutar el programa en
El código y el video completos de Python se muestran a continuación.