Académique Documents
Professionnel Documents
Culture Documents
Una vez que has jugado con leds, interruptores y motores paso a paso el siguiente
paso natural es mdulos LCD alfanumrico de 16 2. Estos mdulos son baratos
(menos de $ 10) y fcil de interactuar con el Raspberry Pi. Tienen 16 conexiones,
pero slo necesitan utilizar pines GPIO 6 en su Pi.
La mayora de los mdulos disponibles 16 2 son compatibles con el controlador
LCD Hitachi HD44780. Esto le permite comprar casi cualquier dispositivo y estar
seguro de que va a funcionar de la misma manera que cualquier otro. Hay mucho
donde elegir en eBay con diferentes luces de fondo de colores. El que yo compr
tena una luz de fondo azul.
Suelo
VCC (Por lo general, +5 V)
Ajuste de contraste (VO)
Registrar Select (RS).
RS = 0: Comando, RS = 1: Datos
Lectura / escritura (R / W).
R / W = 0: Escribir, R / W = 1: Leer
Permitir
Bit 0 (No se requiere en la operacin de 4 bits)
Bit 1 (No se requiere en la operacin de 4 bits)
Bit 2 (No se requiere en la operacin de 4 bits)
Funcin
Funcin Pi
Pi Pin
01
GND
GND
P1-06
02
+ 5V
+ 5V
P1-02
03
Contrastar
GND
P1-06
04
RS
GPIO7
P1-26
05
RW
GND
P1-06
06
GPIO8
P1-24
07
Datos 0
08
Datos 1
09
Datos 2
10
Datos 3
11
Datos 4
GPIO25
P1-22
12
Datos 5
GPIO24
P1-18
13
Datos 6
GPIO23
P1-16
14
Datos 7
GPIO18
P1-12
15
+ 5V a travs de 560ohm
16
GND
P1-06
Pitn
Usted puede controlar una pantalla estilo HD44780 utilizando cualquier entorno
programmming te gusta, pero mi arma preferida es Python. Yo uso la biblioteca
RPi.GPIOpara proporcionar acceso a la GPIO.
Aqu est mi cdigo:
#!/usr/bin/python
#
# HD44780 LCD Test Script for
# Raspberry Pi
#
# Author : Matt Hawkins
# Site
: http://www.raspberrypi-spy.co.uk
#
# Date
: 26/07/2012
# 4 : RS (Register Select)
# 5 : R/W (Read Write)
# 6 : Enable or Strobe
# 7 : Data Bit 0
- NOT USED
# 8 : Data Bit 1
- NOT USED
# 9 : Data Bit 2
- NOT USED
- NOT USED
#import
import RPi.GPIO as GPIO
import time
LCD_RS = 7
LCD_E
= 8
LCD_D4 = 25
LCD_D5 = 24
LCD_D6 = 23
LCD_D7 = 18
LCD_CHR = True
LCD_CMD = False
# Timing constants
E_PULSE = 0.00005
E_DELAY = 0.00005
def main():
# Main program block
GPIO.setmode(GPIO.BCM)
GPIO.setup(LCD_E, GPIO.OUT)
# E
GPIO.setup(LCD_RS, GPIO.OUT) # RS
GPIO.setup(LCD_D4, GPIO.OUT) # DB4
GPIO.setup(LCD_D5, GPIO.OUT) # DB5
GPIO.setup(LCD_D6, GPIO.OUT) # DB6
GPIO.setup(LCD_D7, GPIO.OUT) # DB7
# Initialise display
lcd_init()
time.sleep(20)
def lcd_init():
# Initialise display
lcd_byte(0x33,LCD_CMD)
lcd_byte(0x32,LCD_CMD)
lcd_byte(0x28,LCD_CMD)
lcd_byte(0x0C,LCD_CMD)
lcd_byte(0x06,LCD_CMD)
lcd_byte(0x01,LCD_CMD)
def lcd_string(message):
# Send string to display
for i in range(LCD_WIDTH):
lcd_byte(ord(message[i]),LCD_CHR)
for character
GPIO.output(LCD_RS, mode) # RS
# High bits
GPIO.output(LCD_D4, False)
GPIO.output(LCD_D5, False)
GPIO.output(LCD_D6, False)
GPIO.output(LCD_D7, False)
if bits&0x10==0x10:
GPIO.output(LCD_D4, True)
if bits&0x20==0x20:
GPIO.output(LCD_D5, True)
if bits&0x40==0x40:
GPIO.output(LCD_D6, True)
if bits&0x80==0x80:
GPIO.output(LCD_D7, True)
# Low bits
GPIO.output(LCD_D4, False)
GPIO.output(LCD_D5, False)
GPIO.output(LCD_D6, False)
GPIO.output(LCD_D7, False)
if bits&0x01==0x01:
GPIO.output(LCD_D4, True)
if bits&0x02==0x02:
GPIO.output(LCD_D5, True)
if bits&0x04==0x04:
GPIO.output(LCD_D6, True)
if bits&0x08==0x08:
GPIO.output(LCD_D7, True)
time.sleep(E_DELAY)
if __name__ == '__main__':
main()
Si utiliza este cdigo lo nico que tendr que cambiar es el mapeo de pines GPIO
dependiendo de lo pines que utiliza en su encabezado Pi GPIO. Aqu hay algunas
fotos: