<Raspberry Pi-31>

LCD(AQM0802A)文字表示のシェルスクリプトプログラム続編です。
尚、<Raspberry Pi-23>を参照してソフト関連の作業を行っておいてください。
下のプログラムソースで、---プログラムここから---と---プログラムここまで---は
コピーペーストしないでください。

<文字を動かす3>
下の画像をクリックしてください。


------------------------プログラムここから------------------------------

#!/bin/sh

#LCD初期化関数
lcd_init()
{
i2cset -y 1 0x3e 0x00 0x38 0x39 0x14 0x70 0x56 0x6c i
sleep 0.3
i2cset -y 1 0x3e 0x00 0x38 0x0C 0x01 i
}
#表示クリアー関数
dsp_clear()
{
i2cset -y 1 0x3e 0x00 0x01 i
}
#文字アドレス関数
dsp_add()
{
i2cset -y 1 0x3e 0x00 $add i
}

#############################メインプログラム##########################

#LCD初期化関数呼出
lcd_init

sleep 0.5

cnt=0
add=0
#左から右に表示
while [ true ]
do

if [ $cnt -ge 9 ]
then

break

fi

#文字表示アドレス計算
add=$(( 0xC8-$cnt ))
#文字アドレス関数呼出
dsp_add
i2cset -y 1 0x3e 0x40 0x08 i
sleep 1
#表示クリアー関数呼出
dsp_clear
cnt=$(( cnt+1 ))
done

------------------------プログラムここまで------------------------------


<文字を動かす4>
for文を使っての文字移動
下の画像をクリックしてください。


------------------------プログラムここから------------------------------
#!/bin/sh

#LCD初期化関数
lcd_init()
{
i2cset -y 1 0x3e 0x00 0x38 0x39 0x14 0x70 0x56 0x6c i
sleep 0.3
i2cset -y 1 0x3e 0x00 0x38 0x0C 0x01 i
}
#表示クリアー関数
dsp_clear()
{
i2cset -y 1 0x3e 0x00 0x01 i
}
#文字アドレス関数
dsp_add()
{
i2cset -y 1 0x3e 0x00 $add i
}

#############################メインプログラム##########################

#LCD初期化関数呼出
lcd_init

sleep 0.5

#1行目左から右
add=0
start=0
setp=1
end=7
for cnt in `seq $start $step $end`
do
add=$(( 0x80+$cnt ))
dsp_add
#文字表示
i2cset -y 1 0x3e 0x40 0x8E i
sleep 0.5
dsp_clear
done

#2行目右から左
add=0
start=7
step=-1
end=0
for cnt in `seq $start $step $end`
do
add=$(( 0xC0+$cnt ))
dsp_add
#文字表示
i2cset -y 1 0x3e 0x40 0x8E i
sleep 0.5
dsp_clear
done

------------------------プログラムここまで------------------------------


<文字を動かす5>
for文を使っての文字移動
下の画像をクリックしてください。


------------------------プログラムここから------------------------------
#!/bin/sh

#LCD初期化関数
lcd_init()
{
i2cset -y 1 0x3e 0x00 0x38 0x39 0x14 0x70 0x56 0x6c i
sleep 0.3
i2cset -y 1 0x3e 0x00 0x38 0x0C 0x01 i
}
#表示クリアー関数
dsp_clear()
{
i2cset -y 1 0x3e 0x00 0x01 i
}
#文字アドレス関数
dsp_add()
{
i2cset -y 1 0x3e 0x00 $add i
}

#############################メインプログラム##########################

#LCD初期化関数呼出
lcd_init

sleep 0.5

#-----------------1行目左から右
add=0
start=0
setp=1
end=7
for cnt in `seq $start $step $end`
do
add=$(( 0x80+$cnt ))
dsp_add
#文字表示
i2cset -y 1 0x3e 0x40 0x9A i
sleep 0.5
dsp_clear
done

#-----------------2行目右から左
add=0
start=7
step=-1
end=0
for cnt in `seq $start $step $end`
do
add=$(( 0xC0+$cnt ))
dsp_add
#文字表示
i2cset -y 1 0x3e 0x40 0x9A i
sleep 0.5
dsp_clear
done

#-----------------2行目左から右
add=0
start=0
step=1
end=7
for cnt in `seq $start $step $end`
do
add=$(( 0xC0+$cnt ))
dsp_add
#文字表示
i2cset -y 1 0x3e 0x40 0x9A i
sleep 0.5
dsp_clear
done

#-----------------1行目右から左
add=0
start=7
step=-1
end=0
for cnt in `seq $start $step $end`
do
add=$(( 0x80+$cnt ))
dsp_add
#文字表示
i2cset -y 1 0x3e 0x40 0x9A i
sleep 0.5
dsp_clear
done

------------------------プログラムここまで------------------------------


Raspberry Pi-32に続く・・・


Raspberry メニューに戻る