LED durch Script an- und ausschalten

  • Hallo,


    ich möchte an einem schon laufendem Pi, an dem schon ein paar Sachen hängen (IR-Empfänger und -Sender sowie Funk-Empfänger und -Sender) eine oder meherer LEDs anschließen, die dann je nach Ergebnis eines Script leuchten oder nicht. Zunächst geht es erst einmal um die LED. Das einzig brauchbare das ich gefunden habe sind diese hier: https://www.amazon.de/AZDelivery-KY-016-FZ0455-3-Farben-Arduino/dp/B07V6YSGC9/ref=sr_1_18?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=1C6Q72PAYFVGU&keywords=raspberry+led&qid=1654263657&s=computers&sprefix=raspberry+led%2Ccomputers%2C116&sr=1-18 (Affiliate-Link). Es wäre mir am liebsten ich könnte die LED einfach oben auf das Case packen und die Kabel hinten nach innen ins Case führen. Das sieht aber bei den verlinkten LEDs blöd aus. Gibt es da auch andere? Zur Not könnte man Löcher ins Case bohren und die LEDs so nach außen führen.


    Für das Ansteuern der IR-Sender und Funk-Sender brauchte ich nichts weiter machen als Lirc (IR) und wiringPi/433Utils zu installieren. Damit konnte ich alles steuern. Gibt es für die LEDs auch sowas?

  • Guten Tag,

    Wenn es dich nicht weiter stört, ein Löchlein in das Gehäuse zu bohren, dann wäre wohl diese Möglichkeit etwas für dich.

    Mit dieser RGB-LED kannst du in jede Farbe einzeln oder auch gemischten leuchten lassen. Dazu brauchst du noch ein paar Vorwiderstände und ggf eine Fassung.
    Die Ansteuerung ist auch mit WringPi möglich, jedoch sehr umständlich. Hier schließe ich mich der Aussage von hyle an - es geht mit GPIOZero bedeutend einfacher. Alternativ auch noch RPi.GPIO.
    Allerdings habe ich keine guten Erfahrungen gemacht, wenn man mehrere dieser GPIO-Steuerbibliotheken zeitgleich in einem Programm benutzen will.

    Falls dir diese 3 LED Farben, oder auch deren Mischfarben nicht ausreichen, du jedoch nicht mehr über ausreichend frei GPIO Ports verfügst, kann man die Ansteuerung mehrerer LEDs auch über einen, oder mehrere Port-Expander und den I²C- Bus bewerkstelligen.

    es grüßt euch
    Willy

    es grüßt euer
    Willy

  • Wenn es dich nicht weiter stört, ein Löchlein in das Gehäuse zu bohren, dann wäre wohl diese Möglichkeit etwas für dich.

    Mir wäre es schon lieber, man bekommt das anders hin. Dazu hab ich aber nichts gefunden.


    Was meinst du mit "Fassung"? Hinter deinem Link gibt es recht viele Sachen. Ich vermute ich würde die Fassung in die Bohrung einführen, die dann dort fest sitzt (https://www.reichelt.de/montag….html?&trstct=pol_3&nbc=1) und da kommt dann die LED rein? Wie tief sitzt die LED in der Fassung? Guckt die weit vorne raus, so dass ich die auch an der Oberseite des Gehäuse nach oben zeigend befestigen könnte oder sitzt die sehr tief, so dass man die nur sieht wenn man die Fassung an der Seite befestigt?


    Die von dir verlinkte LED ist 5mm, die Fassung 10mm. Würde als nicht passen?

  • Bei schon 2 verbauten "Sendern" würde ich mir langsam um eine stabile/ausreichende Stromversorgung Gedanken machen.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Guten Tag Reinhart,

    Ich habe dir nur den Link für LED Zubehör gegeben. Ja, die Auswahl ist groß.
    Es gibt die einfachen Plastikfassungen, die man in die Gehäusebohrung von oben einklickt, und von unten dann die LED mit dem dazugehörigen Fuß durchschiebt. Die sitzen relativ fest, und die LED schaut ca. zu zweidrittel aus der Fassung heraus.
    Dann gibt es diese Metallfassungen die man auch noch mit einer Mutter im Gehäuseinneren sichert. Hier gibt es einmal die, die aussehen wie ein kleiner Berg (Außenreflektor). Da schaut nur die Spitze der LED heraus, und dann das Gegenstück, die aussehen wie ein Taschenlampenreflektor (Innenreflektor). Hier bleibt die LED vollständig innerhalb des Reflektors. Hier kannst du auch die Suchfunktion verfeinern, wenn du ausschließlich Fassungen für 5 mm LEDs suchst. Oder einfach mal durchblätterst.

    Ich habe keine Ahnung welche Funktion diese LED(s) haben sollen, und von wo aus diese Anzeige überall gesehen werden soll.

    es grüßt euer
    Willy

    es grüßt euer
    Willy

  • mal was anderes. Ich hab noch ein paar LEDs zu hause für den IR-sender. Gehen die auch als leucht-led oder ist das technisch was anderes? Da könnte ich zumindest mla testen.

  • Brauchst Du eingentlich unbedingt RGB LEDs oder reichen Dir auch einfarbige?

    Die würden auch reichen. Macht das einen Unterschied bezüglich des Verbrauchs oder ist die Ansteuerung anders? Preislich liegen die glaube ich nicht weit auseinander.

  • Guten Tag,

    Da du keine umfängliche Aussage machst was du damit bezwecken willst, ist hier eine Beratung im eigentlichen Sinne nicht möglich.
    Klar kann man mehrere einzelne LEDs nebeneinander platzieren. Nur dann sollten die Farben der einzelnen LEDs auch unterschiedlich sein, sonst sieht man aus der Ferne keinen Unterschied welche LED gerade leuchtet und welche nicht.
    RGB LEDs haben den Vorteil das auch Mischfarben dargestellt werden können, was aber die Ansteuerung etwas aufwendiger macht. Zudem benötig man nur eine einzelne LED um verschiedene Statusinformationen in Form unterschiedlicher Farben darzustellen, was auch die Eingriffe in das Gehäuse reduziert.
    Verwendet man unterschiedliche LEDs mit unterschiedlichen Farben, muss man zudem beachten, dass nicht alle LED-Arten ( Farbabhängig ) bei der selben Spannung und dem gleichen Strom auch gleich hell leuchten. Hier muss man schon einigen Aufwand betreiben, in dem man die richtigen Vorwiderstandswerte ermittelt. Ansonsten sieht es wirklich bescheiden aus, wenn die eine Farbe gerade mal so zu erkennen ist, und eine andere Farbe strahlt wie ein FLAK-Scheinwerfer.
    Das gleiche Problem hast du allerdings auch bei den RGB-Modellen. Um hier eine gleichmäßige Helligkeit über das gesamte darstellbare Farbenspektrum zu erreichen sollte man in das Datenblatt der RGB LED schauen. Andernfalls bekommst du nicht alle Mischfarben so hin, wie sie über den Farbkreis (Farbmischung) sich eigentlich ergeben sollten.
    RGB LEDs können wie es der Name es schon sagt, die einzeln die Grundfarben R(ot), G(rün), B(lau) direkt darstellen. Für Mischfarben muss man die Ansteuerung via PWM umsetzen.

    es grüß euer
    Willy

    es grüßt euer
    Willy

  • Also, wenn du es ganz simpel willst, besorg dir eine einfarbige (zum beispiel rote) LOW-CURRENT LED (low current deshalb, weil die bei geringem Strom schon hell genug ist - die kannst du mit 3 mA vom Pi mit einem Vorwiderstand von ca. 430 Ohm direkt an einen GPIO hängen). Also das würde heißen, zwei Drähte von der LED an einen GPIO und an GND mit dem Widerstand zwischen GPIO und LED, Loch ins Gehäuse, LED mit Heißkleber fixieren, fertig.


    Ansonsten musst du eine normale LED mit 10-20 mA Strom und einem Vorwiderstand von ca. 150 Ohm an 5 V über einen Transistor schalten, was etwas mehr Bastelaufwand ist.

  • So, ich hab mir jetzt mal eine kleine Low-Current-LED in grün besorgt und sie an einen alten Piv1 angeschlossen (den Pi v1 hab ich genommen, falls etwas kaputt geht). So wie hier https://www.elektronik-kompend…/raspberry-pi/2608011.htm beschrieben geht das. Ich hatte nur noch Widerstände mit 220 Ohm. Ist das zu wenig für einen Dauereinsatz?


    Die LED soll am Ende leuchten solange bestimmte Geräte im Netzwerk eingeschaltet wird. Ich würde also mit einem Shell-Script prüfen ob ich sie noch anpingen kann und dann die LED an- oder aus schalten. Bei dem Script im Link oben bleibt die LED aber nur so lange an wie das Script läuft. Das "led.off()" ist also gar nicht nötig, da nach Ablauf des sleep die LED ohnehin aus geht. Ich müsste sie LED ja dauerhaft an schalten. Muss dazu das Python-Script dauerhaft laufen?

  • Das sind 6 mA Strom... das ist für einen einzelnen GPIO kein Problem. Man entnimmt normalerweise aus einem GPIO nicht mehr als 3 mA, damit man in der SUmme aller GPIOs unter 51 mA bleibt, das ist so ungefähr die Belastungsgrenze des 3,3-V-Spannungsreglers der frühen Pis. Mangels genauer Angaben ist nicht ganz klar, ob das auch für neuere Pis gilt.
    Also für eine LED ist das kein Problem.

  • Das meine ich nicht. Ich kann kein Python, nur Shell-Scripte. Es wäre für mich das einfachste ich erstelle die Skripte als Shell und lasse dann ein Python-Script, das einfach die LED an- oder ausschaltet ausführen. Das heißt ich müsste über ein Script die LED einmalig dauerhaft anschalten und sie sollte an bleiben auch wenn das Script nicht mehr läuft. Bis dann über ein anderes Script die LED wieder ausgeschaltet wird.

  • Hier mal ein Beispiel wie das ganze in Python aussehen könnte:

    Von mir natürlich ungetestet! Die Zeilen 9 - 19 müssen bezüglich IPs und GPIO angepasst werden. Auch die Namen sollten der Verständlichkeit wegen am Ende zu den tatsächlich verwendeten Clienten im Netzwerk passen

  • Wozu brauchst Du dann ein Python-Skript, wenn Du Shell / Bash kannst um die LEDs an oder auszuschalten und wozu mehrere Skripte?

    Weil ich nicht weiß wie ich die mit der Shell schalten kann. Dazu habe ich nur Code-Schnippsel in Phyton gefunden.

  • pigpio hat bei mir nicht funktioniert, ich schalte das jetzt über sysfs, ist einfacher.


    Ich hab auch soweit alles zusammen, LED leuchtet wenn ein bestimmtes Netzwerkgerät eingebunden ist. Ich hab mal testweise ein kleines Loch für die LED in ein altes Pi1-Case gebohrt. Blöderweise war das mit einem 5mm-Bocher zu klein und mit einem 6mm-Bohrer zu groß. Sind die LEDs nicht genau 5mm im Durchmesser? Hab mal einen meiner IR-LEDs versucht, auch die passt nicht, hat also die gleiche Größe wie die Leucht-LED.


    Mein Plan war 3 solcher LEDs in einem Pi3 einzubauen, an dem schon 4 Sachen hängen: IR-Sender inkl. IR-LED, IR-Empfänger, Sender für 433-Mhz-Funk und einen Funk-Empfänger. Ich denke genügend freie Pins sollten da sein. Oben schrieb aber jemand (#5) es könnte Probleme mit der Stromversorgung geben? Das bezog sich aber evtl. auf RGB-LEDs? Brauchen die mehr als die von mir verwendete Low-Current-LED?


    Widerstände hab ich ja einen mit 220 Ohm rangehängt. Könnte es Probleme geben wenn ich mehr LEDs nutze?