While-Schleife mit 2 GPIO Bedingungen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo, ich habe folgendes Problem: Ich habe eine while-Schleige, die solange laufen soll, bis einer von zwei Knöpfen gedrückt wird, hier mein Script, aber es funktioniert nicht...

    Code
    while True:
                    if GPIO.input(OPFER_TASTE) == True:
                            while (GPIO.input(17) == False or GPIO.input(21) == False):
                                    display_text_2()
                            display_text_3()
                    else:
                            display_text_1()

    Ich Hoffe ihr könnt mir helfen...


  • Hier nun der komplette Code. Und zu meinem Problem: Ich will, das einer von beiden GPIO´s gedrückt werden muss, damit die while-Schleife unterbrochen wird, in dieser Situation, lässt jedoch nur die while Schleife mit dem GPIO 17 abbrechen. Wo liegt dort der Fehler?

  • versuch mal:

    while ( ( GPIO.input(17) and GPIO.input(4) ) == False):

    ich kann kein Pyton aber beide müssten doch zusammen true sein damit nix zu display_text_2 führt

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (7. Juni 2014 um 10:10)


  • Nein es ist so, dass einer von beiden gedrückt werden soll, damit es display3 angezeigt wird, wenn keiner gedrückt ist, display2. Es müssen nicht beide zusammen gedrückt werden.

    hab ich auch nicht geschrieben !

    wenn nur einer gedrückt wird ist and nicht erfüllt und Text2 kommt

    dein oder stört mich

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)


  • Ja, du hattest Recht... jetzt funktioniert es. Allerdings habe ich nun ein anderes Problem, wie kann ich dann entscheiden, welcher der beiden Knöpfe gedrückt wurde?

    das fragst du danach ab wenn festgestellt wurd das einer von beiden gedrückt wurde

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • na

    if (GPIO.input(17) == False) ....
    else

    vielleicht ?

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)


  • Ok, danke.

    funktioniert das nun ?
    zeig mal deinen Code


    Ich habe nun ein letztes Problem: Wie kann ich dann je nach gedrücktem Knopf ein Strom an unterschiedlichen GPIO´s ausgeben lassen?

    na gib doch mit dem Text ein Signal aus, wie gesagt ich kenne mich mit Phyton nicht aus, aber es gibt ja Beispiele hier

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)


  • na

    if (GPIO.input(17) == False) ....
    else

    vielleicht ?

    Ich muss gestehen, ich hab keine Ahnung von Python, aber in vielen anderen Sprachen wäre diese Abfrage ein nogo.
    Man sollte nie direkt auf False überprüfen. Korrekt sähe deine Abfrage so aus:

    Code
    if not GPIO.input(17) :


    Hier findest du es als Beispiel bei Delphi, aber intern kann jede Sprache das nochmals anders händeln.


  • Ich muss gestehen, ich hab keine Ahnung von Python, aber in vielen anderen Sprachen wäre diese Abfrage ein nogo.

    in C würde ich das auch nicht machen, aber da ich phyton nicht kenne.....


    Man sollte nie direkt auf False überprüfen

    erstens war das nicht direkt und zweitens,
    das erklär mal, ob ich auf true oder false teste bleibt normalerweise immer dem Progger überlassen, sonst hätte true und false keinen Sinn.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (8. Juni 2014 um 11:32)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!