2008年9月にリリースされたArduino 0012には、文字LCD表示のライブラリLiquidCrystalが標準で組み込まれました。このライブラリを利用すると文字LCDを簡単に利用することができます。
Arduinoで文字LCDを利用する場合には、少ないピンを有効に活用するために、文字LCDを4ビットモードで利用するのが一般的でしょう。この場合には、ライブラリの初期化は以下のような形式で行います。
CLCD-PLUSは多くの入出力ピンを自由に使える状態で、Arduinoに文字液晶表示機能とスイッチ入力機能を追加できます。
Arduino+CLCD-PLUS
いきなりおきて破りで申し訳ないのですが、CLCD-PLUSではLiquidCrystalライブラリではなく、弊社のClcdPlusライブラリを利用します。
CLCD-PLUSはArduinoのI/Oピンと液晶が直接つながれているのではなく、SPIを利用して接続されています。このため、LiquidCrystalライブラリを利用することができないのですが、LiquidCrystalライブラリと互換性のあるClcdPlusライブラリを利用して同じように制御できます。
ClcdPlusでは、ライブラリの初期化は以下のような形式で行います。
この後は、LiquidCrystalライブラリと同様に、clcd変数を利用して文字液晶への出力や操作を行うことができます。なお、ClcdPlusライブラリにはLiquidCrystalの機能だけではなく、以下のような機能も追加されています。
Arduinoに文字LCDを接続する方法として、シールドの一種であるCLCD-BOOSTERを利用する方法があります。CLCD-BOOSTERを利用するとArduinoのリファレンスボードに手軽に文字LCDを追加することができます。
Arduino+CLCD-BOOSTER
CLCD-BOOSTERのジャンパーJP3の1-2をショートさせ、文字LCDのR/~WピンをD3ピンで制御する場合には、以下の様に初期化して利用します。
また、ジャンパーJP3の2-3をショートさせ、文字LCDのR/~WピンをGNDに固定した場合には、以下の様に初期化して利用します。
REDUINO-VALKYRIEのジャンパーJP3の1-2をショートさせ、文字LCDのR/~WピンをD3ピンで制御する場合には、以下の様に初期化して利用します。
また、ジャンパーJP3の2-3をショートさせ、文字LCDのR/~WピンをGNDに固定した場合には、以下の様に初期化して利用します。
Arduino-0012パッケージのLiquidCrystalライブラリのソースコードを読むと、R/~Wピンは単にGNDに落とす処理しか行われておらず、文字LCDのステータスの読み出しなどは行われていません。したがって、貴重なI/Oピンを一つ浮かせることができる後者の方式での利用をお勧めします。
REDUINO-GHOSTの様に文字LCDを4ビットモードで利用する場合には、ライブラリの初期化は以下のような形式で行います。
REDUINO-GHOSTのジャンパーJP9の1-2をショートさせ、文字LCDのR/~WピンをD3ピンで制御する場合には、以下の様に初期化して利用します。
また、ジャンパーJP9の2-3をショートさせ、文字LCDのR/~WピンをGNDに固定した場合には、以下の様に初期化して利用します。
Arduino-0012パッケージのLiquidCrystalライブラリのソースコードを読むと、R/~Wピンは単にGNDに落とす処理しか行われておらず、文字LCDのステータスの読み出しなどは行われていません。したがって、貴重なI/Oピンを一つ浮かせることができる後者の方式での利用をお勧めします。
AVR-DEV-AM168RLでの文字LCDの利用例を示します。
printメソッドには、整数値や基数を指定した整数値を出力するメソッドもオーバーライドされているので、以下のような出力指定もできます。
文字LCDを利用したスケッチをお楽しみください。
Arduinoのライブラリとして、文字LCDを4ビットモードで利用するライブラリThe 4-bit Arduino LCD libraryが提供されています。
パッケージのフォルダLCD4Bitを所定の位置であるlibrariesフォルダ内に組み込み、パッケージに含まれるLCD4Bit.cppのLCD用のピン配置の変数をAVR-DEV-AM168RL用に設定すると、あっけないほど簡単に動きます。お試しください。
端子名 | Arduinoポート番号 | 備考 |
---|---|---|
RS | 3 | |
RW | 11 | 元のまま:未使用 |
Enable | 7 | |
DB[0] | 14 | アナログポートをデジタルポートとして利用 |
DB[1] | 15 | アナログポートをデジタルポートとして利用 |
DB[2] | 16 | アナログポートをデジタルポートとして利用 |
DB[3] | 17 | アナログポートをデジタルポートとして利用 |