<Raspberry Pi-25>

LCD(AQM0802A)にキャラクタ文字を表示させたいと思います。
10進数で32から255までの表示をさせるプログラムを下に示します。

LCDに1文字づつ表示して合計16文字表示すると画面をクリアして次の16文字表示
して行き255文字で終わります。同時にターミナルにも16文字毎に改行して表示します。

LCDに表示する文字全てがターミナルに表示されるわけではありません。
LCDの文字コードが制御コードなどの場合は表示しません。

--------------------------------------------------------------------------------

#!/bin/sh

lcd_init()                                      #LCD初期化 関数
{
i2cset -y 1 0x3e 0x00 0x38 0x39 0x14 0x70 0x56 0x6c 0x38 0x0C 0x01 i
}

lcd_dsp1()                                      #LCD1行目データ表示 関数
{
i2cset -y 1 0x3e 0x40 $gyou1 i
}

lcd_dsp2()                                      #カーソル位置2行目先頭に移動 関数
{
i2cset -y 1 0x3e 0x00 0xC0 b
}

fun_ascmoji()                                   #アスキー10進数を文字変換 関数
{
printf "%b" $(printf '%s%x' '\x' $ascmoji)
}

fun_no()
{
echo -n $ascmoji":"
}


#-----メインプログラム-----#
echo ""
echo "アスキー10進数の32からスタート255で停止、CTRL+Cでも停止"
ascmoji=32                      #アスキー開始10進数
lcd_init                        #LCD初期化
cnt=0                           #8文字カウント用
cnt2=0                          #16文字カウント用

fun_no
while [ true ]

do
cnt=`expr $cnt + 1 `            #8文字のカウントアップ
cnt2=`expr $cnt2 + 1 `          #16文字カウントアップ
fun_ascmoji                     #関数呼出 アスキー10進数を文字変換
gyou1=$ascmoji                  #LCD表示用変数gyou1に代入
lcd_dsp1
ascmoji=`expr $ascmoji + 1 `    #アスキー10進数のカウントアップ


if [ $ascmoji -eq 256 ] ; then
echo ""
exit
fi

if [ $cnt -eq  8 ] ; then
sleep 1
lcd_dsp2
cnt=0
fi

if [ $cnt2 -eq  16 ] ; then
sleep 1
lcd_init
cnt2=0
echo ""
fun_no
fi

sleep 0.5

done

--------------------------------------------------------------------------------


nanoエディタを使いasc.shのファイル名でプログラムします。                nano asc.shと入力してエンターキー
 

上のプログラムをコピーして、画面にマウスカーソルを置いて右クリック         ペーストされます。
 

カーソルを一番上にしますと#の位置で止まります。                            その位置でエンターキーで改行を1回以上(ここがポイントです)
 

CTRL+Xキー                                                                  Yキーの後、エンターキー
 

asc.shが出来ました。                             アクセス権を変更 chmod 755 asc.shエンターキー
 

実行します ./asc.shエンターキー                                             この画像のようにターミナルでは表示します。
 

32から125までは、どの液晶でも同じキャラクタ文字が表示されるようですが
126以上では、液晶型番により違うようです。

下の画像をクリックしてください。



Raspberry Pi-26に続く・・・

Raspberry メニューに戻る