Tout le monde. J'ai beaucoup regardé et essayé pour la première fois de communiquer avec deux écrans LCD sur i2c. Tout a bien fonctionné, mais maintenant je veux juste trouver le moyen d'initialiser les communications sur n'importe quel écran LCD en cas d'échec de l'une de leurs connexions (mauvais contact, mise hors tension, etc.). Selon ce code, ils travaillent séparément en même temps. Mais, quand je fais un essai essaye de déconnecter au fil principal ou à certains de leurs fils, tout devient avec le problème. Le programme continue à fonctionner sans problème, mais l'indication dans les affichages LED n'est pas possible la plupart du temps et je voudrais savoir ce que je fais mal parce que j'ai lu et ai regardé beaucoup d'exemples et de questions mais ne peux toujours pas trouver la réponse .Plusieurs écrans LCD sur i2c avec framboise pi 2
Voici le code 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)
J'ai essayé timeout_exceptions mais je ne réussi. J'espère avoir des réponses ou demander plus de détails si vous en avez besoin car c'est mon premier article et je fais de mon mieux pour essayer de le demander.
Vous devez écrire le programme du contrôleur physique dans Visual C++ ou quelque chose comme ça, puis l'interface avec votre application dans MATLAB – Moose