- ADC0804 y Raspberry Pi:
- Componentes requeridos:
- Explicación del circuito:
- Explicación de programación:
- Trabajando:
Raspberry Pi es una placa basada en procesador de arquitectura ARM diseñada para ingenieros electrónicos y aficionados. PI es una de las plataformas de desarrollo de proyectos más confiables que existen en la actualidad. Con una velocidad de procesador más alta y 1 GB de RAM, el PI se puede utilizar para muchos proyectos de alto perfil como procesamiento de imágenes e Internet de las cosas.
Para realizar cualquiera de los proyectos de alto perfil, es necesario comprender las funciones básicas de PI. Cubriremos todas las funcionalidades básicas de Raspberry Pi en estos tutoriales. En cada tutorial discutiremos una de las funciones de PI. Al final de esta serie de tutoriales de Raspberry Pi, podrá realizar proyectos de alto perfil por sí mismo. Siga los siguientes tutoriales:
- Introducción a Raspberry Pi
- Configuración de Raspberry Pi
- LED parpadeante
- Interfaz del botón Raspberry Pi
- Generación Raspberry Pi PWM
- Controlar el motor de CC con Raspberry Pi
- Control de motor paso a paso con Raspberry Pi
- Interfaz de registro de cambios con Raspberry Pi
En este tutorial, conectaremos un chip ADC (conversión analógica a digital) a Raspberry Pi. Conocemos todos los parámetros de los analógicos, significa que varían continuamente a lo largo del tiempo. Digamos, por ejemplo, la temperatura de la habitación, la temperatura de la habitación varía continuamente con el tiempo. Esta temperatura se proporciona con números decimales. Pero en el mundo digital, no hay números decimales, por lo que debemos convertir el valor analógico en valor digital. Este proceso de conversión se realiza mediante la técnica ADC. Obtenga más información sobre ADC aquí: Introducción a ADC0804
ADC0804 y Raspberry Pi:
Los controladores normales tienen canales ADC pero para PI no hay canales ADC provistos internamente. Entonces, si queremos conectar cualquier sensor analógico, necesitamos una unidad de conversión ADC. Entonces, para ese propósito, vamos a la interfaz ADC0804 con Raspberry Pi.
ADC0804 es un chip diseñado para convertir señales analógicas en datos digitales de 8 bits. Este chip es una de las series más populares de ADC. Es una unidad de conversión de 8 bits, por lo que tenemos valores o valores de 0 a 255. Con un voltaje de medición de máximo 5V, tendremos un cambio por cada 19.5mV. A continuación se muestra el Pinout de ADC0804:
Ahora, otra cosa importante aquí es que el ADC0804 funciona a 5 V y, por lo tanto, proporciona una salida en una señal lógica de 5 V. En la salida de 8 pines (que representan 8 bits), cada pin proporciona una salida de + 5 V para representar el "1" lógico. Entonces, el problema es que la lógica PI es de + 3.3v, por lo que no puede dar una lógica de + 5V al pin GPIO de + 3.3V de PI. Si le da + 5V a cualquier pin GPIO de PI, la placa se daña.
Entonces, para reducir el nivel lógico de + 5V, usaremos un circuito divisor de voltaje. Hemos discutido el circuito divisor de voltaje, lo investigamos anteriormente para obtener más aclaraciones. Lo que haremos es usar dos resistencias para dividir la lógica de + 5V en lógicas de 2 * 2.5V. Entonces, después de la división, le daremos una lógica de + 2.5v a PI. Entonces, siempre que ADC0804 presente un '1' lógico, veremos + 2.5V en el Pin GPIO PI, en lugar de + 5V.
Obtenga más información sobre los pines GPIO de Raspberry Pi aquí y consulte nuestros tutoriales anteriores.
Componentes requeridos:
Aquí estamos usando Raspberry Pi 2 Model B con Raspbian Jessie OS. Todos los requisitos básicos de hardware y software se discutieron previamente, puede buscarlos en la Introducción de Raspberry Pi, aparte de lo que necesitamos:
- Pines de conexión
- Resistencia de 220Ω o 1KΩ (17 piezas)
- Bote de 10K
- Condensador de 0,1 µF (2 piezas)
- ADC0804 IC
- Tabla de pan
Explicación del circuito:
Funciona con un voltaje de suministro de + 5v y puede medir un rango de voltaje variable en un rango de 0-5V.
Las conexiones para interconectar ADC0804 a Raspberry PI se muestran en el diagrama de circuito anterior.
El ADC siempre tiene mucho ruido, este ruido puede afectar en gran medida el rendimiento, por lo que usamos un condensador de 0.1uF para la filtración de ruido. Sin esto, habrá muchas fluctuaciones en la producción.
El chip funciona en el reloj del oscilador RC (resistor-capacitor). Como se muestra en el diagrama de circuito, C2 y R20 forman un reloj. Lo importante a recordar aquí es que el condensador C2 se puede cambiar a un valor más bajo para una mayor tasa de conversión de ADC. Sin embargo, a mayor velocidad, disminuirá la precisión. Entonces, si la aplicación requiere mayor precisión, elija el capacitor con mayor valor y para mayor velocidad elija el capacitor con menor valor.
Explicación de programación:
Una vez que todo está conectado según el diagrama del circuito, podemos encender el PI para escribir el programa en PYHTON.
Hablaremos de algunos comandos que usaremos en el programa PYHTON, Vamos a importar el archivo GPIO de la biblioteca, la siguiente función nos permite programar los pines GPIO de PI. También estamos cambiando el nombre de “GPIO” a “IO”, por lo que en el programa siempre que queramos referirnos a los pines GPIO usaremos la palabra 'IO'.
importar RPi.GPIO como IO
A veces, cuando los pines GPIO, que estamos tratando de usar, pueden estar realizando otras funciones. En ese caso, recibiremos advertencias mientras ejecutamos el programa. El siguiente comando le dice al PI que ignore las advertencias y continúe con el programa.
IO.setwarnings (falso)
Podemos referir los pines GPIO de PI, ya sea por el número de pin a bordo o por su número de función. Como 'PIN 29' en la placa es 'GPIO5'. Entonces decimos aquí o vamos a representar el pin aquí por '29' o '5'.
IO.setmode (IO.BCM)
Estamos configurando 8 pines como pines de entrada. Detectaremos 8 bits de datos ADC por estos pines.
Configuración IO (4, IO.IN) Configuración IO (17, IO.IN) Configuración IO (27, IO.IN) Configuración IO (22, IO.IN) Configuración IO (5, IO.IN) Configuración IO (6, IO.IN) Configuración IO (13, IO.IN) Configuración IO (19, IO.IN)
En caso de que la condición entre llaves sea verdadera, las declaraciones dentro del ciclo se ejecutarán una vez. Entonces, si el pin 19 de GPIO se pone alto, entonces las declaraciones dentro del bucle IF se ejecutarán una vez. Si el pin 19 de GPIO no sube, las declaraciones dentro del bucle IF no se ejecutarán.
si (IO.input (19) == Verdadero):
El siguiente comando se usa como un ciclo para siempre, con este comando las declaraciones dentro de este ciclo se ejecutarán continuamente.
Mientras que 1:
Se proporciona una explicación más detallada del Programa en la Sección de Código a continuación.
Trabajando:
Después de escribir el programa y ejecutarlo, verá '0' en la pantalla. '0' significa 0 voltios en la entrada.
Si ajustamos el potenciómetro de 10K conectado al chip, veremos el cambio en los valores en la pantalla. Los valores en la pantalla siguen desplazándose continuamente, estos son los valores digitales leídos por PI.
Digamos que si llevamos la olla al punto medio, tenemos + 2.5V en la entrada ADC0804. Entonces vemos 128 en la pantalla como se muestra a continuación.
Para un valor analógico de + 5V, tendremos 255.
Entonces, al variar el potenciómetro, variamos el voltaje de 0 a + 5V en la entrada ADC0804. Con este PI lee valores de 0-255. Los valores se imprimen en la pantalla.
Así que tenemos una interfaz ADC0804 con Raspberry Pi.