久しぶりです。ぐりです。
今回は、マルツでSC1602互換のTC1602E-06TというLCDを買ってきたので、AVRから使えるようにしてみたいと思います。

LCDの仕様

このLCDは、ずっと言ってきたとおり、秋月等で売られているSC1602と互換性があるので、SC1602のライブラリをそのまま流用することができます。

マルツで買った液晶

マルツで買った液晶

電源はDC5Vのみ、5×7ドット構成の文字が16桁、2行表示できます。
また、黄緑色のバックライトを搭載しています。

バックライトだけ点灯。

バックライトだけ点灯。

制御方法

I2CとかSPIとか少ない線でつなぐことができるシリアルインターフェイスではなく、8bit幅の普通のパラレルインターフェースみたいです。しかし、コマンドを送信することで、4bitモードに切り替えることができ、2回に分けて8bit分送信するという手間がかかる代わりに、I/Oが節約できるというメリットが有ります。

今回は、4bitモードでArduinoでも使われているATmega328Pから使ってみたいと思います。

配線してみた。

配線してみた。

写真右上のブレッドボードに刺さっている3本の抵抗は、コントラスト用に手持ちの1kΩを直列に3kΩにしてます。これでも悪く無い。

AVR-LCD間の配線は、PORTC(ArduinoのAnalogIN)と、PORTBの1番の7本を使いました(と言うか、サンプル通り)。

RS(レジスタセレクト)、R/W(読み込み・書き込み)、E(イネーブル信号)、DB4~7(データ4bit)文を接続し、使わないDB0~3はオープンにしました。

バックライトLED用の電源は、ICのVDD,VSSからとるように、はんだジャンパをしました。

JP2とJP3をショートさせてあります。

JP2とJP3をショートさせてあります。

次回、表示させてみたいと思います。(上の写真は表示されてますが・・・)

おまけ

12Vを直にかけたため死んでしまったAVR。"died"と書いておいた。

12Vを直にかけたため死んでしまったAVR。”died”と書いておいた。