【Raspberry Pi Pico w】MicroPython I2Cテスト:LCD(AQM1602)
MicroPythonを使い、I2C LCD AMQ1602の表示テストです。
Arduinoで表示したC言語プログラムをMicroPythonに直すだけなので、
文法にそってI2Cのプログラムを書く内容です。
from machine import Pin, I2C
import time
# I2C の設定(GPIO16 端子を SDA, GPIO17 端子を SCL として使用、クロック 100kHz)
i2c = I2C(0,freq=100000,scl=Pin(17),sda=Pin(16))
# I2C デバイスのアドレス
addr=0x3e
buf=bytearray(2)
# ************************************************************************/
# AQM1602へコマンド送信
# ************************************************************************/
def write_cmd(cmd):
buf[0]=0x00
buf[1]=cmd
i2c.writeto(addr,buf)
# ************************************************************************/
# AQM1602へデータ書き込み
# ************************************************************************/
def write_char(char):
buf[0]=0x40
buf[1]=char
i2c.writeto(addr,buf)
def print(str):
for c in str:
#ord関数は文字に対応するUnicodeの値を返してくれる組み込み関数
write_char(ord(c))
#1段目に書き込み*/
if y==0:
write_cmd(0x80+x)
#2段目に書き込み*/
if y==1:
write_cmd(0xc0+x)
buf[0]=0x00
buf[1]=0x01
i2c.writeto(addr,buf)
time.sleep(0.001)
buf[0]=0x00
buf[1]=0x02
i2c.writeto(addr,buf)
time.sleep(0.001)
# ************************************************************************/
# AQM1602の初期化設定
# ************************************************************************/
orders = [b'\x38', b'\x39', b'\x14', b'\x73', b'\x56', b'\x6c',b'\x38', b'\x0c', b'\x01']
time.sleep(0.04)
for order in orders:
i2c.writeto_mem(addr, 0x00, order)
time.sleep(0.001)
LCD_init()
LCD_clear()
LCD_home()
print('Hello Word')
print('test')