ATmega328PからSC1602互換LCDを使ってみる。1

久しぶりです。ぐりです。 今回は、マルツで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をショートさせてあります。 JP2とJP3をショートさせてあります。[/caption]

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

おまけ

[caption id="attachment_44" align="alignnone" width="300"]12Vを直にかけたため死んでしまったAVR。"died"と書いておいた。 12Vを直にかけたため死んでしまったAVR。"died"と書いておいた。[/caption]