Python i2c上的多个LCD显示器,带覆盆子pi 2

Python i2c上的多个LCD显示器,带覆盆子pi 2,python,raspberry-pi,i2c,lcd,Python,Raspberry Pi,I2c,Lcd,大家好。我看了很多,第一次尝试通过i2c上的两个LCD显示器进行通信。一切正常,但现在我只想找到一种方法来初始化任何LCD上的通信,以防其中一个连接出现故障(接触不良、断电等)。根据该代码,它们同时分别工作。但是,当我做一个测试,试图断开连接到主线或他们的一些电线时,一切都有问题。该程序继续工作,没有问题,但LED显示屏上的指示在大多数情况下是不可能的,我想知道我做错了什么,因为我已经阅读并查看了许多示例和问题,但仍然找不到答案 下面是python代码: import lcddriver fro

大家好。我看了很多,第一次尝试通过i2c上的两个LCD显示器进行通信。一切正常,但现在我只想找到一种方法来初始化任何LCD上的通信,以防其中一个连接出现故障(接触不良、断电等)。根据该代码,它们同时分别工作。但是,当我做一个测试,试图断开连接到主线或他们的一些电线时,一切都有问题。该程序继续工作,没有问题,但LED显示屏上的指示在大多数情况下是不可能的,我想知道我做错了什么,因为我已经阅读并查看了许多示例和问题,但仍然找不到答案

下面是python代码:

import lcddriver
from time import *
import sys

a=0
b=0
#https://www.youtube.com/watch?v=YUII39FzUb4     my reference

lcd = lcddriver.lcd(0x27) #Address firs display
print ("Display 1 done")
lcd2 = lcddriver.lcd(0x23) #Address second display
print ("Display 2 done")
sleep(1)
lcd.lcd_display_string("    ElectroMESH ", 1)
lcd.lcd_display_string("Prueba Raspberry y", 2)
#One part in the first display
lcd2.lcd_display_string("LCD 20x4 via i2c ", 3)
lcd2.lcd_display_string("      via I2C", 4)
#The other part in the second display
sleep(1)

for i in range(1,86400):

   try:
      a=1
      b=0           #Here I'm trying to make an idea of display status flag
      lcd.lcd_display_string(str(i), 4, 1)
      a=0
      b=1
      lcd2.lcd_display_string(str(i+8), 2, 1) #i+8 to ensure differents texts 
      b=0
      #Activate flag after indication
      except IOError:     #The action that runs after display is lost 
      print ("sistema desconectado a y b")
      if a and b: 
        lcd = lcddriver.lcd(0x27)
        print ("Sistema 0x27 inicializado if a y b")
        a = 0
        lcd2 = lcddriver.lcd(0x23)
        print ("Sistema 0x23 inicializado if a y b")
        b = 0
        sys.exc_clear()
      elif a==1 and b==0:
        lcd = lcddriver.lcd(0x27)
        print ("Sistema 0x27 inicializado if a")
        a = 0
        sys.exc_clear()
      elif a==0 and b==1:
        lcd2 = lcddriver.lcd(0x23)
        print ("Sistema 0x23 inicializado if b")
        b = 0
      else:
        print ("OK...conexion recuperada")
      sys.exc_clear()
sleep(1)   #Each second prints in the terminal to show results
print(i)

我尝试了超时例外,但没有成功。如果您需要,希望获得更多详细信息,因为这是我的第一篇文章,我正在尽最大努力提问。

经过一段时间的阅读,我可以使用node red、try and exceptions和MQTT server找到非常有用的信息和实用程序。之后,一切都很好,事情只是为了适应我在Web和手册上发现的一切。

你应该用VisualC++或类似的东西编写物理控制器程序,然后用MATLAB与你的应用程序进行接口。