from machine import Pin
from time import sleep
# Define GPIO pins for the LCD
lcd_rs = Pin(12, Pin.OUT)
lcd_en = Pin(7, Pin.OUT)
lcd_d4 = Pin(8, Pin.OUT)
lcd_d5 = Pin(26, Pin.OUT)
lcd_d6 = Pin(27, Pin.OUT)
lcd_d7 = Pin(22, Pin.OUT)
# Short function to send a command or data
def lcd_pulse(data, rs):
lcd_rs.value(rs)
lcd_d4.value((data >> 4) & 1)
lcd_d5.value((data >> 5) & 1)
lcd_d6.value((data >> 6) & 1)
lcd_d7.value((data >> 7) & 1)
lcd_en.value(1)
sleep(0.001)
lcd_en.value(0)
lcd_d4.value(data & 1)
lcd_d5.value((data >> 1) & 1)
lcd_d6.value((data >> 2) & 1)
lcd_d7.value((data >> 3) & 1)
lcd_en.value(1)
sleep(0.001)
lcd_en.value(0)
sleep(0.001)
# Initialize the LCD
def lcd_init():
for cmd in [0x33, 0x32, 0x28, 0x0C, 0x06, 0x01]:
lcd_pulse(cmd, 0)
# Display a message
def lcd_message(text):
for char in text:
lcd_pulse(ord(char), 1)
lcd_init()
lcd_message("Hello World")