<Raspberry Pi-27> 今回はSTTS751による温度測定と時刻をLCD(AQM0808)に表示します。 下の画像をクリックしてください。 プログラムを下に示します。 -------------------------------------------------------------------------------- #!/bin/sh tokei() { hms=`date +"%H:%M:%S"` } #関数 温度データ取得 センサー:STTS751 temp_mes() { temp_add0=$(i2cget -y 1 0x39 0 b) #アドレス0のデータ取得 temp_1=$(($temp_add0)) #16進→10進に変換 temp_add2=$(i2cget -y 1 0x39 2 b) #アドレス2のデータ取得 temp_2=$(($temp_add2)) #16進→10進に変換 temp_2=` perl -e "print(${temp_2} / 256)" ` #少数部分の計算 temp=` perl -e "print(${temp_1} + ${temp_2})" ` #整数部分と少数点部分の足し算 } moji_conv() { cnt=0 #cntが$mojisu以上になるまで lcdgyo="" while [ $cnt -lt $len_moji ] do cnt=$(( cnt + 1 )) #cntをインクリメント lcddsp=`echo $lcdmoji | cut -c $cnt` #$lcmoji列の$cnt番目の文字をlcddsp $ lcdmoji_dec=$(printf "%d" \'$lcddsp) #$lcddspを10進に変換 lcdgyo=$lcdgyo$lcdmoji_dec" " #$lcddspに" "を連結してlcdgyoに文字$ done } lcd_init() #LCD初期化 関数 { i2cset -y 1 0x3e 0x00 0x38 0x39 0x14 0x70 0x56 0x6c 0x38 0x0C 0x01 i } #LCD表示 lcd_dsp() { i2cset -y 1 0x3e 0x00 0x01 b #表示クリア i2cset -y 1 0x3e 0x40 $lcdgyo1 i #LCD1行目データ表示 i2cset -y 1 0x3e 0x00 0xC0 b #LCD2行目先頭に移動 i2cset -y 1 0x3e 0x40 $lcdgyo2 0xDF 0x43 i #LCD2行目データ表示 } lcd_init while [ true ] do #時刻取得 tokei lcdmoji=$hms len_moji=${#hms} moji_conv lcdgyo1=$lcdgyo #温度測定データ取得 temp_mes lcdmoji=$temp len_moji=${#temp} moji_conv lcdgyo2=$lcdgyo #時刻・温度LCD表示 lcd_dsp sleep 0.1 done -------------------------------------------------------------------------------- Raspberry Pi-28に続く・・・ Raspberry メニューに戻る