2011年4月19日火曜日

Arduino でLCD を使う その2

前回につづき、Arduino にキャラクタ液晶モジュールを接続します。



4. IDE 付属のサンプルを動かす

File > Examples > LiquidCrystal > HelloWorld

モジュールとArduino の配線方法は冒頭のコメントに書いてあります。

The circuit:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)

簡単に説明すると
・RS, Enable, D4-D7 はDigital Out に接続する
・R/W はGND に接続する
・V0 はトリマー(半固定抵抗器、ボリューム)で5V-GND 間を調整できるようにする

コードの最初の方にある、初期化(initialize) メソッドに注目。
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

ここで、実際に配線したピン番号を指定します。
つまり、自分の好きなピンに配線して良いということです。
初期化メソッドは4通りあり、メソッド名は同じで、引数の数が異なります。

8bit 通信用
LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7);
8bit 通信用 r/w なし
LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7);
4bit 通信用
LiquidCrystal(rs, rw, enable, d0, d1, d2, d3);
4bit 通信用 r/w なし
LiquidCrystal(rs, enable, d0, d1, d2, d3);  ←これを使用

r/w は通常の使用では write 固定で良いので、Arduino で制御せず、直接 Low レベル(GND) に接続します。

5. 配線する
最低でも6本の制御線(Digital Out) と2本の電源、さらにコントラスト調整が必要です。
ブレッドボードやジャンプワイヤーを使って接続する事も出来ますが、変換アダプタをつくるのが賢明です。
(使う度に配線すると、面倒で使わなくなります。)

その際に悩むのが、どのピンを何に割り当てるか。
通信機能をもつD0, D1 は除外して、D2-D7 でまとめる案、PWM が使えるポートを避ける案、
A0-A5 をDigital Out に使って、電源も含めて片側だけにする案、いろいろ考えられます。
私はD2-D7 を使用するタイプと、AとD を混ぜて使用するアダプタを使っています。

液晶モジュール接続ボードを自作する場合は、Arduino のリセットスイッチをつけると便利です。




ここまで、すべて上手く行っていれば、冒頭の写真の表示になります。

0 件のコメント:

コメントを投稿