前回、Groveのマウントを作成しましたが、まずはLCDディスプレイを使用してみます。パソコンでのプログラミングでは、途中経過を出力することで簡単にデバッグできますが、マイコンでのプログラミングではデバッグ作業のために出力先を用意する必要があります。LCDでプログラムの経過を表示できるとデバッグ作業などに役立つので便利です。
準備
まずGrove LCDのドライバをArduino IDEにインストールします。
ドライバ(zipファイル)はこちらからどうぞ。
Arduino IDEメニューの「スケッチ」から「ライブラリをインクルード」>「.ZIP形式のライブラリをインストール…」を選択します。

ファイルを選択するダイアログが開くので、LCDドライバのzipファイルを選択してください。これでライブラリを使えるようになります。

サンプルプログラム
今回、書き込むプログラムはこちら。プログラムは0.5秒おきにカウントアップしていく単純なものです。このプログラムをArduinoに書き込みます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <Wire.h> #include "rgb_lcd.h" rgb_lcd slcd; int cnt; void setup() { cnt = 0; slcd.begin(2, 16); slcd.setRGB(255, 255, 255); // background color } void loop() { cnt++; slcd.clear(); slcd.setCursor(0,0); slcd.print("The Count:"); slcd.setCursor(0,1) ; slcd.print(cnt, DEC); delay(500); } |
Grove LCDはI2Cで制御します。 I2C (アイ・スクエアド・シー)はフィリップス社が開発したシリアル通信技術のことです。Groveシールドには4つの I2C Cポートがありますが、どの I2C ポートでも動作します。
実際に動かした映像はこちら。
プログラムの簡単な説明
Grove LCDはI2Cで動作するので、Wireライブラリ(ArduinoのI2Cライブラリ)を使用します。「 rgb_lcd.h 」はインストールしたGrove LCDドライバに含まれるファイルです。
|
1 2 |
#include <Wire.h> #include "rgb_lcd.h" |
rgb_lcdというクラスのオブジェクトとカウンタ用の変数cntを作成しています。
|
4 5 |
rgb_lcd slcd; int cnt; |
初期化関数(void setup())ですが、まずカウンタ変数cntを初期化したあと、begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS)関数でLCDを初期化しています。GroveのLCDは2行16列なので、引数は(2, 16)となります(文字サイズはデフォルト値)。
その後、setRGB(unsigned char r, unsigned char g, unsigned char b)関数でLCDの背景色を設定しています。ここでは(255, 255, 255)で白色としています。
|
7 8 9 10 11 12 |
void setup() { cnt = 0; slcd.begin(2, 16); slcd.setRGB(255, 255, 255); // background color } |
ループ関数(void loop())ですが、カウンタ変数をインクリメントした後、clear()関数で画面のクリアをしています。その後、setCursor(uint8_t col, uint8_t row)関数でカーソルの場所を指定しています。(0, 0)は1行目の一番左に、(0, 1)は2行目の一番左にカーソル位置を指定しています。そしてprint関数で文字および数字を出力したあと、500ms待ち時間を設けています。
|
14 15 16 17 18 19 20 21 22 23 |
void loop() { cnt++; slcd.clear(); slcd.setCursor(0,0); slcd.print("The Count:"); slcd.setCursor(0,1) ; slcd.print(cnt, DEC); delay(500); } |
さいごに
以上がGrove LCDの簡単な使い方の説明です。LCDは1つ持っておくと何かと便利だと思います。
- 投稿タグ
- マイコン・電子工作