Raspberry Piで電子工作(6) LCDディスプレイ

今回は、LCDディスプレイ(LCD1602)で文字を表示させてみたいと思う。

必要なもの

LCDディスプレイ

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のオプションを付けなければならないので注意すること。

プログラムの説明

9行目の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を消灯する。


トップページに戻る