Seite 1 von 1

Keypad Eingabe auf LCD Display

Verfasst: Mittwoch 12. Juni 2019, 12:18
von Fussel132
Hi Leute, ich habe mir neulich ein Raspi Keypad (3x4) zugelegt und es so programmiert, dass die gedrückte Taste auf einem Segment des LCD Displays angezeigt wird. Jetzt steht z.B. in der ersten Zeile an erster Stelle die 4 und drücke ich jetzt die fünf steht diese aber auch in der ersten und die vier verschwindet. Wie kann man das in Python so programmieren das nachdem die erste Zahl erkannt und an erster Stelle steht die nächste gedrückte Taste dann an zweiter?
Sorry für eventuelle simple Gedächtnislücken meinerseits und danke für eine Antwort,
Fussel 132

Re: Keypad Eingabe auf LCD Display

Verfasst: Mittwoch 12. Juni 2019, 13:13
von Sirius3
Indem Du Dir die Position merkst und erhöhst.

Was hast Du denn bisher programmiert? Zeig doch den Code.

Re: Keypad Eingabe auf LCD Display

Verfasst: Mittwoch 12. Juni 2019, 13:19
von __blackjack__
Je nach dem was man später mit den Werten machen möchte, könnte es auch sinnvoll sein die Werte in einer Liste zu sammeln oder vielleicht auch in eine Zahl zu wandeln die jeweils um eine neue Ziffer erweitert wird.

Re: Keypad Eingabe auf LCD Display

Verfasst: Mittwoch 12. Juni 2019, 13:36
von Fussel132
Also ich habe dazu folgenden Code:

Code: Alles auswählen

from keypad import keypad
import lcddriver

lcd = lcd driver.lcd()
lcd.lcd_clear()
kp = keypad(columnCount = 3)

digit = None
while digit == None:
     digit = kp.getKey()
print digit
digitlcd = str(digit) 
lcd.lcd_display_string(digitlcd, 1)
Mit kp.getKey() werden Impulse durch die Reihen geschickt und wenn die bei den Spalten aufgefangen werden, ist das eine Nummer. Durch lcd.lcd_display_string werden Texte/Zahlen (hier in Zeile 1) auf das Display übertragen.

Re: Keypad Eingabe auf LCD Display

Verfasst: Mittwoch 12. Juni 2019, 13:46
von __blackjack__
@Fussel132: Vorweg: Du solltest kein Python 2 mehr benutzen: https://pythonclock.org/

Du müsstest das halt in eine Schleife stecken und wie schon gesagt, die Eingaben merken. Du könntest die Ziffern auch auch einer Zeichenkette sammeln.

Re: Keypad Eingabe auf LCD Display

Verfasst: Mittwoch 12. Juni 2019, 14:06
von __blackjack__
@Fussel132: Das ist übrigens nicht der Code den Du laufen lassen hast, weil der einen Syntaxfehler enthält.

Eingerückt wird mit vier Leerzeichen pro Enbene.

Nicht allgemein bekannte Abkürzungen sollte man nicht als Namen verwenden. Wenn man `keypad` meint, sollte man nicht `kp` schreiben. Wobei da die verwendeten Module auch echt blöd bei den Namen sind, denn die benennen offenbar Klassen in Kleinbuchstaben und den Klassennamen völlig dummsinnigerweise in den Methoden noch mal wiederholen.

Ungetestet:

Code: Alles auswählen

#!/usr/bin/env python3
from keypad import keypad as Keypad
from lcddriver import lcd as LCD


def main():
    lcd = LCD()
    lcd.lcd_clear()
    keypad = Keypad(columnCount=3)

    digits = ''
    while True:
        while True:
            digit = keypad.getKey()
            if digit is not None:
                break
        digits += str(digit) 
        lcd.lcd_display_string(digits, 1)


if __name__ == '__main__':
    main()

Re: Keypad Eingabe auf LCD Display

Verfasst: Mittwoch 12. Juni 2019, 15:30
von Fussel132
Super, das funktioniert. Danke