Hoch- und runterfahren mittels Taster (incl. Status-LED)

  • Ich habe den Post jetzt nicht vor Augen, aber ich glaube, er will damit damit das hier verhindern (ich zitiere mich einfach mal selbst):



    Da ich wie gesagt aber kein Problem darin sehe, habe ich auf Maßnahmen dagegen verzichtet.



    Dem muß ich leider wiedersprechen, ich hatte den "Hänger" beim Booten so gefühlte alle 2 mal, und das nervte gewaltig, da man das erst gemerkt hat,
    wenn man schon auf dem Sofa saß. :baeh2:


    Mit dem Elko dazwischen läuft´s Perfekt, muß aber zum Herunterfahren überbrückt werden, da das skript bei mir jetzt nur jede sekunde abgefragt wird, um Prozessorlast zu sparen!

    Edited once, last by Pieper ().


  • Dem muß ich leider wiedersprechen, ich hatte den "Hänger" beim Booten so gefühlte alle 2 mal, und das nervte gewaltig, da man das erst gemerkt hat,
    wenn man schon auf dem Sofa saß. :baeh2:


    Mh, das kann ich zwar bei meinem Aufbau nicht nachvollziehen, aber gut dass es dafür eine Lösung gibt.


    Quote

    Mit dem Elko dazwischen läuft´s Perfekt, muß aber zum Herunterfahren überbrückt werden, da das skript bei mir jetzt nur jede sekunde abgefragt wird, um Prozessorlast zu sparen!


    Ich hatte mich damals testweise an eine gute Zeit rangepirscht, und erst unter 0,5 Sekunden überhaupt eine zusätzliche Prozessorlast bemerkt.

  • Hallo, wollte mal fragen ob ich auch einen kleineren bzw. Größeren Widerstand als Pull-Up benutzen kann?


    Gruß Felix

  • Dir geht es wahrscheinlich darum, dass Du nicht extra für nen 5ct. Widerstand loslaufen musst, weil Du noch welche da hast?
    Ich sag mal so: Probiere es aus!
    Solange Du nur 3V auf die GPIO's gibst, kann da eigentlich nix passieren.


    Nutze ein kleines Script dazu, um den "Schwellenwert" zu prüfen:

    Code
    while 1:
    print GPIO.input(XXX)


    (Ich gehe mal davon aus, das Du damit etwas anfangen kannst. Wenn nicht, frag!)


    Solange bei gedrücktem Taster IMMER ein anderer Wert als bei nicht gedrücktem Taster erscheint, ist der Widerstand geeignet.

    ...and write down with pencil&paper...
    Where can i download "pencil&paper" ?

  • Gibt es da vielleicht irgendeine Formel, mit der ich mir das bei jedem Widerstand ausrechnen kann den ich noch zuhause hab, ob der funktioniert oder hilft nur ausprobieren?

  • Wenn ich das richtig im Kopf habe beträgt der interne Pullup 300k, und es wird empfohlen bei externer beschaltung nicht unter 1k zu gehen. Also mehr als genügend Spielraum, sollte man meinen :)

  • Gute Idee, das Shutdown-script. Ich habe es bei meinem Webradio-Projekt in Verbindung mit dem Watterott RPi-Display eingesetzt. Auf diesem ist ein Taster an Pin 15 vorgesehen, das script entsprechend angepasst. Shutdown funktioniert. Neustart brauche ich eigentlich nicht, da nach dem Runterfahren das Netzteil ausgeschaltet wird und der Pi beim Einschalten wieder startet.

  • Ich habe meinen Raspberry auch in ein Gehäuse gebaut. 1 Taster und zwei LED´s sind in der Front verbaut. Mittels Taster kann ich den Raspberry nun rauf und runter fahren. Den aktuellen Betriebszustand zeigen mir die zwei LED´s an. Die blaue LED für Betrieb ist nach dem Plan von Kernkrank verdrahtet. Die Standby LED habe ich mittels einer kleinen Schaltung mit zwei NPN Transistoren verwirklicht. Klappt soweit auch sehr gut. Es leuchtet je nach Betrieszustand entweder die Amber farbene für Standby oder eben die Blaue für Betrieb.
    Wie ließe sich das ganze mittels eines Scriptes umsetzen?


    Wenn es jemand interessiert, hier der Link zum Schaltplan


    Link


  • Die Standby LED habe ich mittels einer kleinen Schaltung mit zwei NPN Transistoren verwirklicht. Klappt soweit auch sehr gut. Es leuchtet je nach Betrieszustand entweder die Amber farbene für Standby oder eben die Blaue für Betrieb.


    Schön gemacht, danke für's teilen! :thumbs1:


    edit: Unsinn gelöscht...

  • Hi,
    unter OpenElec wird das nicht so gehen, oder??
    Ich nutze den Pi hauptsächlich für Hyperion und bin mit der OE-Version 3.2.4 von .bismark mehr als zufrieden.


    Und um auch was beizusteuern: Die CPU-Last kann man wohl über eine Interrupt-Lösung minimieren:


    [code=php]
    # Import the modules to send commands to the system and access GPIO pins
    from subprocess import call
    import RPi.GPIO as gpio

    # Define a function to keep script running
    def loop():
    raw_input()

    # Define a function to run when an interrupt is called
    def shutdown(pin):
    call('halt', shell=False)

    gpio.setmode(gpio.BOARD) # Set pin numbering to board numbering
    gpio.setup(7, gpio.IN) # Set up pin 7 as an input
    gpio.add_event_detect(7, gpio.RISING, callback=shutdown, bouncetime=200) # Set up an interrupt to look for button presses


    loop() # Run the loop function to keep script running[/php]


    Quelle: Pi-Supply

    Jede Hilfe das mit OE zum laufen zu bringen wäre klasse!!

    Edited once, last by Trantor ().

  • Openelec ist anders gestrickt als raspbmc. Python Scripte sollen aber auch in Openelec laufen, da sind aber hier die Programmierer gefragt.:denker:
    Das ist übrigens auch der Grund weshalb ich Openelec den Rücken gekehrt habe.


  • Interessantes Script. Leider kann ich dazu nicht viel sagen, da ich das Ursprungsscript schon mit null Python Wissen zusammen gezimmert habe :shy:


    rpi.gpio auf OpenElec wird schwierig, da es dort keinen Paketmanager gibt, und wohl auch ein paar libs fehlen.

  • Hallo zusammen,
    das Tutorial finde ich schon einmal super. Vielen Dank dafür.
    Nun bin ich wirklich nicht der Elektronik-Spezi, daher entschuldige ich mich
    bereits vorab für meine Frage.


    Ihr würde gerne einen beleuteten Taster am PI verwenden.


    Allerdings sollte die LED unabhängig vom Taster geschaltet werden können.


    Alle LED-Taster, die ich so sehe, sprechen von 220V Schaltspannung oder mindestens mal 12/24 Volt.


    Wie kann man so etwas am PI realisieren und wo finde ich einen entsprechenden Taster, vozugsweise IP65 mit mindestens 30mm Durchmesser?


    Hat jemand eine Idee?


    Liebe Grüße


    Wuppi

  • Quote

    daher entschuldige ich mich
    bereits vorab für meine Frage.


    Hier braucht man sich doch nicht für seine Fragen entschuldigen, dafür ist das doch ein Forum.:rolleyes:


    Auf die Schaltspannung braucht du nicht achten. Die Schaltspannung sagt nur aus mit welcher maximalen Spannung der Taster betrieben werden darf.
    Wichtig ist nur das ein Schließer bzw. Wechsel Kontakt vorhanden ist.


    Falls du soetwas meinst: Klick


    Das Problem wird die eingebaute LED sein, weil die Taster die ich gefunden habe, die LED mit 6 - 24 Volt betrieben wird. wenn ich das richtig sehe kann man den von mir verlinkten Taster zerlegen und den Vorwiderstand anpassen. Ist aber nur eine Vermutung.

  • Nachgebaut, led weggelassen...funktioniert wunderbar! vielen dank dafür!!!


    Edit: Habe den Pi mit dem PiUSV erweitert und ins auto gebaut. Bin total zufrieden mit der hier erklärten Lösung und mit dem PiUSV. Kann ich nur empfehlen!!

  • Hey,
    ich finde die idee sehr interessant. Wuerde ich gerne mal testen.
    Allerdings bin ich ein absoluter Beginner in der Elektrowelt, zumindest in der praktischen. Kann einer von euch vielleicht mir eine einkaufsliste erstellen, ala amazon wunschzettel?
    Das würde mir sehr helfen.
    Da ich nicht löhten kann wäre so ein Steckbrett ne schicke Sache glaube ich. Waere echt toll wenn das einmal einer zusammenstellen koennte.
    Danke im vorraus.


    Der bastler

    Lasst uns die Welt besser machen!

  • Hallo,
    ich möchte das originale Tut von Kernkrank einsetzen, allerdings mit einem anderen GPIO für die LED.
    Das ist aber nicht mein Hauptproblem. In meinem Image hatte ich früher mal die RTC nach Raspiprojekt.de eingesetzt, wo ja GPIO3 (pin5) benutzt wird. Da ich gemerkt habe, dass mir der Taster wichtiger ist, habe ich hoffentlich alles rückgängig machen können und danach auch einen Neustart durchgeführt.
    Trotzdem passiert leider nichts.
    Müsste nicht nach dem manuellen Start von shutdown.py mit

    Code
    sudo ./shutdown.py


    unter /sys/class/gpio der gpio3 mit dem value "1" erscheinen, das dann bei Tastendruck auf den Wert "0" springt?


    Ich habe dem Programm schon die Besitzer pi, rrot, gpio gegeben, hat aber nicht geholfen.


    Könnte es vielleicht daran liegen, dass ich statt eines 10K-Pull-up einen 9,7KOhm Widerstand genommen habe. Ich habe keinen passenden, wäre dann besser einen noch größeren Widerstand zu nehmen?

    Viele Grüße
    DocAdams

    1x RaspberryPi 2, 1x RaspberryPi 3, 1x OpenELEC, 1x RaspberryPi 4 mit ioBroker ,

    Edited once, last by docadams ().

  • Ich habe gerade mal nachgeschaut, unter /sys/class/gpio finde ich das Verzeichnis gpiochip0 und die beiden Dateien export und unexport. Funktionieren andere Python Scripte bei dir?


    Könnte es vielleicht daran liegen, dass ich statt eines 10K-Pull-up einen 9,7KOhm Widerstand genommen habe. Ich habe keinen passenden, wäre dann besser einen noch größeren Widerstand zu nehmen?


    Daran liegt es garantiert nicht. 10k ist bei 3,3V als Pullup ein Standardwert, weil man damit auf der sicheren Seite ist. Mit Kanonen auf Spatzen schießen, sozusagen ;)


    Geht nicht mal die Led an? Probiere mal, ob du sie hiermit zum leuchten bekommst.