Das Leuchten einer externen LED im Raspi erfassen und Funktion auslösen

  • Hallo zusammen,

    in einem anderen Thread habe ich bereits mein Projekt beschrieben. Ich habe einen Batteriecomputer für meinen Van programmiert, der nun auch funktioniert!!!

    Kurzfassung meiner Frage: Kann ich eine LED (externes Gerät) mit einem Fototransistor "überwachen", der an einem PIN des Raspis hängt. Wenn die LED leuchtet, will ich an besagtem PIN ein HIGH anliegen haben.


    Nun aber zunächst noch den Aufbau meines Batteriecomputers, bevor ich die Frage detailliert beschreibe.
    Über den Stromsensor INA219, an den ein 100A Shunt angeschlossen ist, ermittle ich den aktuell fließenden Strom. Diesen frage ich 5 mal pro Sekunde ab und ermittle hierdurch was an Energie in die Batterie fließt und was entnommen wird. Beim Laden setze ich einen Wirkungsgrad von 80% an und beim Entladen habe ich mir die Tabelle des Herstellers meiner Batterie besorgt, die die Entladekurve bei unterschiedlichen Strömen darstellt. Für die Zwischenwerte berechne ich die Werte durch Anlegen einer Gerade. Somit berücksichtige ich den Peukert-Effekt ansatzweise.

    Als Anfangswert für die Kapazität setze ich eine volle Batterie voraus, mit der ich dann Arbeiten kann. Nun ist es aber so, dass ich natürlich Ungenauigkeiten habe, welche ich dadurch ausgleichen möchte, dass ich eine volle Batterie erkenne. Über die Spannung ist dies nicht möglich, deshalb würde ich gerne die Voll-LED des Solarladereglers als Referenz nutzen. Wenn diese leuchtet, ist die Batterie voll! Jedoch will ich das Gehäuse nicht öffnen, deshalb ziehe ich einen Fototransistor zur Abfrage in Betracht, oder habt ihr bessere Ideen?

    Den Fototransistor werde ich mittels eines 3D-gedruckten Plastikteils befestigen, so dass kein externes Licht stört. Entweder es ist dunkel, oder die LED leuchtet und es ist somit hell.

    Frage 1: Ist der Aufbau in meiner Zeichnung so denkbar?

    Frage 2: Was für einen Fototransistor kann ich hierfür nutzen? Ist einer der 3 hier beschriebenen denkbar? =>

    Link Fototransistor: [Anzeige]

    Typ - Maximale Spannung - maximale Leistung - Betriebstemperatur - Spektrale Spitzen- Lichtbeständigkeit (10 Lux) - Dunkle Widerstandsfähigkeit - Empfindlichkeit - Reaktionszeit: Rose und Drop
    GL5506------100 (VDC)-------90 (mW)-----------30 ~ +70 °C------------ 540 (nm)----------2 ~ 6 (kOhm)----------------0,15 (MQ/MOhm)-----0,6 (min)-----------30 und 40 (ms)
    GL5516------100 (VDC)-------90 (mW)-----------30 ~ +70 °C------------ 540 (nm)----------5 ~ 10 (kOhm)----------------0,2 (MQ/MOhm)------0,6 (min)-----------30 und 40 (ms)
    GL5526------150 (VDC)-------100 (mW)-----------30 ~ +70 °C------------ 540 (nm)----------8 ~ 20 (kOhm)----------------1.0 (MQ/MOhm)------0,6 (min)-----------20 und 30 (ms)

    Frage 3: Die LED ist grün, macht das einen Unterschied bei der Auswahl des Fototransistors?

    Frage 4: Gehe ich richtig in der Annahme, dass ich einen pnp-Fototransistor benötige? Ich möchte ja, dass am Pin36 ein positiver Wert anliegt!


    Dankeschön euch und eine entspannte Zeit =)

    Peter

    Einmal editiert, zuletzt von PanPeter (25. Dezember 2020 um 12:19)

  • Das Leuchten einer externen LED im Raspi erfassen und Funktion auslösen? Schau mal ob du hier fündig wirst!

  • Bzgl. Frage 3:
    Ja, grün dürfte durch die Serie ganz gut auswertbar sein. Grün hat. 490 - 575 nm Wellenlänge. Im Datenblatt GL55 Serie auf Seite 3 Sieht man, dass man noch ganz passable Werte bekommt - überhaupt wenn es in Richtung Gelb/Rot geht.

    Jeder der Fotowiderstände (es sind keine Fototransistoren) müsste funktionieren, wenn man die Beschaltung und Auswertung richtig auslegt. Am professionellsten wäre es eine OPV Komparator zu verwenden und den gewünschten Pegel als Referenz einzustellen. Aber ein passender Vorwiderstand als Spannungsteiler (3V3 gegen GND) sollte ausreichen. Am einfachsten Du baust die Schaltung auf und misst, was raus kommt...

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Danke hyle : Das sieht recht simpel aus und entspricht ja annähernd meinem Vorschlag. Jedoch wird hier nur ein LDR verwendet. Ein Aufbau wie dieser ist also ausreichend? Den Transistor kann ich weglassen, da ich ja keine Verzögerung in der Schaltung des Eingangs möchte, oder muss ich die Kapazität hier einfach deutlich kleiner Wählen um die Verzögerung zu minimieren?

    VeryPrivat : Danke für die Beurteilung des LDRs. Ich habe nach Fototransistoren gesucht und dann nur noch auf die Werte geschaut, jedoch nicht bemerkt, dass es ja LDRs sind. Der Link von Hyle besagt ja aber, dass die Idee so umsetzbar sein sollte, auch ohne Komparator.

    Ich würde es gerne so einfach wie möglich halten und habe keine Ahnung von Komparatoren um ehrlich zu sein...

    Nehmen wir mal den LDR mit dem kleinsten Widerstand aus dem von mir geposteten Set. Dann hat dieser im geringsten Fall 2kOhm, im schlechtesten 6kOhm bei voller Bestrahlung.

    Also 2 Rechnungen:

    R1 = 2kOhm & R2 = 4kOhm => es fallen an R2 2/3 der Spannung, also 3,33Volt ab.

    Mit R1 = 6kOhm & R2 = 12kOhm komme ich wieder auf 3,33 Volt an R2 und damit an Pin36.

    Sprich ich baue das mal so zusammen, teste was für einen Widerstand der LDR bei der Bestrahlung durch die LED hat und wähle dazu entsprechend den Widerstand R2 aus.

    • Offizieller Beitrag

    Den Transistor kann ich weglassen, da ich ja keine Verzögerung in der Schaltung des Eingangs möchte

    Das ist ein 1µF Kondensator und den brauchst Du, da der RPi ja ein digitales Signal, also an oder aus, will.

  • Also, Deine Überlegung mit dem 2K und 4K Spannungsteiler ist grundsätzlich richtig und zeigt, dass Du verstehst worum es geht:thumbup:. Ich hätte da aber einige Anmerkungen:

    • Ich würde NICHT mit 5V arbeiten, wenn es nicht notwendig ist. Ein kleiner Schaltungsfehler und der GPIO bzw. der gesamte Raspberry ist defekt. Nimm lieber 3,3V und einen etwas größeren Widerstand - Du wirst zwar die 3,3V nicht erreichen, das ist aber auch nicht notwendig (weiß die notwendigen Pegel des PI jetzt gerade nicht)
    • Die 4K wirst Du schwer bekommen. 4K7 wäre ein gängiger Standardwert... Der Pegel wäre aber in Deinem Fall (bei 5V) schon zu hoch.
    • Die Schaltung die Du übernommen hast (also die mit dem Kondensator) arbeitet vermutlich etwas anders: Der Kondensator wird entladen (GPIO als Ausgang und LOW). Danach wird der Ausgang als Eingang geschaltet und die Zeit gemessen, bis der GPIO wieder High wird. Je heller, desto schneller...
    • Der Vorwiderstand der LED dürfte zu klein sein: Vorwärtsspg. der LED ca. 2V. 3,3-2V=1,3V am Widerstand. Dadurch ergibt sich ein Strom von ca. 6mA (1,3V/220R = 6mA). Das ist etwas mehr als für den Raspberry empfohlen wird (ca. 3-4mA)
    • Ich würde vor dem GPIO noch 1K Widerstand schalten. Bei einem Schaltungsfehler zu GND/3V3 ist der Strom max. 3,3mA - das würde der Raspberry ohne weitere Probleme aushalten. Auch bei der Lösung mit dem Kondensator wäre das zu empfehlen (Entladestrom könnte kurzfristig zu hoch sein). Man müsste halt die Zeiten entsprechend anpassen...

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Ich meinte natürlich einen Kondensator, Transistor wäre hier mäßig hilfreich... =D

    Die Anmerkungen sind sehr hilfreich, danke fürs Teilen!

    Zitat

    Die Pegel bzw. Spannungswerte sind nicht in Stein gemeißelt. Sie unterliegen einer Toleranz. Ein GPIO-Eingang wird Spannungen unter 0,8 V als "Low" erkennen und Spannungen über 1,3 V als "High".


    Ich bin mir nicht ganz sicher ob ich dich richtig verstanden habe.

    So würde ich die Schaltung jetzt aufbauen, jedoch bisher ohne Kondensator. Ich muss gestehen, dass ich die Funktion des Kondensators in der Schaltung nicht verstehe. Warum will ich die elektrische Ladung speichern und warum ergibt das dann ein digitales Signal? Sorry für die doofe Frage.

    Gehen wir mal von dieser Schaltung aus:

    Ich glaube, ich hatte da vorhin einen Denkfehler. Wenn Licht auf den LDR scheint wird dessen Widerstand klein (2-6k bei dem Kleinsten). Hierdurch liegen am Pin des Raspi nur noch eine geringe Spannung an (gehen wir von 2k LDR +1k R3 aus und R2 mit 20k) ergeben sich am Pin von Raspi 0,43V und damit Low. Scheint jedoch kein Licht auf den LDR, erreicht dieser annähernd 0,25 MOhm, wodurch die gesamte Spannung am Pin des Raspi anliegt. Der maximale Strom am Pin des Raspi ist somit auf (3,3V / 3000Ohm = 0,0011A = 1,1mA) 1,1mA begrenzt.

    Das die Beschaltung "andersherum" ist, ist kein Problem, das kann ich ja im Programm anpassen. Liege ich aber nun richtig in der Annahme, dass sich der Spannungsteiler so verhält, oder habe ich einen Denkfehler? Das ist alles schon viel zu lange her... Peinlich, ich weiß!


    Daaaanke :))

  • Also das mit dem Kondensator ist im dritten Punkt meines letzten Beitrages erklärt: Du kannst die Lichtstärke auswerten, indem Du die Zeitdauer zum Laden ermittelst...

    Zu Deiner Schaltung und dessen Auslegung: Den R3 brauchst Du nicht berücksichtigen. Da der PI als Eingang geschaltet ist (bzw. sein soll), fließt kein Strom, folglich auch kein Spannungsabfall. Er dient nur als Schutz bei allfälligen Schaltungsfehlern (Schutzimpetanz)

    Wenn Du den 2K/6K LDR verwendest und einen 20K (wieder kein gängiger Wert) ergibt geben sich folgende Spannungen:

    Hell: 2K: 3,3V / (2K + 20K) * 20K = 3V

    Dunkel: 6K: 3,3V / (6K + 20K) * 20K = 2,5V

    Wenn Du Richtung 1,3/0,8V möchtest, musst Du also stärker gegen Masse ziehen - also R2 kleiner werden. Ich habe mich etwas mit Excel gespielt und würde 1K5 vorschlagen:

    Hell@2K: 3,3V / (2K+1K5)*1K5 = 1,41V

    Dunkel@6K: 3,3V / (6K+1K5)*1K5 = 0,66V

    So hast Du jeweils ca. 1/10V über dem vorgeschlagenen Pegel. Es kann aber durchaus sein, dass Du die Werte noch etwas anpassen musst weil eben die Pegel nicht genau definiert sind. Wenn die Pegel mehr Abstand benötigen, kann es sein, dass Du auch auf eine andere Beschaltung oder einen anderen Sensor zurück greifen musst.

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Ich danke dir vielmals, jetzt habe ich die Funktion des Kondensators in der Schaltung auch verstanden :)

    Ich glaube die Werte des LDRs sind anders. Er hat zwischen 2 und 6kOhm wenn es hell ist und 0,25Mohm wenn es dunkel ist. Oder deute ich die Beschreibung falsch?


    Daher habe ich die Widerstände anders gewählt und quasi ein Low im Falle von Helligkeit am LDR gewählt.

    Der LDR den ich gefunden habe, ist da aber sicher auch nicht die beste Wahl. Ich schaue mich heute Abend mal bei Conrad um! Was wären denn sinnvolle Werte (also Widerstand bei Helligkeit und Dunkelheit), nach denen ich schauen könnte?

    Und vielen Dank für deine ausführlichen Beschreibungen :)

  • Oh, Du hast recht. Danke, dass Du mitdenkst! Du hast recht, im Datenblatt GL55 Serie kommt das (für mich) etwas deutlicher rüber. GL5506 ist nicht angeführt, aber es ist klar was gemeint ist...

    Das macht die Sache aber bedeutend einfacher: Die Widerstandsänderung dunkel/Hell ist dadurch viel höher - eine Umwandlung in einen ordentlichen HIGH-Low Pegel viel besser. Technisch sind die Dinger somit ganz gut brauchbar (meiner Meinung).

    Nachdem die grundsätzliche Schaltung ja klar ist hätte ich schon längst meinen eigenen Tipp in #3 umgesetzt und vermutlich wäre ich auch schon fertig:

    Am einfachsten Du baust die Schaltung auf und misst, was raus kommt...

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

Jetzt mitmachen!

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