色々調べても、表示できなかった・・・
ずいぶん時間かかりました・・・
以前に購入していてarduinoでは表示を確認していました。
液晶は、I2C低電圧キャラクタ液晶モジュール(16x2行)
販売 マルツ MI2CLCD
strawberry Linux https://strawberry-linux.com/catalog/items?code=27001
参考にしたのが、MicroPython的午睡(22) ラズパイPico、AQM1602 LCDパネル接続
ただ、エラーになるので修正しました。
buf = bytearray(lin) → bytearray(lin,”utf-8″)
import time
from machine import Pin, I2C
i2c = I2C(0, scl=Pin(17), sda=Pin(16), freq=100000)
adrAQM1602 = 0x3E
datAQM1602 = 0x40
comAQM1602 = 0x00
def writeDatAQM1602(dat):
i2c.writeto_mem(adrAQM1602, datAQM1602, bytes([dat & 0xFF]), addrsize=8)
time.sleep_ms(1)
def writeComAQM1602(com):
i2c.writeto_mem(adrAQM1602, comAQM1602, bytes([com & 0xFF]), addrsize=8)
time.sleep_ms(1)
def initAQM1602():
time.sleep_ms(100)
writeComAQM1602(0x38)
time.sleep_ms(20)
writeComAQM1602(0x39)
time.sleep_ms(20)
writeComAQM1602(0x14)
time.sleep_ms(20)
writeComAQM1602(0x73)
time.sleep_ms(20)
writeComAQM1602(0x56)
time.sleep_ms(20)
writeComAQM1602(0x6C)
time.sleep_ms(20)
writeComAQM1602(0x38)
time.sleep_ms(20)
writeComAQM1602(0x01)
time.sleep_ms(20)
writeComAQM1602(0x0C)
time.sleep_ms(20)
def writeLineAQM1602(nL, lin):
print(lin)
buf = bytearray(lin,"utf-8") ## <<< ここを修正 ,"utf-8" を追加
if len(buf) <= 0:
return False
if len(buf) > 16:
buf = buf[0, 16]
if nL == 0:
writeComAQM1602(0x80)
else:
writeComAQM1602(0xC0)
for idx in range(0, len(buf)):
writeDatAQM1602(buf[idx])
initAQM1602()
writeLineAQM1602(0, "Hello, World!")
writeLineAQM1602(1, "1234567890ABCDEF")
