今回は液晶ディスプレイに文字を表示させてみます。MBEDはLPC1768を、液晶ディスプレイはAruduinoの
部品セットについていたものを使用しましたが、型版等はよくわかりません(これが後で尾を引きました)
配線
配線します。
- Mbed(LPC1768)をブレッドボードに差します
- 液晶ディスプレイのSDAに28ピンをSCLに27ピンをVCCには5VピンをGNDにはGNDピンを接続します。
プログラムの作成
①プログラムを作成します
- WEBのMBEDサイト(ユーザ登録要)にログインし、右上のCompilerをクリックします。
- 開発環境画面が表示されますので、画面左上の→をクリックします
② プログラム名を入力し、OKボタンをクリックします
③ 左側のマイプログラムのmain.cppをクリックし、コードを以下のように修正します
#include "mbed.h"
#include "TextLCD.h"
I2C i2c_lcd(p28,p27); // SDA, SCL
TextLCD_I2C lcd(&i2c_lcd, 0x7E, TextLCD::LCD16x2, TextLCD::HD44780);
int main() {
lcd.setBacklight(TextLCD::LightOn);
lcd.printf("HELLO MBED!!!");
}
④ ドライバのインストールを行うために、mbedのトップページからHardware>Components>Displayを選択
⑤ I2Cと書かれた方のHD44780を選択
⑥ Libraryのimport libraryをクリック
⑦ ②で作成したプロジェクトをTarget Pathに指定し、Importボタンをクリックするとライブラリが取り込まれます
⑧ 取り込んだライブラリのTextLCD_Config.hを以下のように修正します
修正前
//Select Serial Port Expander Hardware module (one option only)
#define DEFAULT 1
#define ADAFRUIT 0
#define DFROBOT 0
#define LCM1602 0
#define YWROBOT 0
#define GYLCD 0
#define MJKDZ 0
#define SYDZ 0
#define WIDEHK 0
#define LCDPLUG 0
修正後
//Select Serial Port Expander Hardware module (one option only)
#define DEFAULT 0
#define ADAFRUIT 0
#define DFROBOT 0
#define LCM1602 1
#define YWROBOT 0
#define GYLCD 0
#define MJKDZ 0
#define SYDZ 0
#define WIDEHK 0
#define LCDPLUG 0
コンパイルする
① 画面左上のをクリックします。
コンパイルが成功すると、ファイル(display_test_LPC1768.bin)がダウンロードされます
実行する
①Windowsメニュー → コンピューター → MBED(F:) をクリックし
この中に先ほどダウンロードしたファイル(display_test_LPC1768.bin)を入れます
② ボタンを押し、LCD上に表示されることを確認します
今回つまづいたのは、以下の内容です。
1)LCDの規格がわからなかったので、最初3.3Vで接続していたが、5Vが正しかったようだ。
2)ライブラリはメニューのインポートから登録することができるが、TextLCDがいっぱいあってどれを使っていいかわからなかった。
3)TextLCD_Config.hを変更しなければならないのがわからなかった。
4)TextLCD_I2Cに渡すパラメタを最初は0x4Eにしていたが、液晶の裏のチップにPS8574Aと書いてあり、PS8574Aの場合には、0x7Eが正解だった。
試行錯誤しなければならないのは、本当は理解ができていないからなんでしょうね。もっと勉強せねば、、、