❖RasPiで表示が遅いLCD表示器をスレッドプロセスにて起動させる。
❍LCD表示器等は0.5秒程度の表示間隔にしないとちらつき等で鮮明に表示できない。❍そのような場合、Main programとは別のスレッドプログラムとして登録する。
❍スレッドはMain programの実行状態を監視するようなプログラムとしても有効である。
""" threading LCD Display """
# -*- coding: utf-8 -*-
import threading
# LCD表示器モジュール import
from MyPackage.St7032ilcd import St7032iLCD
I2C_ADDR = 0x3e
lcd = St7032iLCD(I2C_ADDR)
#
lcd.clear()
lcd.set_cursor(7, 0)
lcd.print1('V')
lcd.set_cursor(7, 1)
lcd.print1('A')
#
def lcd_d():
global values #ADCの電圧、電流データが16Bit整数で格納されている。
pv_v = ('%2.2f' % ((values[0]-85)*0.001382)) #-84=OFFSET
pv_a = ('%1.3f' % ((values[1]+41)*0.000124)) #+41=OFFSET
lcd.set_cursor(0, 0)
lcd.print1(pv_v + ' ') #電圧表示、+' 'はLCD最後備のごみ部分消去。
lcd.set_cursor(0, 1)
lcd.print1(pv_a + ' ')
######################################
t = threading.Timer(0.5, lcd_d)#0.5=約500mSに1回LCDに表示。
t.start()
######################################
t1 = threading.Thread(target=lcd_d)
t1.start()#ここでlcd_dのスレッドを0.5秒間隔でスタートさせる。
######################################
#
while True:
Main program #Main programが実行中、LCD表示が0.5秒間隔で行われる。
#当然values[]はMain program内で更新されなければならない。
0 件のコメント:
コメントを投稿