Arduino 資料一覧
Node.jsでI2C接続小型LCD(AQM0802A-RN-GBW)に文字列を表示させる
2017/02/18更新
対応バージョン: Node.js 4.2.6, Johnny-Five 0.10.6

I2C接続小型LCDモジュール(8x2行) ピッチ変換モジュール(完成品) (秋月電子通商)
このパーツはLCDモジュールAQM0802A-RN-GBWとピッチ変換基板AE-AQM0802を組み合わせたもので、コントローラICはST7032iが使われている。
Node.jsを動かす母艦はUbuntu 16.04とする。
結線
ピッチ変換基板に対する結線は以下の通り。

VDD: 3.3Vに接続
RESET: (未使用)
SCL(クロック): A5に接続
SDA(データ): A4に接続
GND: GNDに接続
I2Cバスのプルアップ抵抗(10kΩ)はピッチ変換基盤側に用意されている(基盤のPUの2箇所がハンダでショートされている)ため改めて抵抗を使用する必要はない。


ソース
以下のようなコードを書きNode.jsで実行する。
データシートに従って細かい制御ができるものの、ここではいったん文字列を表示している。
lcd.js
// AQM0802A-RN-GBW - I2C接続小型液晶 8文字x2行 // // ピン配置 // 1. VDD(3.3Vに接続) // 2. RESET (*)未使用 // 3. SCL(クロック) // 4. SDA(データ) // 5. GND // // 初期設定 // var five = require("johnny-five"); var board = new five.Board(); var LCD_ADR = 0x3E; // コントローラIC ST7032iのI2Cアドレス(固定) var clm_list = [ // 送信コマンドを変えることで表示行を変える 0x80, // 0行目表示 0xc0 // 1行目表示 ]; // // 関数定義 // // LCD制御 var lcd_cmd = function(cmd) { board.io.i2cWrite(LCD_ADR, 0x00, cmd); } // データ送信 var lcd_data = function(lcd_data) { board.io.i2cWrite(LCD_ADR, 0x40, lcd_data); } // 出力位置指定(行, 列) var lcd_setCursor = function(row, clm){ lcd_cmd(clm_list[row] + clm); } // LCDクリア var lcd_clear = function() { lcd_cmd(0x01); } // LCD初期化 // (*)コントラストは好みに応じて微調整するとよい var lcd_init = function() { board.io.i2cConfig(); lcd_cmd(0x38); // 画面サイズ指定(8文字 x 2行) lcd_cmd(0x39); // 拡張コマンド設定 lcd_cmd(0x14); // 内部OSC周波数 lcd_cmd(0x7A); // コントラスト lcd_cmd(0x56); // 電源(3V)/アイコンOFF/コントラスト lcd_cmd(0x6A); // フォロワー操作 lcd_cmd(0x38); // 拡張コマンド設定終了 lcd_cmd(0x0C); // 表示ON lcd_clear(); // LCDクリア } // // メイン // board.on("ready", function() { // LCD出力 var lcd_print = function(msg) { for(var i = 0; i < msg.length; i++) { lcd_data(msg.charCodeAt(i)); // 1文字出力 } } lcd_init(); // LCD初期化 lcd_clear(); // LCDクリア lcd_setCursor(0, 0); // カーソル位置(行, 列) lcd_print("I Love"); // 表示文字列 lcd_setCursor(1, 0); lcd_print("Arduino!"); });
実行
% node lcd.js 1487422161958 Device(s) /dev/ttyACM0 1487422161965 Connected /dev/ttyACM0 1487422165206 Repl Initialized >>

関連資料・記事
[Arduino] I2C接続小型LCD(AQM0802A-RN-GBW)に文字列を表示させる
[Arduino] Node.jsのJohnny-Fiveフレームワークを使ってArduino UnoでLチカ
[Arduino] ArduinoをNode.jsで操作する準備としてArduinoにFirmataプログラムを書き込む際にArduino IDEを使わずコマンドラインで実行する方法(GORT)
参考サイト
Arduino (Wikipedia)
Arduino技術情報 (Qiita)
Arduino関連情報 (Device Plus)
Arduino記事一覧 (Think IT)
Node.js技術情報 (Qiita)
Johnny-Five技術情報 (Qiita)
エレクトロニクス豆知識 (ROHM)