Display 16x02 con MicroPython - pensactius/Tutoriales GitHub Wiki
En este tutorial vamos a ver cómo programar pantallas LCD de caracteres con el módulo de expansión I2C en MicroPython. Se supone que el lector ya está familiarizado con las pantallas que usan este módulo. Para más información consulta el tutorial:
Conexión con ESP8266
TODO!! Usar level shifters!!!
Determinar la dirección I2C
Como estamos usando un dispositivo I2C, debemos determinar la dirección de éste. Vamos a crear primero un programa en Micropython para determinar esta dirección:
from machine import Pin, I2C
i2c_sda = Pin (4) # D2
i2c_scl = Pin (5) # D1
i2c = I2C (sda=i2c_sda, scl=i2c_scl, 400000)
id = i2c.scan()
print ("Identificador I2C: {}".format(id))
Instalación de "librerías"
Micropython no posee un gestor de librerías como Arduino (al menos que yo conozca) así que deberemos copiar a mano los archivos necesarios para controlar el LCD.
- https://raw.githubusercontent.com/dhylands/python_lcd/master/lcd/esp8266_i2c_lcd.py
- https://raw.githubusercontent.com/dhylands/python_lcd/master/lcd/lcd_api.py
Para subir los archivos anteriores a la placa ESP8266 usaremos el editor Thonny IDE:
TODO
Programa de ejemplo 01
"""Implements a HD44780 character LCD connected via PCF8574 on I2C.
Conexiones
----------
D1: SCL
D2: SDA
"""
from esp8266_i2c_lcd import I2cLcd
import time
# The PCF8574 has a jumper selectable address: 0x20 - 0x27
DEFAULT_I2C_ADDR = 0x27
i2c = I2C(scl=Pin(5), sda=Pin(4), freq=400000)
lcd = I2cLcd(i2c, DEFAULT_I2C_ADDR, 2, 16)
lcd.clear()
lcd.putstr("Hola mudo!\nFunciona!")
Deberás cambiar la línea:
DEFAULT_I2C_ADDR = 0x27
Por la dirección obtenida en el programa anterior.