用を兼ねて購入してみました。
先に届いたので、とりあえずGalileoに挿してみたところ、
やっぱり動きませんでした。
Arduino Uno Rev3ではちゃんと動きました。
ソースに1行
lcd.init(1,8,255,9,4,5,6,7,0,0,0,0);
を追加したら表示するようになりました。
表示のリフレッシュが我慢の範囲を超えた遅さです。
眺める分にはいいですが、入力のレスポンスとしては使えない状況です。
チューニングが必要です。
サンプルコード
ソースの変更箇所
GalileoでこのLCDを使うと遅いとのもっぱらの評判です。
小さな改善をしてみました。
こちらが改善前の表示です。
改善を施すと、こうなります。
改善個所は、arduino-1.5.3\libraries\LiquidCrystal\src にある。2つのファイルをいじります。
・LiquidCrystal.h の変更
86行目の private: の中に2行追加します。
_s は slow の意味で付けました。
従来の関数の名前を変えたものに当たります。
最初に送るコマンドの時はピンの初期化が必要なので、コマンドを送るときに使います。
文字列を送るときにどこかで呼ばれる send と write4bits を高速化するのが狙いです。
-----
void send_s(uint8_t, uint8_t);
void write4bits_s(uint8_t);
-----
・LiquidCrystal.cpp の変更
write4bits をコピーして write4bits_s を用意します。
従来の関数から呼ばれるはずの write4bits は高速化のために pinMode を無効にします。
write4bits_s はコマンドを送るときに使うために pinMode を残します。
-----
void LiquidCrystal::write4bits(uint8_t value) {
for (int i = 0; i < 4; i++) {
// pinMode(_data_pins[i], OUTPUT);
digitalWrite(_data_pins[i], (value >> i) & 0x01);
}
pulseEnable();
}
void LiquidCrystal::write4bits_s(uint8_t value) {
for (int i = 0; i < 4; i++) {
pinMode(_data_pins[i], OUTPUT);
digitalWrite(_data_pins[i], (value >> i) & 0x01);
}
pulseEnable();
}
-----
send をコピーてします。write4bits を write4bits_s にしておきます。
write4bits を write4bits_s に変更します。
-----
void LiquidCrystal::send_s(uint8_t value, uint8_t mode) {
digitalWrite(_rs_pin, mode);
// if there is a RW pin indicated, set it low to Write
if (_rw_pin != 255) {
digitalWrite(_rw_pin, LOW);
}
if (_displayfunction & LCD_8BITMODE) {
write8bits(value);
} else {
// write4bits(value>>4);
// write4bits(value);
write4bits_s(value>>4);
write4bits_s(value);
}
}
-----
-
購入金額
1,450円
-
購入日
2014年02月27日
-
購入場所
つきさん
2014/02/28
でっぱりが長いのでボードによっては当たるかも
半田付けはもうちょっと丁寧な方がいいかもしれません。
動作確認はここで拾ったサンプルコードを使いました。
http://www.dfrobot.com/wiki/index.php?title=Arduino_LCD_K...
Galileoでは、表示遅延以前の問題で、
1行目が■で埋められ、2行目は文字なしでした。
新しいGalileoでも試してみたいですが、まだ勇気がありません。
しばさん
2014/03/01
Uno R3では動作するのに…このままではorz
つきさん
2014/03/01
ピギーバックのままソフトの変更で対応できるのか、
配線を付け変えればできるのか、
チャレンジするのですが、、、、
しばさん 頑張ってみてください。(^^;;
私のレビュー課題では、
こちらを使うことにしてしまっているので、、、
しばさん
2014/03/02
参考にさせていただいてもよろしいでしょうか?
つきさん
2014/03/02
私は大したことしていませんが、参考にしてください。
先駆者に感謝です。