1602 LCD and I2C backpack with pycom
-
Hello there,
Any one of you have experience with old fashion 1602 lcd?
I have an LMB162ABC LCD display with PCF8574 i2c backpack.
Can you recommend a micropython library which is works? :)
I scrolled throw the net, and I found and tested a few, but I run in to various errors.
-
This post is deleted!
-
@Lucas_Vieira I'm missing the print statements form the script. So your test script is not executed at all.
-
@Lucas_Vieira Do you see the other print statements?
-
@robert-hh
No error, but nothing appears on the display. i'm making a mistake in hardware. even so, thank you man for helping me in this case, i'll try be better!
-
@Lucas_Vieira Stay with the initial set of SCL and SDA, and set
DEFAULT_I2C_ADDR = 63
It is a PCF8574A, not PCF8574.
-
-
@Lucas_Vieira with the LCD connected, try the following commands on the REPL command line:
from machine import I2C i2c=I2C() i2c.scan()
It should return
[39]
if it returns a different number, you have to change the I2C address in the script. It it returns an empty list, try to swap sda and scl.
-
@Lucas_Vieira Reboot via the reset button to ensure, that main.py is executed. Did you also upload lcd_api.py?
-
@robert-hh
Thank you for helping me to resolve this error import, but nothing is working in LCD.
LCD is just on.
-
@Lucas_Vieira You are trying the wrong module, since you have a display with i2c backpack. Please copy the files esp8266_i2c_lcd.py and lcd_api.py to you device. Then you can test it with the following code. which is more or less the content of the file esp8266_i2c_lcd_test.py. Do not get confused about the esp8266 prefix. For this application, both board behave similar. Connect the I2C with:
LoPy4 LCD ------------------------- GND GND Vin Vcc (assuming you need 5V for the display) P9 sda P10 scl
"""Implements a HD44780 character LCD connected via PCF8574 on I2C. This was tested with: https://www.wemos.cc/product/d1-mini.html""" from time import sleep_ms, ticks_ms from machine import I2C, Pin from esp8266_i2c_lcd import I2cLcd # The PCF8574 has a jumper selectable address: 0x20 - 0x27 DEFAULT_I2C_ADDR = 0x27 def test_main(): """Test function for verifying basic functionality.""" print("Running test_main") i2c = I2C() lcd = I2cLcd(i2c, DEFAULT_I2C_ADDR, 2, 16) lcd.putstr("It Works!\nSecond Line") sleep_ms(3000) lcd.clear() count = 0 while True: lcd.move_to(0, 0) lcd.putstr("%7d" % (ticks_ms() // 1000)) sleep_ms(1000) count += 1 if count % 10 == 3: print("Turning backlight off") lcd.backlight_off() if count % 10 == 4: print("Turning backlight on") lcd.backlight_on() if count % 10 == 5: print("Turning display off") lcd.display_off() if count % 10 == 6: print("Turning display on") lcd.display_on() if count % 10 == 7: print("Turning display & backlight off") lcd.backlight_off() lcd.display_off() if count % 10 == 8: print("Turning display & backlight on") lcd.backlight_on() lcd.display_on() #if __name__ == "__main__": test_main()
-
-
@Lucas_Vieira I do not know which environment you are using, but I just copy the files to the device, e.g. mylib.py and write:
import mylib
Preferring the basic style, I do not use any of the IDEs for Atom or VSC.
-
@robert-hh How can i import a library? It's showing an import error
-
@Lucas_Vieira There are a variety of drivers here:https://github.com/dhylands/python_lcd.git
The one for esp8266_i2c works. The only thing to adapt is the I2C constructor in the test program in line 14, where you have to write:
i22=I2C()
if you connect the I2C to the default pins P9 (sda) and P10 (scl). And the I2C address may have to be changed.
And one hint: The LCD's typically run at 5V. Driving the, at 3.3 V typically results in the LCD not showing anything.
-
Can you help me with this library? i'm beginner with pycom. i'm using a lopy4. how can i add this library in my code? Thank you very much for your help!!
-
I found a library. Work as intended.