○LCDオブジェクトを作成する
LCDを制御するには、LCDオブジェクトを使います。LCDオブジェクトは、物理的なボードに接続された単一のLCDを表すオブジェクトです。LCDオブジェクトを作成するには、LCDクラスのコンストラクタを使います。
・パラレル接続
LCDをパラレル接続で制御するためのLCDオブジェクトを作成するには、LCDの「RS」
「EN」「D4」「D5」「D6」「D7」(D4~D7はDB4~DB7と表記される場合もある)を接続するピン番号を指定します。たとえば、7から12ピンをLCDの制御ピンに使うLCDオブジェクトを作成するには、次のように書きます。
new five.LCD({
// LCDピン名 RS
EN D4 D5 D6 D7
// Arduinoピン
7 8 9 10 11 12
pins:
[7,
8,
9,
10,
11,
12]
});
|
・配線図
・I2C接続
I2CインターフェイスのLCDを使用する場合は、「controller」プロパティにLCDコントローラの名前を指定します。たとえば、LCDコントローラにPCF8574Aを使用したLCDを制御するLCDオブジェクトを作成するには、次のように書きます。
new five.LCD({
controller: "PCF8574A"
});
|
・配線図
○LCDの行数・列数を指定する
LCDの行数は「rows」プロパティで指定します。規定値は「2」です。行数は「cols」プロパティで指定します。規定値は「16」です。たとえば、4×20(4行20列)のLCDを制御するためのLCDオブジェクトを作成するには、次のように書きます。
// 4×20のLCDオブジェクトを作成
var
lcd = new five.LCD({
pins: [7, 8, 9, 10, 11, 12],
rows: 4,
cols: 20
});
|
10.4 LCDのバックライトの制御ピンを設定する
LCDのバックライトの制御ピン(LCDの「A」ピンに接続)を設定するには、「backlight」プロパティを使います。この設定を行うと、コード実行時にバックライトが点灯し、コード終了時(Node.jsのプロセス終了時)にバックライトが消灯します
たとえば、13ピンをバックライトの制御ピンを設定するには、次のように書きます。
var
lcd = new five.LCD({
pins: [7,
8,
9,
10,
11,
12],
backlight: 13
});
|
・配線図
なお、I2CインターフェイスのLCDで「backlight」プロパティを指定すると、コード実行にバックライトが消灯するようです(PCF8574AのLCDで確認)。
○LCDに文字列を表示する
LCDに文字列を表示するには、「print」メソッドを使います。引数には、表示する文字列を指定します。オプションは省略可能です。オプションの詳細については、「useChar」メソッドの項目で解説します。
print(文字列, オプション)
|
文字列は、カーソルの位置から表示されます。カーソルの位置を設定するには、「cursor」メソッドを使います。引数には行インデックと列インデックスを指定します。
cursor(行インデックス, 列インデックス)
|
行インデックと列インデックスは「0」から始まるため、一般的な行数、列数から1を引いた値になることに注意してください。
たとえば、LCDの1行目の5列目から「Hello!」と表示するには、次のように書きます。
// 1行5列目にカーソルを移動
lcd.cursor(0, 4);
// 「Hello!」と表示
lcd.print("Hello!");
|
なお、「home」メソッドでカーソルの位置を1行1列目(0, 0)に移動することができます。
// 1行1列目にカーソルを移動
lcd.home();
// 「Hello!」と表示
lcd.print("Hello!");
|
○特殊文字を表示する
特殊文字を表示するには、まず「useChar」メソッドでLCDキャラクタマップに特殊文字を登録します。「useChar」メソッドの引数には特殊文字の名前を指定します。
useChar(名前)
|
登録できる特殊文字は8文字までです。なお、指定できる特殊文字の名前と文字パターンについては、次のWebページの項目を参照してください。
次に「print」メソッドの引数に表示する特殊文字の名前を「:」で囲んで指定します。たとえば、ハートマークを表示するには、次のように書きます。
// 特殊文字のハートマークをLCDキャラクタマップに登録
lcd.useChar("heart");
// 1行1列目にカーソルを移動
lcd.cursor(0, 0)
// ハートマークを表示
lcd.print(":heart:");
lcd.cursor(1, 0)
// 通常の文字列と組み合わせる場合
lcd.print("I :heart: Johnny-Five");
});
|
なお、「print」メソッドのオプションの「dontProcessSpecials」プロパティで特殊文字の処理方法を設定できます。「true」に設定すると、特殊文字が処理されず、文字列がそのまま表示されます。
// 特殊文字のハートマークをLCDキャラクタマップに登録
lcd.useChar("heart");
// 1行1列目にカーソルを移動
lcd.cursor(0, 0)
// ハートマークは表示されず「:heart:」と表示される
lcd.print(":heart:", { dontProcessSpecials: true
});
|
○LCDの表示をオン/オフ/クリアする
LCDの表示をオン(規定)にするには「on」メソッドを、オフにするには「off」メソッドを使います。またLCDの表示をクリアするには、「clear」メソッドを使います。
// ホーム(1行1列目)から「Hello!」と表示
lcd.home().print("Hello!")
// 5秒後
this.wait(5000,
function(){
// 表示オフ
lcd.off();
});
// 10秒後
this.wait(10000,
function(){
// 表示オン
lcd.on();
});
// 15秒後
this.wait(14000,
function(){
// 表示クリア
lcd.clear();
});
|
○カーソルの点滅を制御する
カーソルを点滅するには「blink」メソッドを、点滅を停止するには「noBlink」メソッドを使います。
// ホーム(1行1列目)にカーソルを移動
lcd.home();
// カーソルを点滅
lcd.blink();
// 「Hello!」と表示
lcd.print("Hello!");
// 5秒後
this.wait(5000,function(){
// カーソルの点滅を停止
lcd.noBlink();
});
|
0 件のコメント:
コメントを投稿