3251660 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

傀儡師の館.Python

傀儡師の館.Python

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Recent Posts

Calendar

Keyword Search

▼キーワード検索

Category

Archives

2023.10
2023.09
2023.08
2023.07
2023.06

Freepage List

Profile

kugutsushi

kugutsushi

Free Space

設定されていません。
2016.11.16
XML
カテゴリ:電子工作
I2C 接続の LCD を ESP-WROOM-02 につないでみる (2)のあと、Arch Linux がアップデート中にフリーズしまって復旧するのに手間取っていた。boot 領域が壊れてしまったので、復旧するついでに、MBR から GPT に変換して、BIOS モードでの起動から UEFI モードでの起動に代えた。色々おかしな状態になってしまったのを調整して、順調に戻ったので、電子工作を再開する。ちなみに、Arch Linux は、それなりに馴染んできて、いい感じで使えている。

LCD は AQM0802A をとりあえず使っているが、ON/OFF したいとかあるので、ちゃんとした使い方を調べているうちに、Arduino IDE の [Sketch] - [Include Library] - [Manage Libraries] で出てくる [Library Manager] で AQM0802A を検索して、Hideki Yamauchi さんの "FaBoLCDmini_AQM0802A" をインストール ボタンを押してインストールしてしまうのが一番楽な使い方かもしれないと思った。

I2C で接続しているのでプリミティブに、AQM0802A スペックシート の "DISPLAY INSTRUCTION TABLE" とかを見ながらコードを書いていけば、ライブラリがなくても制御できるようになったが、スペックシートを確認しながらコードを書くのも面倒なので、ライブラリ化されたものを使うことにした。ライブラリを使わずに書こうとすると、

#include <Wire.h>
#define LCD_ADDR 0x3e

void setup(){
Wire.begin(4, 5);
delay(40);

// 初期化: ■初期設定例■
uint8_t cmd_init[] = {0x38, 0x39, 0x14, 0x70, 0x56, 0x6c, 0x38, 0x0d, 0x01};
size_t i;
i = sizeof(cmd_init);
for (i=0; i<len; i++) {
Wire.beginTransmission(LCD_ADDR);
Wire.write(0x00);
Wire.write(cmd[i]);
Wire.endTransmission();
delayMicroseconds(27); // 26.3us
}
以下、省略
}

ディスプレイを OFF にするには、Display ON/OFF のところを見て、
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 1 D C B
で、D: Display ON/OFF controlbit を 0、 C: Cursor ON/OFF control bit を 0、B: Cursor Blink ON/OFF control bit を 0 としたいので、000001000 で、16進数に直して、0x08 を Wire.write してやれば、ディスプレイをオフにできるのも確認できた。参考になるページは、ESP-WROOM-02 AQM0802A とかキーワードにして検索すればたくさん見つかる。


ライブラリを使えば、Example を参考にして

#include <Wire.h>
#include <FaBoLCDmini_AQM0802A.h>

// ライブラリの初期化
FaBoLCDmini_AQM0802A lcd;

void setup() {
// LCD の初期化
lcd.begin();
}

void loop() {
lcd.home(); // 0, 0 にカーソルを移動
// 0 から 9 を表示
for (int thisChar = 0; thisChar < 10; thisChar++) {
lcd.print(thisChar);
delay(500);
}
// ディスプレイをOFF
lcd.noDisplay();
delay(500);
// ディスプレイを ON
lcd.display();
delay(500);
}
色々、公開されているライブラリもあるのだが、Arduino IDE から、簡単にインストールできてすぐ使えるので、これが一番楽かもしれない。スマホからの ON/OFF を考えていたが、電池の消耗を抑えるために、やっぱり、物理的にスイッチを追加して、ON/OFF するようにしようかな。とりあえず太陽電池付きのバッテリーを買ったので、どの程度、連続動作できるかも試してみようかと思っているところ。

ちなみに、FaBoLCDmini_AQM0802A を使うと、"WARNING: library FaBo_213_LCD_mini_AQM0802A claims to run on [avr] architecture(s) and may be incompatible with your current board which runs on [esp8266] architecture(s)." のようなエラーが出るが、ESP-WROOM-02 を使っているときは、Arduino/libraries/FaBo_213_LCD_mini_AQM0802A/library.properties を編集して、architectures=avr を architectures=esp8266 に書き換えてしまえば、WARNING が出なくなる。





お気に入りの記事を「いいね!」で応援しよう

Last updated  2016.11.17 02:52:57
コメント(0) | コメントを書く



© Rakuten Group, Inc.