今回は、LCDディスプレイ(LCD1602)で文字を表示させてみたいと思う。
7セグディスプレイでは、0~9までの数字しか表示できなかったが、今回使用するLCDディスプレイでは、細かいドットとなっており、数字、アルファベット26文字、半角カタカナの表示が可能である。
使用可能な文字は以下の通り。
今回使用するLCD1602は、以下の種類の端子がある。
今回は、ライブラリ(lcd.h)を使用し、動作させる。
/* コンパイル時、-lwiringPiDev が必要 */
#include <wiringPi.h>
#include <lcd.h> // lcd制御用のヘッダファイル
int main(void) {
int clcd; // ピン番号情報の格納
wiringPiSetup();
/* LCD情報、ピン番号の情報を設定 */
clcd = lcdInit(2, 16, 4, 2, 3, 21, 22, 23, 24, 0, 0, 0, 0);
/* 無限ループ */
while (1) {
/* カーソルをLCD1行目の1文字目に設定 */
lcdPosition(clcd, 0, 0);
/* helloと表示する */
lcdPrintf(clcd, "Hello");
/* カーソルをLCD2行目の1文字目に設定 */
lcdPosition(clcd, 0, 1);
/* Worldと表示する */
lcdPrintf(clcd, "World");
/* 2秒間停止 */
delay(2000);
/* LCDを消灯する */
lcdClear(clcd);
/* 2秒間停止 */
delay(2000);
}
return 0;
}
ライブラリの関係でコンパイル時に、-lwiringPiDevのオプションを付けなければならないので注意すること。
lcdinit()関数でLCDのピン番号を指定し、初期化する。int lcdInit (int rows, int cols, int bits, int rs, int strb, int d0, int d1, int d2, int d3, int d4, int d5, int d6, int d7) ;
rows:LCDの行数
cols:LCDの列数
bits:制御ビット数(今回は、4bit)
rs:rsを接続したピン番号
strb:Eを接続したピン番号
d0~d3:4bit制御のため、D4~D7からのピン番号を順番に記入する。
d4~d7:4bit制御で未使用のため、今回は0とする。
12行目からのwhileループで、以下の動作を繰り返す。
LCDの上段に”Hello”、下段に”World”と表示し、2秒間動作を停止する。
24行目lcdClear(clcd);で、LCDを消灯する。