Änderungen

Aus Linkerkit.de

Wechseln zu: Navigation, Suche

LK-Digi

4.326 Byte hinzugefügt, 15:51, 30. Nov. 2016
/* Codebeispiel Raspberry */
 
==Codebeispiel Raspberry==
 Legen Sie zuerst die Datei '''tm1637.py''' über ein Terminal an.Sie können dazu folgenden Befehl verwenden: <pre class="brush:bash">sudo nano tm1637.py</pre> Füllen Sie die Datei mit folgendem Inhalt: <pre class="brush:py"> import sysimport osimport timeimport RPi.GPIO as IO IO.setwarnings(False)IO.setmode(IO.BCM) HexDigits = [0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71] ADDR_AUTO = 0x40ADDR_FIXED = 0x44STARTADDR = 0xC0BRIGHT_DARKEST = 0BRIGHT_TYPICAL = 2BRIGHT_HIGHEST = 7OUTPUT = IO.OUTINPUT = IO.INLOW = IO.LOWHIGH = IO.HIGH class TM1637: __doublePoint = False __Clkpin = 0 __Datapin = 0 __brightnes = BRIGHT_TYPICAL; __currentData = [0,0,0,0];  def __init__( self, pinClock, pinData, brightnes ): self.__Clkpin = pinClock self.__Datapin = pinData self.__brightnes = brightnes; IO.setup(self.__Clkpin,OUTPUT) IO.setup(self.__Datapin,OUTPUT) # end  __init__  def Clear(self): b = self.__brightnes; point = self.__doublePoint; self.__brightnes = 0; self.__doublePoint = False; data = [0x7F,0x7F,0x7F,0x7F]; self.Show(data); self.__brightnes = b; # restore saved brightnes self.__doublePoint = point; # end Clear  def ShowInt(self, i): s = str(i) self.Clear() for i in range(0,len(s)): self.Show1(i, int(s[i]))  def Show( self, data ): for i in range(0,4): self.__currentData[i] = data[i];  self.start(); self.writeByte(ADDR_AUTO); self.stop(); self.start(); self.writeByte(STARTADDR); for i in range(0,4): self.writeByte(self.coding(data[i])); self.stop(); self.start(); self.writeByte(0x88 + self.__brightnes); self.stop(); # end Show  def SetBrightnes(self, brightnes): # brightnes 0...7 if( brightnes > 7 ): brightnes = 7; elif( brightnes < 0 ): brightnes = 0;  if( self.__brightnes != brightnes): self.__brightnes = brightnes; self.Show(self.__currentData); # end if # end SetBrightnes  def ShowDoublepoint(self, on): # shows or hides the doublepoint if( self.__doublePoint != on): self.__doublePoint = on; self.Show(self.__currentData); # end if # end ShowDoublepoint  def writeByte( self, data ): for i in range(0,8): IO.output( self.__Clkpin, LOW) if(data & 0x01): IO.output( self.__Datapin, HIGH) else: IO.output( self.__Datapin, LOW) data = data >> 1 IO.output( self.__Clkpin, HIGH) #endfor  # wait for ACK IO.output( self.__Clkpin, LOW) IO.output( self.__Datapin, HIGH) IO.output( self.__Clkpin, HIGH) IO.setup(self.__Datapin, INPUT)  while(IO.input(self.__Datapin)): time.sleep(0.001) if( IO.input(self.__Datapin)): IO.setup(self.__Datapin, OUTPUT) IO.output( self.__Datapin, LOW) IO.setup(self.__Datapin, INPUT) #endif # endwhile IO.setup(self.__Datapin, OUTPUT) # end writeByte  def start(self): IO.output( self.__Clkpin, HIGH) # send start signal to TM1637 IO.output( self.__Datapin, HIGH) IO.output( self.__Datapin, LOW) IO.output( self.__Clkpin, LOW) # end start  def stop(self): IO.output( self.__Clkpin, LOW) IO.output( self.__Datapin, LOW) IO.output( self.__Clkpin, HIGH) IO.output( self.__Datapin, HIGH) # end stop  def coding(self, data): if( self.__doublePoint ): pointData = 0x80 else: pointData = 0;  if(data == 0x7F): data = 0 else: data = HexDigits[data] + pointData; return data # end coding # end class TM1637</pre> Erstellen Sie nun mit folgendem Befehl die letzte Datei: <pre class="brush:bash">sudo nano clock.py</pre> Füllen Sie die Datei mit folgendem Inhalt: <pre class="brush:py"> import sysimport timeimport datetimeimport RPi.GPIO as GPIOimport tm1637 Display = tm1637.TM1637(4,5,tm1637.BRIGHT_TYPICAL) Display.Clear()Display.SetBrightnes(1) while(True): now = datetime.datetime.now() hour = now.hour minute = now.minute second = now.second currenttime = [ int(hour / 10), hour % 10, int(minute / 10), minute % 10 ]  Display.Show(currenttime) Display.ShowDoublepoint(second % 2)  time.sleep(1)</pre> Die Anzeige kann nun an das LinkerKit-Modul (in diesem Beispiel an Position D4) angeschlossen werden und mit folgendem Befehl gestartet werden: <pre class="brush:bash">sudo python clock.py</pre> Die Anzeige wird nun die aktuelle Systemzeit einblenden. 
==Downloads==
Infos:<br />Englisch: [[Medium:001267841-da-01-en-LINKER_KIT_PLATINE_MIT_DIGITALANZEIGE.pdf|001267841-da-01-en-LINKER_KIT_PLATINE_MIT_DIGITALANZEIGE.pdf]]
Schaltung: [[Medium:001267841-sp-01-en-LINKER_KIT_PLATINE_MIT_DIGITALANZEIGE.pdf|001267841-sp-01-en-LINKER_KIT_PLATINE_MIT_DIGITALANZEIGE.pdf]]