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 IoT.
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 de botones
- Generación PWM
- Controlar el motor de CC
- Control de motor paso a paso
- Registro de turnos de interfaz
- Tutorial de Raspberry Pi ADC
- Control de servomotor
- Panel táctil capacitivo
En este tutorial, controlaremos una pantalla LCD de 16x2 usando Raspberry Pi. Conectaremos la pantalla LCD a los pines GPIO (entrada y salida de propósito general) de PI para mostrar los caracteres en ella. Escribiremos un programa en PYTHON para enviar los comandos apropiados a la pantalla LCD a través de GPIO y mostrar los caracteres necesarios en su pantalla. Esta pantalla será útil para mostrar los valores de los sensores, el estado de las interrupciones y también para mostrar la hora.
Existen diferentes tipos de LCD en el mercado. La pantalla LCD gráfica es más compleja que la pantalla LCD de 16x2. Así que aquí vamos para una pantalla LCD de 16x2, incluso puede usar una pantalla LCD de 16x1 si lo desea. La pantalla LCD de 16x2 tiene 32 caracteres en total, 16 en la 1ª línea y otros 16 en la 2ª línea. JHD162 es LCD de caracteres del módulo LCD de 16x2. Ya hemos interconectado LCD de 16x2 con 8051, AVR, Arduino, etc. Puede encontrar todos nuestros proyectos relacionados con LCD de 16x2 siguiendo este enlace.
Discutiremos un poco sobre PI GPIO antes de continuar.
Hay 40 pines de salida GPIO en Raspberry Pi 2. Pero de 40, solo se pueden programar 26 pines GPIO (GPIO2 a GPIO27). Algunos de estos pines realizan algunas funciones especiales. Con GPIO especial reservado, nos quedan 17 GPIO.
Hay pines de salida de potencia de + 5V (Pin 2 o 4) y + 3.3V (Pin 1 o 17) en la placa, estos son para conectar otros módulos y sensores. Vamos a alimentar la pantalla LCD de 16 * 2 a través del riel de + 5V. Podemos enviar una señal de control de + 3.3v a la pantalla LCD, pero para que funcione la pantalla LCD necesitamos alimentarla con + 5V. La pantalla LCD no funcionará con + 3.3V.
Para saber más sobre los pines GPIO y sus salidas de corriente, consulte: LED parpadeando con Raspberry Pi
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
- Módulo LCD 16 * 2
- Resistencia de 1KΩ (2 piezas)
- Bote de 10K
- Condensador de 1000 µF
- Tablero de circuitos
Circuito y explicación de trabajo:
Como se muestra en el diagrama de circuito, tenemos una Raspberry Pi interconectada con pantalla LCD conectando 10 pines GPIO de PI a los pines de control y transferencia de datos de la pantalla LCD de 16 * 2. Hemos utilizado GPIO Pin 21, 20, 16, 12, 25, 24, 23 y 18 como BYTE y hemos creado la función 'PORT' para enviar datos a la pantalla LCD. Aquí GPIO 21 es LSB (bit menos significativo) y GPIO18 es MSB (bit más significativo).
El módulo LCD 16x2 tiene 16 pines, que se pueden dividir en cinco categorías, pines de alimentación, pines de contraste, pines de control, pines de datos y pines de retroiluminación. Aquí está la breve descripción sobre ellos:
Categoría |
PIN NO. |
Nombre de PIN |
Función |
Pines de potencia |
1 |
VSS |
Pin de tierra, conectado a tierra |
2 |
VDD o Vcc |
Pin de voltaje + 5V |
|
Pin de contraste |
3 |
V0 o VEE |
Ajuste de contraste, conectado a Vcc a través de una resistencia variable. |
Pines de control |
4 |
RS |
Registro Seleccionar Pin, RS = 0 Modo de comando, RS = 1 modo de datos |
5 |
RW |
Pin de lectura / escritura, RW = 0 Modo de escritura, RW = 1 Modo de lectura |
|
6 |
mi |
Habilitar, un pulso alto a bajo necesita habilitar la pantalla LCD |
|
Pines de datos |
7-14 |
D0-D7 |
Pines de datos, almacena los datos que se mostrarán en la pantalla LCD o las instrucciones de comando |
Pines de luz de fondo |
15 |
LED + o A |
Para alimentar la luz de fondo + 5V |
dieciséis |
LED- o K |
Tierra de luz de fondo |
Recomendamos encarecidamente leer este artículo para comprender el funcionamiento de la pantalla LCD con sus pines y comandos hexagonales.
Discutiremos brevemente el proceso de envío de datos a LCD:
1. E está configurado alto (habilitando el módulo) y RS está configurado bajo (indicando a LCD que estamos dando el comando)
2. Dar valor 0x01 al puerto de datos como un comando para borrar la pantalla.
3. E está configurado alto (habilitando el módulo) y RS está configurado alto (indicando a LCD que estamos dando datos)
4. Es necesario mostrar el código ASCII para los caracteres.
5. E se establece bajo (le dice a LCD que hemos terminado de enviar datos)
6. Una vez que este pin E baja, la pantalla LCD procesa los datos recibidos y muestra el resultado correspondiente. Entonces, este pin se establece en alto antes de enviar datos y se baja al suelo después de enviar datos.
Como se dijo, vamos a enviar los personajes uno tras otro. Los caracteres se dan a la pantalla LCD mediante códigos ASCII (Código estándar americano para el intercambio de información). La tabla de códigos ASCII se muestra a continuación. Por ejemplo, para mostrar un carácter “@”, necesitamos enviar un código hexadecimal “40”. Si le damos el valor 0x73 a la pantalla LCD mostrará “s”. De esta manera vamos a enviar los códigos correspondientes a la pantalla LCD para mostrar la cadena “ CIRCUITDIGEST ”.
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 10 pines GPIO como pines de salida, para pines de datos y control de LCD.
Configuración de IO (6, IO.OUT) Configuración de IO (22, IO.OUT) Configuración de IO (21, IO.OUT) Configuración de IO (20, IO.OUT) Configuración de IO (16, IO.OUT) Configuración de IO (12, IO.OUT) Configuración de IO (25, IO.OUT) Configuración de IO (24, IO.OUT) Configuración de IO (23, IO.OUT) Configuración de IO (18, IO.OUT)
mientras que el comando 1: se usa como un ciclo para siempre, con este comando las declaraciones dentro de este ciclo se ejecutarán continuamente.
Todas las demás funciones y comandos se han explicado en la sección "Código" a continuación con la ayuda de "Comentarios".
Después de escribir el programa y ejecutarlo, la Raspberry Pi envía los caracteres a la pantalla LCD uno por uno y la pantalla LCD muestra los caracteres en la pantalla.