La conversión de analógico a digital es una tarea muy importante en la  electrónica integrada , ya que la mayoría de los sensores proporcionan salida como valores analógicos y para alimentarlos en un microcontrolador que solo comprende 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 CI de convertidor analógico a digital externos como  ADC0804 , ADC0808.

Componentes requeridos:

  • Arduino UNO
  • Módulo ADC PCF8591
  • Olla 100K
  • Cables de salto
  • Protoboard
  • LCD 1602

PCF8591 Módulo ADC / DAC

PCF8591 es un análogo de 8 bits a 8 bits digital o digital al analógico  módulo que significa que cada pin puede leer valores analógicos hasta 256. También cuenta con LDR y el termistor circuito proporcionado en el tablero. Este módulo tiene cuatro entradas analógicas y una salida analógica. Funciona en la  comunicación I 2 C , por lo que hay pines SCL y SDA para el reloj de serie y la dirección de datos de serie. Requiere  un  voltaje de suministro de 2.5-6V y tiene una 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 puentes en el tablero. J4 está conectado para seleccionar el  circuito de acceso de termistor , J5 está conectado para seleccionar el  circuito de acceso de LDR / resistencia de foto y J6 está conectado para seleccionar el circuito de acceso de voltaje ajustable. Para acceder a estos circuitos, debe utilizar las direcciones de estos puentes: 0x50 para J6, 0x60 para J5 y 0x70 para J4. Hay dos LED en la placa D1 y D2: D1 muestra la intensidad de la tensión de salida y D2 muestra la intensidad de la tensión de alimentación. A mayor voltaje de salida o suministro, mayor intensidad del LED D1 o D2. También puede probar estos LED utilizando un potenciómetro en VCC o en el pin AOUT.

Interfaz PCF8591 Módulo ADC / DAC con Arduino 

La interfaz de PCF8591 con Arduino es muy fácil. En este ejemplo de interfaz, leeremos los valores analógicos de cualquiera de los pines analógicos y cambiaremos esos valores por un potenciómetro de 100K. En primer lugar, conecte VCC y GND a 5V y GND de Arduino. A continuación, conecte el SDA y SCL a A4 y A5 de Arduino. Ahora, conecte un bote de 100K con AIN0 como se muestra en la figura. Para LCD, los pines de datos (D4-D7) están conectados a los pines digitales D5-D2 de Arduino y los pines RS y EN están conectados a D12 y D11 de Arduino. V0 de LCD está conectado a la olla y una olla de 100k, que se utiliza para controlar el brillo de la pantalla LCD.

Programación para la conversión analógica a digital (ADC) de Arduino PCF8591.

En primer lugar, necesitamos definir la biblioteca para la comunicación I 2 C y la pantalla LCD.

#include <Wire.h> 
#include <LiquidCrystal.h>

Luego defina algunas macros. La primera macro es para definir la dirección del bus de datos para IC y la segunda macro es para definir la dirección del primer pin de entrada del módulo, donde se proporciona la entrada del pot.

#define PCF8591 (0x90 >> 1) 
#define AIn0 0x00

A continuación, defina las conexiones de pin de LCD con Arduino e inicialice el valor que estamos obteniendo en el pin analógico.

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; 
LiquidCrystal lcd (rs, en, d4, d5, d6, d7); 
int Valor = 0;

Ahora, vamos a la función de configuración . Aquí, en primera línea, hemos inicializado la comunicación I 2 C. Y en la segunda línea, hemos inicializado la pantalla LCD en la que imprimimos los valores analógicos. Obtenga más información sobre la interfaz de 16×2 LCD con Arduino aquí.

configuración nula () 
{ 
Wire.begin (); 
lcd.begin (16,2); 
}

En la función de bucle , la primera línea es comenzar la transmisión, es decir, inicia el PCF8591. La segunda línea le dice al IC que realice la medición analógica en el primer pin de entrada analógica. La tercera línea finaliza la transmisión y la cuarta línea obtiene los datos medidos del pin analógico.

bucle vacío () 
{ 
Wire.beginTransmission (PCF8591); 
Wire.write (AIn0); 
Wire.endTransmission (); 
Wire.requestFrom (PCF8591, 1);

En la siguiente parte, coloque el valor leído del pin analógico en la variable Valor definida anteriormente. Y en las siguientes líneas, imprima ese valor en la pantalla LCD.

Valor = Wire.read (); 
lcd.print ("Valor ADC ="); 
lcd.print (Valor); 
retraso (500); 
lcd.clear ();}

Finalmente suba el código en Arduino y ejecútelo. Los valores analógicos comenzarán a aparecer en la pantalla LCD. Ajuste la perilla de la olla, y verá el cambio gradual en los valores.

https://circuitdigest.com/

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *