hunamizawa’s blog

無い物は作りたい人のメモ帳

ATtiny13A + Atmel Studio でI2Cキャラクタ液晶 1602 + PCF8574 モジュールを制御

f:id:hunamizawa:20190327183933j:plain

ATtiny13A を I2C Master として使いたいと考えているので、試しにI2C液晶モジュールを動かしてみる。

作例を調べてみると、たま吉さんが ATtiny13A + Arduino IDE の組み合わせで秋月電子のI2C液晶モジュール ACM1602NI を動かしていた。

nuneno.cocolog-nifty.com

私の手元にあったのは、中華通販で買ってきた、HD44780 互換の 1602 というキャラクタ液晶(秋月電子では相当品が SC1602 の名で売られている)に、I2C接続のI/Oエキスパンダ PCF8574 をくっつけたモジュール。(aitendo だと別々に売ってる)

www.aitendo.com www.aitendo.com

HD44780 は ACM1602 とは違い、8 or 4ビットのパラレルインターフェイスなので、I2Cで使うには PCF8574 でシリアル(I2C)/パラレル変換をする必要がある。したがって、

  1. I2Cで PCF8574 にデータを送り、PCF8574 の出力をコントロールする。
  2. PCF8574 の出力を使って、HD44780 をコントロールする。

という2段階に分けて考える必要がある。先のブログ記事ではソースコードも公開されているので、善意に感謝しつつ、これを移植してみた。

HD44780 の使い方は、以下の記事が詳しい。

PCF8574 の制御方法については、別の記事にまとめようと思う。

ソースコード

ATTiny13A I2C test with Atmel Studio