2017-02-16 20 views
0

みんな。私は多くを見て、i2cを介して2台のLCDディスプレイと通信することを初めて試みました。すべてうまくいきましたが、今では、接続のいずれかが失敗した場合(接触不良、電源切断など)にLCDの通信を初期化する方法を探したいだけです。このコードによれば、彼らは同時に別々に働いています。しかし、私がメインワイヤーまたはワイヤーのいくつかと切り離すためのテストを行うと、すべてが問題になります。プログラムは問題なく動作し続けますが、LEDディスプレイの表示はほとんどの場合不可能であり、多くの例と質問を読んで見ても答えが見つからないため、何が間違っているのかを知りたいのですが。i2cと複数のLCDディスプレイ(ラズベリーパイ2)

は、ここでの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) 

私はtimeout_exceptionsを試みたが、私は成功しませんでした。これが私の最初の投稿であり、私は尋ねようとするために最善を尽くしているので、あなたがそれらを必要とするならば、答えを望むか、またはより多くの詳細を要求してください。

+0

物理コントローラプログラムをVisual C++などで記述し、MATLABのアプリケーションとインターフェースする必要があります – Moose

答えて

-1

しばらくして、たくさん読んで、node-red、try、およびMQTTサーバーを使用して、非常に有用な情報とユーティリティーを見つけることができました。その後、すべてがうまくいっていて、ウェブとマニュアルで見つかったすべてのものを適応させるだけでした。

関連する問題