<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 メニューに戻る