体験的マイコン学習(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が正解だった。


試行錯誤しなければならないのは、本当は理解ができていないからなんでしょうね。もっと勉強せねば、、、

ページトップ