GPIO Input und LED zusammen nutzen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    also eins Vorweg: ich bin mehr Informatiker als Elektroniker und bisher nur ein bisschen mit LEDs und Tastern im GPIO gespielt. Aber nun habe ich ein beruflichen Anwendungsfall bei dem eine kleine elektronische Schaltung am Raspi genutzt werden soll.

    Im Grunde ganz easy: über einen potentialfreien Kontakt unseres Dieselgenerators soll signalisieren wann dieser läuft. Ich habe dazu einen simplen "Pullup-Schaltkreis" gebaut. Als Widerstand habe ich 10K Ω genommen und den Kontakt des Dieselgenerators simuliere ich mit einem Taster.

    Nun möchte ich allerdings noch eine LED steuern. ABER: ich möchte die LED nicht über die GPIOs des Raspi steuern, da ich dann ja einen Hintergrundprozess bräuchte der auf die Signaländerung reagiert und die LED schaltet. Hängt der Prozess schaltet die LED nicht. Daher würde ich sie gerne mit über die Schaltung steuern. Da sie auch nur "an oder aus" sein soll, dürfte das ja grundsätzlich kein Ding sein.

    So naiv wie ich dabei war, habe ich die LED einfach mal hinter den Pullup-Widerstand und vor den Taster gepackt. Wenn der nun schließt, geht die LED auch an. Nur zu dumm, dass ich vor der LED noch Spannung habe, damit fällt der GPIO nicht auf Low (mal davon abgesehen das die 10K für die LED etwas zu viel ist und sie daher nur glimmt :lol: )

    Hab mal geschaut was ich so an Bausteinen da habe (hatte mir mal dieses Set [Anzeige] gekauft). Dachte an etwas mit den Transistoren, aber komme auf keine Logik die mir wirklich helfen würde.

    Hat jemand für mich einen Tipp, wie ich das trotzdem realisiert bekomme?

    lg,
    Funny

  • Das ist recht einfach: einen kleineren Widerstand nehmen ;)

    Also: von 3.3V einen kleinen Widerstand auf die LED, auf der anderen Seite der LED den Schalter nach Masse.

    Vorsichtshalber koennte man den 10k noch parallel zu LED und dem kleinen Widerstand schalten, damit der GPIO sicher High sieht.

    - - - - - -

    Eine reine Softwareloesung geht aber auch. Das braucht garantiert keinen eigenen Prozess fuer die LED (und auch keinen Thread).

    Einmal editiert, zuletzt von Tell (13. September 2017 um 19:57)

  • Also ich glaub du denkst zu kompliziert...

    Ein Hintergrundprozess hängt sich aber nicht einfach auf. Wenn doch hat man grundlegend etwas falsch gemacht, und sollte sein Informatik-Studium wiederholen :fies:

    Ansonsten bedarf es keinen RaspberryPi - beziehungsweise verstehe ich generell nicht was der Pi überhaupt für eine Rolle spielt? :-/ Wieso soll ein GPIO auf LOW fallen wenn der Taster gedrückt wird? Welche Reaktion wird dadurch ausgelöst?

  • Tell
    Okay. Ich bin grad nicht sicher ob ich folgen kann :lol: Also so?:


    Code
    3.3V-----1K--+--LED-----Taster-----GND
                 |
                 +-----10K-----GPIO

    Wie könnte ich das denn in Software lösen ohne eigenen Prozess? Ich wäre jetzt mit einem Python-Script und Event-Handler dran gegangen, genau das wollte ich eigentlich nicht.

    meigrafd
    Ja, natürlich nicht "einfach so", schon klar ;) Aber ich wollte halt eine Lösung bei der die LED völlig unabhängig von der Software läuft. Auch wenn der Code für diese Implementierung sehr überschaubar ist, kann ein Softwarefehler ja nie ganz ausgeschlossen werden. Außerdem: da das in elektronischer Form ja nicht so kompliziert sein sollte wollte ich es auch einfach so gelöst bekommen um zu sehen wo da mein Denkfehler ist. Um langsam mal komplizierte Schaltungen zu bauen, sollte so was wie dies hier ja ein Klacks sein :D

    Und warum dann überhaupt der Raspi? Auf dem Pi läuft NRPE den wir mittels Nagios abfragen. So bekomme ich den Status des Dieselgenerators in Nagios und kann damit dann Benachrichtigungen an die Bereitschaft und die Betriebstechniker raus schicken.

  • Okay. Dann hatte ich dich falsch verstanden. Aber klar logisch. Sonst würde die Schaltung von GPIO und GND nie passieren :D

    Also in meinen Versuchen mit der LED hat 1K immer zu guten "Leuchtergebnissen" geführt. Laut Datasheet:

    Forward Voltage: Min 1.8V, Typ: -, Max: 2.2V

    Mom, damit ich mal selber rechne: 3.3V Betriebsspannung - 2.0V (Mittelwert für FV) = 1V / 0,002A = 500 Ohm als Vorwiderstand.

    Einmal editiert, zuletzt von FunnyDingo (13. September 2017 um 21:09)

  • Zitat von "FunnyDingo" pid='299597' dateline='1505333609'


    Ich bekomme drei Anschlüsse an einer Klemmleiste. Einmal Vcc und dann kann ich offen und geschlossen abfragen. Denke das läuft über ein Relais.
    Gesendet von iPhone mit Tapatalk

    potenzialfreier gschlossen Kontakt?

    warum nicht 3,3V -> Kontakt -> GPIO -> R -> LED -> GND und auf high abfragen?

    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)

  • Weil dann der heilige Schutzwiderstand vor dem GPIO fehlt!
    Wie wäre es damit einfach, hinter dem Kontakt 130k->LED->GND und 1k->GPIO parallel zu schalten...

    Korrektur: Natürlich nicht 130k, sondern 130 Ohm.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

    Einmal editiert, zuletzt von Gnom (14. September 2017 um 15:52)

  • nenene so nicht

    wer noch sicherer will kann

    Code
    3,3V -> Kontakt -> | -> R -> LED -> GND und auf high abfragen
                       1k
                      GPIO

    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 (14. September 2017 um 15:23)

  • ach was,

    NEIN sagtest du nicht
    was sollen deine 130k?
    was soll dein parallel?

    wenn du so schreibst dann versteht das nur einer nämlich du.

    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)

  • So jetzt habt ihr ja quasi schon genau das beschrieben was ich gestern als Tipp von Gnom per PN bekommen habe und nun auch etwas abgewandelt umgesetzt habe:

    Code
    3.3V--+--[K1]--+--[1K Ohm]-----[GPIO17]-----[10K Ohm]
          |        |                                 |
          |        +--[220 Ohm]-----[LED1]----------GND
          |
          +--[K2]--+--[1K Ohm]-----[GPIO22]-----[10K Ohm]
                   |                                 |
                   +--[220 Ohm]-----[LED2]----------GND

    Hintergrund:
    K1 ist besagter Kontakt für den Betrieb. Springt der Generator an, schließt die Regeltechnik K1, die LED1 geht an und am GPIO17 liegt HIGH an.

    K2 ist nun ein Kontakt für "Betriebsbereit" und im Normalfall geschlossen. Wenn die Regeltechnik eine Störung feststellt und K2 öffnet, geht LED2 aus und mein GPIO22 fällt auf LOW => Störung. Sollte etwas bei der Übertragung zwischen meiner Schaltung in K2 nicht passen, fällt der GPIO22 ja ebenfalls auf LOW => Störung. So hab ich mein Überwachungssystem also auch direkt überwacht :)

    Hab das ganze schon als Experementierschaltung aufgebaut und läuft so wie ich es mir vorstelle. Die Techniker legen die Tage die Leitungen zwischen Regeltechnik und RZ und dann können wir das in Betrieb nehmen.

    Ich danke allen für die Tipps und der Nachsicht zu meinem elektrotechnischen Unwissen :lol:

    Einmal editiert, zuletzt von FunnyDingo (14. September 2017 um 15:51)

  • Ups, das sind natürlich 130 Ohm, nicht 130 k .
    Aber was parallel heißt, wird auch Dingo noch kapieren - das muss ihm jar sicher nicht erklären.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Zitat von "Gnom" pid='299730' dateline='1505397079'


    Ups, das sind natürlich 130 Ohm, nicht 130 k .

    eben lass das Elektronik Tipps geben sein, erwähnte ich ja schon öfter bei dir, denn
    gut gemeint ist nicht gut gemacht.

    Zitat von "Gnom" pid='299730' dateline='1505397079'


    Aber was parallel heißt, wird auch Dingo noch kapieren - das muss ihm jar sicher nicht erklären.

    ich würde zu gerne wissen was DU unter parallel an dieser Stelle verstehst, aber eigentlich nicht wirklich

    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 (14. September 2017 um 17:55)

  • Weißt du jar, mach doch ein eigenes Forum auf, wenn du glaubst, für alles das Maß der Dinge zu sein.
    Die Lösung hab ich Dingo schon gestern Abend PN geschickt (mit der korrekten Widerstandsgröße), weil mir genau diese Diskussionen hier auf die Nerven gehen . Er hat's längst umgesetzt und es funktioniert auch. Thema längst erledigt.
    Und falls du den Unterschied zwischen Parallel- und Reihenschaltung wirklich nicht kennen solltest, weißt du sicher, wo du nachschauen kannst.

    OVER!

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

Jetzt mitmachen!

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