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

  • Hallo zusammen,

    zuerst einmal bin ich Anfänger. Daher ist es auch nicht sonderlich überraschend, dass es nicht funktioniert.

    Ich vermute, dass der Fehler in meiner elektronischen Schaltung liegt, trotzdem werde ich auch meinen Code einfügen.

    Der Fehler: Der Taster lässt meinen Pi vom ausgeschaltenen in den eingeschltenen Zustand wechseln, sprich er bootet beim Drücken des Tasters. Das war's dann aber auch mit dem Funktionieren. Der Pi möchte beim Drücken des Tasters nicht Herunterfahren, wenn ich ihn aber per "sudo halt" o. ä. herunterfahre, dann kann ich ihn wiederrum mit dem Taster starten. Mit rs.local habe ich noch nichts gemacht, ich starte das Python-Skirpt immer manuell.

    Der Code:

    Die Elektronik: Ich hoffe, dass man alles Relevante auf den Bildern sehen kann - wenn nicht einfach fragen. Der Pullup-Widerstand ist 10kΩ groß, der Vorwiderstand der LED 560Ω. Warum ich Pin #11 für die LED genommen habe, liegt daran, dass ich meine in Erinnerung zu haben, dass ich da mal irgendetwas mit einem internen Pullup-Widerstand gemacht habe. Was/Wie/Warum weiß ich leider nicht mehr. Wollte mal diese Fehlerquelle ausschließen.


    Falls die Frage schon voher einmal geklärt wurde, muss ich mich entschuldigen. Ich habe die 20 Seiten nur auf die Schnelle überflogen, nicht genaustens studiert.

    Vielen Dank bereits im Vorraus für eure Bemühungen!

    AGADA1

  • Hoch- und runterfahren mittels Taster (incl. Status-LED)? Schau mal ob du hier fündig wirst!

  • Das Script ist Mist. Mal davon abgesehen dass das Script keinerlei Befehl zum herunterfahren beinhaltet, nutzt es kein Interrupt. Verwende stattdessen dieses: https://www.forum-raspberrypi.de/Thread-tutoria…34461#pid134461
    Oder mit BlinkLED Unterstützung: https://www.forum-raspberrypi.de/Thread-tutoria…39248#pid139248

    Quelle: FAQ --> Nützliche Links / Linksammlung

  • Hallo,

    vielen Dank für die schnelle Antwort. Den Herunterfahren-Befehl habe ich entfernt, um diesen als Fehlerquelle auszuschließen. Leider funktioniert bei mir auch Dein Skript nicht :neutral: .


    Nachdem ich einen Stecker in das richtige Loch gesteckt habe, funktioniert Alles bestens. Herzlichen Dank!

    AGADA1

    Einmal editiert, zuletzt von AGADA1 (15. November 2015 um 16:48)

  • Klasse!!! Habe zwar bisher nur dein Tut gelesen und gerade mal ~2 Wochen Pi/Linux-Erfahrung, aber: damit kriege ich das hin!!
    Probleme wird mir wahrscheinlich wieder Jessie bereiten, bei dem das doch oft ein 'bißchen' anders funktioniert, als bei Wheezy u.a. ... trotzdem: DANKE!!

    Einmal editiert, zuletzt von Turael (16. Dezember 2015 um 10:29)


  • Du solltest außerdem den Thread mal durchlesen, das Script ist veraltet und braucht ziemlich viel CPU Last. Du solltest mit interrupts arbeiten.

    Funktioniert es dann genau so wie das aus Seite 1 und muss ich anstatt den Code, deinen Code einfügen oder muss ich noch mehr beachten?

    Funktioniert das auch unter OSMC mit angepassten Pfaden?
    Sorry für die komischen Fragen, kenne mich im Linux gar nicht aus und arbeite nur nach Tuts...

    VIelen Dank im Voraus.

  • Hi,

    die Möglichkeit den raspberry per Taster Herunterzufahren bzw. zu starten interessiert mich auch brennend. Hat das schon mal jemand bei nem raspberry mit verbautem Hifiberry DAC+ umgesetzt? Der sitzt nämlich auf der Stiftleiste - allerdings glaube ich nicht, dass der die Pins alle nutzt...

  • Hallo ihr lieben für mich ist das alles hier noch neuland und meine Lötskills sind nicht vorhanden bis Grottenschlecht. ^^
    Dennoch habe ich mich dran versucht Kernkranks Idee nach zu bauen mit erfolg.
    Guuut ich gebe es zu hab was geändert die Verbindung zum Pin1(3,3V) und denn daran angeschlossenen [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Widerstand 10k Ohm gibt es bei mir nicht, aber es läuft wenn er hochgefahren ist leuchtet die LED und wenn ich denn Taster drücke Fährt er in Ruhestand halt shutdown -h now und die LED geht aus und wenn ich wieder denn Taster drücke fährt er wieder hoch.[/font]

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Hier ein bild von Mein Raspberry Pi 2 Model B V1.1 Und wehe einer lacht über meine Lötstellen die habe ich mit zich Brandblasen Teuer bezahlt. :fies: [/font]
    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Und ja habe ein Lüfter angelötet der hängt an Pin2(5V) und an Pin6(GND) das war mal ein 4Pin CPU kühler Lüfter 12V 0,7A die blaue und die gelbe Leitung sind abgeschnitten und da er nur 5V bekommt ist die Drehzahl angenehm und fast nicht hörbar.[/font]
    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]06115-b081c03f-d8f2-4c20-b100-b9e34aa820b2.jpg[/font]
    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]06115-d26a2d94-60a5-45c1-97f6-c379e67731d3.jpg[/font]

    Einmal editiert, zuletzt von trilias (21. Januar 2016 um 07:23)

  • Willkommen im Forum.
    Aller Anfang ist schwer und letztlich sind Arduino, RasPi und Co doch genau dafür sehr gut geeignet - den Einstieg in die Technik zu finden.
    Der 10K Widerstand ist ein Pullup Widerstand. Der GPIO wird damit auf dem definierten Pegel "HIGH" gehalten und nur dann, wenn der Taster gedrückt wird, wird der Pegel "LOW". Lässt Du den Widerstand weg, dann empfängt der GPIO alles mögliche und es kann passieren, dass er hoch- oder herunterfährt, ohne dass der Taster gedrückt wurde. Du solltest dem GPIO also auf jeden Fall noch einen Pullup spendieren.


  • Willkommen im Forum.
    Aller Anfang ist schwer und letztlich sind Arduino, RasPi und Co doch genau dafür sehr gut geeignet - den Einstieg in die Technik zu finden.
    Der 10K Widerstand ist ein Pullup Widerstand. Der GPIO wird damit auf dem definierten Pegel "HIGH" gehalten und nur dann, wenn der Taster gedrückt wird, wird der Pegel "LOW". Lässt Du den Widerstand weg, dann empfängt der GPIO alles mögliche und es kann passieren, dass er hoch- oder herunterfährt, ohne dass der Taster gedrückt wurde. Du solltest dem GPIO also auf jeden Fall noch einen Pullup spendieren.

    Hmm habe es mehrfach getest bis jetzt macht er genau das was er soll gut erst seit ich denn 3V pin weg gelassen habe deswegen gibt es LOW und [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]HIGH nicht mehr.[/font]

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Hier so sieht es bei mir aus.[/font]
    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"] 06115-d26a2d94-60a5-45c1-97f6-c379e67731d3.jpg[/font]

    Einmal editiert, zuletzt von trilias (21. Januar 2016 um 07:15)


  • Ist vielleicht ein interner Pullup aktiviert? Ansonsten tu, was Du nicht lassen kannst. Ich möchte hier niemanden missionieren.

    Hmmm weis nicht werde mal sehen wie er sich verhält benutze ihn ja eh als Server schalte ihn nur aus zum Reinigen oder MicroSD wechsel ansonst läuft der 24/7.


  • Das Script ist Mist. Mal davon abgesehen dass das Script keinerlei Befehl zum herunterfahren beinhaltet, nutzt es kein Interrupt. Verwende stattdessen dieses: https://www.forum-raspberrypi.de/Thread-tutoria…34461#pid134461
    Oder mit BlinkLED Unterstützung: https://www.forum-raspberrypi.de/Thread-tutoria…39248#pid139248

    Quelle: FAQ --> Nützliche Links / Linksammlung


    Hallo,

    Ich nutze dieses Script allerdings erhalte ich folgenden Fehler:

    Code
    bigmitch@raspi01:~$ sudo python /home/bigmitch/shutdown.py
      File "/home/bigmitch/shutdown.py", line 36
       GPIO.add_event_detect(shutdownPin, GPIO.RISING, callback=Interrupt_event, bouncetime = 150)
          ^
    IndentationError: expected an indented block


    Verkabelt habe ich es genau wie im ersten Post.

    Hier nocheinmal mein Code:

    Ich benutze den Raspberry Pi 2 mit Ubuntu Mate. Hochfahren fuktioniert.

    Hoffe uf eure Hilfe.

    Grüße DaHu

  • Danke für die schnelle Antwort. Allerdings htte ich noch keinen Erfolg.
    Ich erhalte jetzt folgenden Fehler:
    /home/bigmitch/shutdown.py:22: RuntimeWarning: A physical pull up resistor is fitted on this channel!
    GPIO.setup(shutdownPin, GPIO.IN)
    Traceback (most recent call last):
    File "/home/bigmitch/shutdown.py", line 36, in <module>
    GPIO.add_event_detect(shutdownPin, GPIO.RISING, callback=Interrupt_event, bouncetime = 150)
    NameError: name 'Interrupt_event' is not defined

    Mein Code sieht jetzt so aus:

  • Hallo,
    schön dass dieser Pfad so lange schon lebt :bravo2: Allerdings verwirrt es mich etwas. Darum frage ich zur Sicherheit nach.

    Mein Problem ist, dass der GPIO-3 (PIN#5) bei mir schon benutzt wird vom Projekt Echtzeituhr.

    Andererseits nutze ich den Taster eigentlich nur zum geordneten Runterfahren, wenn ich am RasPi stehe und nicht am PC bin. Dann mache ich an der "Anlage" was, habe also ohnehin alles stromlos gemacht. Setze ich es wieder unter Strom, fährt der RasPi von alleine hoch.
    Die Funktion Hochfahren brauche ich also eigentlich nicht.

    Habe ich das richtig verstanden: GPIO-3 muss es unbedingt sein wegen der Funktion Hochfahren. Könnte ich also statt dessen jeden beliebig anderen noch freien GPIO zum Runterfahren nehmen?

    Viele Grüße
    DocAdams

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

  • Hallo DocAdams,

    zum Herunterfahren kannst Du jeden beliebigen GPIO verwenden - dort muss ja nur ein Pegelwechsel erkannt werden, wenn der TAster gedrückt wird.

    Du brauchst nur die dahinterliegende Software anzupassen.


    Ich habe mal etwas Ähnliches gemacht, da wurde in Abhängigkeit der Zeit, die der Taster betätigt wurde, eines von mehreren Kommandos gestartet. Das eine war ein Reboot, das andere ein Shutdown.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hallo DocAdams,

    schau mal hier nach...


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (15. Oktober 2017 um 10:46)

Jetzt mitmachen!

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