久しぶりです。ぐりです。 今回は、マルツでSC1602互換のTC1602E-06TというLCDを買ってきたので、AVRから使えるようにしてみたいと思います。
LCDの仕様
このLCDは、ずっと言ってきたとおり、秋月等で売られているSC1602と互換性があるので、SC1602のライブラリをそのまま流用することができます。
電源はDC5Vのみ、5x7ドット構成の文字が16桁、2行表示できます。 また、黄緑色のバックライトを搭載しています。
[caption id="attachment_41" align="alignnone" width="300"] バックライトだけ点灯。[/caption]
制御方法
I2CとかSPIとか少ない線でつなぐことができるシリアルインターフェイスではなく、8bit幅の普通のパラレルインターフェースみたいです。しかし、コマンドを送信することで、4bitモードに切り替えることができ、2回に分けて8bit分送信するという手間がかかる代わりに、I/Oが節約できるというメリットが有ります。
今回は、4bitモードでArduinoでも使われているATmega328Pから使ってみたいと思います。
[caption id="attachment_42" align="alignnone" width="300"] 配線してみた。[/caption]
写真右上のブレッドボードに刺さっている3本の抵抗は、コントラスト用に手持ちの1kΩを直列に3kΩにしてます。これでも悪く無い。
AVR-LCD間の配線は、PORTC(ArduinoのAnalogIN)と、PORTBの1番の7本を使いました(と言うか、サンプル通り)。
RS(レジスタセレクト)、R/W(読み込み・書き込み)、E(イネーブル信号)、DB4~7(データ4bit)文を接続し、使わないDB0~3はオープンにしました。
バックライトLED用の電源は、ICのVDD,VSSからとるように、はんだジャンパをしました。
[caption id="attachment_43" align="alignnone" width="300"] JP2とJP3をショートさせてあります。[/caption]
次回、表示させてみたいと思います。(上の写真は表示されてますが・・・)
おまけ
[caption id="attachment_44" align="alignnone" width="300"] 12Vを直にかけたため死んでしまったAVR。"died"と書いておいた。[/caption]