LoginSignup
3
3

More than 5 years have passed since last update.

node.js(Johnny-Five)で小型LCDを制御してみる

Posted at

I2C接続LCDモジュールをarduinoに接続してnode.jsで制御できるか

http://akizukidenshi.com/catalog/g/gM-09109/
秋月電子I2C接続小型LCDモジュールを使い
johnny-fiveのコンポーネントを使ってもうまく動作しなかった。

幸い、johnny-fiveではI2C通信を直接制御できるようなのでコンポーネントがなくても
なんとか対応できそうなので実装してみた。

参考したのがC言語のソースでそのままでとってもきれいなソースコードとは言えないが多少でも参考になれば幸いです。
また、johnny-fiveのソースコードを熟知してないので間違った使い方をしているかもしれない。

M-09109.jpg

lcd.js

var LCD_ADR = 0x3e ; //lcd address
var CONTRAST= 0x26 ; // コントラスト
//
var five = require("johnny-five");

var board = new five.Board();

//Main
board.on("ready", function() {

// LCD表示処理
//
/* LCD 初期化 */
var lcd_init = function(){
  board.io.i2cConfig();
  lcd_cmd(0x38); // 8bit 2line Normal mode
  lcd_cmd(0x39); // 8bit 2line Extend mode
  lcd_cmd(0x14); // OSC 183Hz BIAS 1/5
  /* コントラスト設定 */
  lcd_cmd((0x70 + (CONTRAST & 0x0F)));//下位4bit
  lcd_cmd((0x5C + (CONTRAST >> 4)));//上位2bit
  lcd_cmd(0x6b); // Follwer for 3.3V
  lcd_cmd(0x38); // Set Normal mode
  lcd_cmd(0x0C); // Display On
  lcd_cmd(0x01); // Clear Display
}

/* LCD コマンド */
var lcd_cmd = function(cmd){
  board.io.i2cWrite(LCD_ADR,0x00,cmd);
}

/* SEND DATA */
var lcd_data = function(lcd_data){
  board.io.i2cWrite(LCD_ADR,0x40,lcd_data);
}

/* Set Cursor */
var lcd_setCursor = function( row,clm){
  //row=0 or 1
  if(row==0) lcd_cmd(0x80+clm);
  if(row==1) lcd_cmd(0xc0+clm);
}

/* All Clear */
var lcd_clear = function(){
  lcd_cmd(0x01); //初期化コマンド出力
}

/* LCD print */
var lcd_print = function(ptr){
    var msg = ptr +"";
    for(var i=0; i<msg.length ; i++)
    {
        lcd_data(msg.charCodeAt(i) ); //文字表示
    }
}

// テスト表示
 lcd_init(); //LCD初期化
 lcd_clear(); // LCDクリア
 lcd_setCursor(0,0); //カーソル位置
 lcd_print("hello"); // 表示文字列
 lcd_setCursor(1,3);
 lcd_print("world");1

});


DCIM0442.JPG

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3