まんぷく

メーカー不明のLCD Keypad Shieldを使う

前回手にいれたLCD Keypad Shieldを実際に使ってみることにします。

TELL HOW TECHNOLOGYの商品ページを見ると何やら呪文っぽい文字が漢字混じりで並んでいるだけで、全然分かりません。そもそも今までAruduino用のスケッチは内蔵LEDを光らせる、所謂Lチカしかやったことが無いのですからさっぱり予備知識がありません。ちなみにスケッチというのはAruduinoのソースコードの事です。

最初にボードの裏に誇らしげにプリントされているメーカー名らしきDeekbotで検索してみましたが、欲しい情報はゼロでした(涙)。もしかしてGeekbotか?と思って検索するも、やはりこれまたちょっと違う感じ。

しかたがないので今度は表面のLCD Keypad Shieldで検索してみると、複数のLCD Shieldを比較しているナイスなページに行き当たりました、その中に部品の配置がそっくりなのがありました。どうやらDF RobotのLCD Shieldのクローンのようです。しかもこのページには親切にもサンプルスケッチが入っていました。

#include <LiquidCrystal.h>
LiquidCrystal lcd( 8, 9, 4, 5, 6, 7);

void setup() {
  lcd.begin(16, 2);
  lcd.print("hello, mumpk!");
}

void loop() {
  lcd.setCursor(0, 1);
  lcd.print(millis()/1000);
}

どうやら初期化するパラメータ(ピンの番号)は異なるものの、Arduinoの標準ライブラリでそのまま動くような感じです。先ほどの「商品説明」のなかにも「占用数字端口:PIN4(DB4),5(DB5),6(DB6),7(DB7),8(RS),9(E),10(背光控制),模拟按键端口A0。」と書かれていて、数字的にもビンゴな感じなので、早速ソースコードをコンパイルして実行してみたところ、あっさり表示に成功しました。

文字表示タイプのLCDコントローラーとして日立のHD44780というのが定番中のド定番らしく、歴史もあるので互換ドライバーが大半なのだそうで、それように書かれたArduino用のLiquidCrystalというライブラリを使ってそのまま表示出来ちゃったのも、それのおかげのようです。

ちなみにデータラインは4線か8線を選べるのですが、このシールドは4線しかつながっていませんので、4ビットモードでしか実行出来ないです。もっとも専有されるピンの数は少ないほど良いので、この方が都合が良いと思います。

LiquidCrystalのソースを見ると8ビットモードなら1度で済むところが、4ビットモードでは当然ながら2度送信しているので、データ送信には倍の時間がかかるのですが、文字コードを送るのに要求されるデータ転送レートはたかだか知れているので、実用上問題が出ることはあまりなさそうです。

ネタにならないくらい簡単で拍子抜けですがこれがAruduinoの良さです。ブロックみたいにパーツを組合せて、少しのコードを書けばすぐ動くのは大事なことだし、とっても楽しいです。だれだってスペックシートを見ながらLCDを表示する部分のコードをちまちま書くのはやりたくないですもんね。上級者の方ならそれも楽しみのひとつなのでしょうが、敷居は低いほど良いと思います。

LiquidCrystalのリファレンスを眺めていたらcreateCharなる気になるメソッドも発見して、ちょっとわくわくしているので、次回はちょっとだけ実用的なサンプルスケッチも載せたいなと思います。

Categories
tech

Tags
Arduino / DRRobot / LCD Keypad Shield