Я подключил ЖК-дисплей к проекту, над которым работаю. У меня много входов/выходов, и я хочу отображать разные сообщения в зависимости от состояния входов. Теперь, прежде чем я начну усложнять / добавлять больше оборудования. Мне нужна помощь. Когда никакие входы не активны, я хочу, чтобы на ЖК-дисплее отображалось сообщение «Ожидание ввода», а после получения одного ввода я хочу отобразить «Вход один активен». В настоящее время я использую цикл while true, но проблема возникает, когда я очищаю ЖК-дисплей, так как каждый раз, когда он зацикливается, текст на экране пульсирует. Есть ли лучший способ сделать это вне цикла while true?
Вот мой текущий код
import I2C_LCD_driver
import time
import pigpio
mylcd = I2C_LCD_driver.lcd()
Debounce = 0.5
Input23 = 23
Input24 = 24
Input17 = 17
Output18 = 18
Output4 = 4
pi_GPIO = pigpio.pi()
pi_GPIO.set_mode(Input23, pigpio.INPUT)
pi_GPIO.set_pull_up_down(Input23 , pigpio.PUD_UP)
pi_GPIO.set_mode(Input24, pigpio.INPUT)
pi_GPIO.set_pull_up_down(Input24 , pigpio.PUD_UP)
pi_GPIO.set_mode(Input17, pigpio.INPUT)
pi_GPIO.set_pull_up_down(Input17 , pigpio.PUD_UP)
pi_GPIO.set_mode(Output18, pigpio.OUTPUT)
pi_GPIO.set_mode(Output4, pigpio.OUTPUT)
while True:
if pi_GPIO.read(Input23):
pi_GPIO.write(18, 0)
mylcd.lcd_clear()
mylcd.lcd_display_string("Input 1 Active", 1)
time.sleep(Debounce)
else:
pi_GPIO.read(Input23)
pi_GPIO.write(18, 1)
mylcd.lcd_clear()
mylcd.lcd_display_string("Awaiting Input", 1)
mylcd.lcd_display_string("Detection", 2)
time.sleep(Debounce)