この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
弊社のIntel Edisonに関する過去記事はこちらをご参照ください。
今回はIntel EdisonにGrove - LCD RGB Backlightを接続してみました!
やってみた
使ったデバイス
Intel Edison Kit for Arduino + Grove Starter Kitです。Groveのベースシールドは以下のように、Aから始まるアナログポート、Dから始まるデジタルポート、I2Cポートを持っています。
Grove - LCD RGB BacklightをI2Cポートに接続します。またGrove - Light sensorをA0ポートに接続します。
LCD RGB Backlightを使う上での注意点
Grove - ベースシールドには電源電圧を設定するためのピンがあり、初期状態では3.3Vに設定されています。しかしLCD RGB Backlightに文字を表示するためには、5Vに設定する必要があります。3.3Vのままだとバックライトは光りますが文字が表示されません(ハマりました)
XDKで書いたコード
var mraa = require("mraa");
// LCD Classを定義
var LCD = require("jsupm_i2clcd");
// LCDを初期化。0x3EはLCD_ADDRESS,0x62はRGB_ADDRESS。
var myLCD = new LCD.Jhd1313m1(6, 0x3E, 0x62);
// A0に接続されたLight Sensorを定義
var LightSensor = new mraa.Aio(0);
setInterval(function () {
var a = LightSensor.read();
// バックライト色を指定
myLCD.setColor(100, 255, 100);
// 配置(row,clumn)を指定
myLCD.setCursor(0,0);
// LCDに書き出し
myLCD.write("Light: " + a);
}, 1000);
試してみる
以下のように、Light Sensorを手で握り光を当たらなくするとLCDの数値が減り、手を開いて光を当てるとLCDの数値が増えます。
バックライト色を変えてみる
myLCD.setColorはバックライトの色を指定します。引数はRed,Green,BluedBlueです。
myLCD.setColor(255, 0, 0);
myLCD.setColor(0, 255, 0);
myLCD.setColor(0, 0, 255);
myLCD.setColor(255, 255, 255);
カーソルを変えてみる
myLCD.setCursorはカーソルの場所を指定します。引数はRow,Columnです。
例えば以下のようなコードを書きます。
var mraa = require("mraa");
var LCD = require("jsupm_i2clcd");
var myLCD = new LCD.Jhd1313m1(6, 0x3E, 0x62);
var clearStr = " "
var i = 15;
setInterval(function () {
myLCD.setColor(255, 255, 255);
myLCD.setCursor(0,0);
myLCD.write(clearStr)
myLCD.setCursor(0,i);
myLCD.write("S");
if(i == 0){
i = 15;
} else {
i--;
}
}, 1000);
これを実行すると、文字Sが右から左にずれていきます。
さいごに
個人的に、こういう電子工作物で一番「動いている感」があって好きなのがLCDなので、楽しかったです。