Raspberry Pi - GPIO mit Python ansteuern; Taster drücken soll Prüfen ob EIN oder AUS. Wer kann helfen?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

ein else sollte zwischen den if funktionen, denn jetzt hast du eine Endlos-Schleife ..so wie es im Programm steht arbeitet python sich zeile für Zeile ab und nach dem ersten If wird auch der zweite If ausgeführt, da die datei mit aus aus dem ersten if schon erstellt wurde..dies passiert ziemlich schnell..du solltest ein polling für den Taster einbauen..damit nach dem ersten Programmdurchlauf nicht nochmal das Programm durchlaufen soll, wen nder taster länger gedrückt wurd..sondern man muss erstmal loslassen und erneut drücken dann wird wieder das Programm einmal ausgeführt ;)

Soll es wirklich "elif" GPIO.input (22) == 0 heißen, oder "elseif"? Vielleicht liegt der Fehler schon darin.

Danke für dein Antwort! "elif" ist ein fester Begriff in Python. else if, elseif oder else bekommen die Fehlermeldung "invalid Syntax"

0

Wieso wird GPIO nicht per Autostart angesteuert?

Hallo, ich habe bei meinem Raspberry Pi in die "/etc/rc.local" - Datei eine Datei eingetragen, welche ein Bild kopieren soll und dann eine LED anschalten soll. Wenn ich die Datei direkt starte, funktioniert alles problemlos. Wenn ich allerdings das Ganze per Autostart ausführen lasse kopiert es zwar aber die LED geht nicht an. Woran kann das liegen?

LG.

...zur Frage

Wie steuert man die Spannung bei einem GPIO Pin?

Also wie kann ich bei meinem Raspberry Pi die Spannung eines einzelnen GPIO Pins bestimmen (1V, 2V, 3V,...)

...zur Frage

LED Blitzer

Kann mir jemand eine einfache schaltung sogen, bei der nach drücken eines tasters eine oder mehrere leds nur sehr kurz aufblitzen ???

...zur Frage

Python TypeError: 'StringVar' object is not subscriptable?

Also ich muss ein Spiel mit Felder in tkinter programmieren, dieses Feld besteht aus 7x7 buttons die man drücken kann. Durch das drücken wird der Text auf den Button umgeschrieben. Nun bekomme ich aber folgende Fehlermeldung:

if buttons["text"] == " " and c_click.click == True:
TypeError: 'StringVar' object is not subscriptable

Der Code sieht dabei so aus (gekürzt)

import tkinter as tk
import tkinter.messagebox as mb
import random
from tkinter import *

class c_click():     click = True

root = tk.Tk() root.title("Spiel")

def spiel(buttons):

    if buttons["text"] == " " and c_click.click == True:         buttons["text"] = "W"         c_click.click = False     elif buttons["text"] == " " and c_click.click == False:         buttons["text"] = "B"         c_click.click = True

buttons = StringVar()

button1=Button(root, text=" ", font=('Arial 30 bold'), \                height = 1, width = 3, command = lambda:pahtum(button1)) button1.grid(row = 1, column = 0, sticky = S+N+E+W)

if __name__ == '__main__':     spiel(buttons)     root.mainloop()

Im Code oben ist nur ein button zu sehen, alle 49 buttons hier rein zu kopieren wäre sinnlos

Seltsam finde ich aber, dass ein Button, wenn ich drauf drücke jenachdem trotz der Fehlermeldung mit B oder W beschrieben wird. Also was hat

TypeError: 'StringVar' object is not subscriptable

zu bedeuten und wie fixxe ich das?

Danke

...zur Frage

Raspberry Pi falsche ausgabe bei Input?

Ich habe einen Raspberry Pi 2 mein Problem ist. Dass ich bei folgendem Programm nur ausschließlich 0 als Ausgabe erhalte, wenn ich gar nichts auch kein Kabel an die entsprechende GPIO Schnittstelle angeschlossen habe. sobald ich ein Kabel dort anschließe erhalte ich 1 und 0 in unregelmäßigen Wechseln. Und dass obwohl das kabel an nichts angeschlossen ist. Lediglich, wenn der Port Teil eines Stromkreilaufs wird, erhalte ich ausschließlich 1. Inzwischen habe ich es aufgegeben einen Button anzuschließen...

 #!/usr/bin/python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(21, GPIO.IN)


while True:

      print(GPIO.input(21))
      time.sleep(2)
...zur Frage

Wie kann ich in Python einen Zeitraum abfragen?

import time

zeit=time.strftime("%H:%M")

if zeit == "20:00": print("5")

Wie muss es heißen damit man zum Beispiel einen Zeitraum abfragen kann zum Beispiel von 20:00 Uhr bis 21:00 Uhr?

...zur Frage

Was möchtest Du wissen?