mbed を使ったロボット作成 第3回

【LCDに何か出してみる】

 

はじめに

皆さんが接している殆どのデジタル機器には、ユーザに何かを使てるインターフェースが提供されています。
簡単なものだとLEDです。LEDの点灯している色や点滅している感覚なので、そのデバイスが検知している状態をユーザーに伝えています。
また、スマホなどのハイスペックな機器では、グラフィカルな表示で画面があったり、タッチ操作により、機器の制御を行うことができます。
現在作成しているロボットでは、LEDの点滅くらいしかしていないので、何か表示を試みようと色々探してみたところ、16文字×2行に対応したLCDモジュールがあったので、これを制御してみようと思います。

LCDモジュールについて

今回使用するLCDモジュールはデータ転送が8ビットと4ビットのいずれかを選択できます。マイコン側の空きポートの関係上、4ビットのデータ転送方式を選択しました。
また、可変抵抗を接続することで、コントラストを制御することができます。
LCDモジュールの詳細は以下のとおり。

製品名 16文字×2行 超ハイコントラスト大文字LCDモジュール
メーカー Sunlike Display Tech. Corp.
型番 SC1602BS*B(LCDバックライト無)
概要 1. 5×7ドット+カーソル表示2. 液晶コントローラ内蔵
3. 5V単一電源(艇消費電流)
4. 1/16デューティサイクル
値段 500円(秋月電子通商調べ)

電力に必要な5V電源とGNDは、マイコンの電圧仕様と同じなのでそこから盗み取って接続します、Vo(コントラスト調整電圧)は電源から可変抵抗(10KΩ)を介して接続します。
R/W信号はWrite固定の為、GNDへ接続。RS(Register Select)及びE(Enable Signal),Data0~Data3をマイコンのポートに接続します。

マイコンポートに接続
mbedとの接続は以下のとおり。
mbedとの接続

ソフトウェアについて

開発環境は、「mbedを使ったロボット作成 第1回」でご紹介した「ARMのオンラインコンパイル環境」を使って作成していきます。
LCDデバイス制御用のドライバクラスを作成し、デバイスに特化した制御はこのクラスに吸収させます。利用する側からはドライバクラスのprintf等の出力機能だけで表示制御できた方が便利なので、Streamクラスを継承させたクラスとさせます。

TextPanel.h

TextPanel.cpp

main.cpp

 

実行結果

 

簡単なプログラムによるポート制御で
マイコンからLCDの表示制御ができることが確認できました。

次回はUSBポートについて制御してみたいと思います。

【参考】
mbedを使ったロボット作成 第1回
mbedを使ったロボット作成 第2回

ホームページ http://www.ois-yokohama.co.jp

facebook   https://www.facebook.com/orientalinformationservice/

mbed を使ったロボット作成 第3回” に対して1件のコメントがあります。

コメントは受け付けていません。