mbed編 第4回 液晶ディスプレイに表示してみる

今回は液晶ディスプレイに文字を表示させてみます。MBEDはLPC1768を、液晶ディスプレイはAruduinoの
部品セットについていたものを使用しましたが、型版等はよくわかりません(これが後で尾を引きました)

配線

配線します。

  • Mbed(LPC1768)をブレッドボードに差します
  • 液晶ディスプレイのSDAに28ピンをSCLに27ピンをVCCには5VピンをGNDにはGNDピンを接続します。

配線

ページトップ

プログラムの作成

①プログラムを作成します

  • WEBのMBEDサイト(ユーザ登録要)にログインし、右上のCompilerをクリックします。
  • 開発環境画面が表示されますので、画面左上の検証ボタンをクリックします

プログラムの作成1

② プログラム名を入力し、OKボタンをクリックします

プログラムの作成2

③ 左側のマイプログラムの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を選択

ドライバインストール1

⑤ I2Cと書かれた方のHD44780を選択

ドライバインストール2

⑥ Libraryのimport libraryをクリック

ドライバインストール3

⑦ ②で作成したプロジェクトをTarget Pathに指定し、Importボタンをクリックするとライブラリが取り込まれます

ドライバインストール4

⑧ 取り込んだライブラリの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が正解だった。
試行錯誤しなければならないのは、本当は理解ができていないからなんでしょうね。もっと勉強せねば、、、

ページトップ