Arduino: LED und Lichtsensor
HTML-код
- Опубликовано: 24 авг 2024
- Arduino Tutorial: LED mit Lichtsensor / Fotowiderstand steuern
Einfache Schaltung mit einem Arduino Uno, einer LED und einem lichtempfindlichen Widerstand (Lichtsensor). Wenn die gemessene Helligkeit unter einen gewissen Wert fällt, dann schaltet der Arduino die LED ein.
Bauteile, Schaltungsaufbau und Arduino Programmcode werden erklärt.
Dieses Projekt kann mit dem Inhalt des Arduino Starter Kit nachgebaut werden. Hier bei Amazon bestellen:
amzn.to/2fdW4uy
- Arduino Entwicklungsumgebung downloaden (Windows, Mac, Linux)
arduino.cc/en/M...
Hammer erklärt.. super ganz lieben dank!
hallo ich bin auch grad bei mit dem uno ein wenig zu experimentieren.super Video.ich finde es toll das es solche Leute wie euch hier gibt!!! bekommt man gleich ein paar Tipps mit!!!!!!!!! Danke!!
Wunderbar erklärt! Herzlichen Dank dafür!
Ey super !
Dein Video hat mir gerade bei meiner Thesis geholfen ! :D
danke broski bist nen held
prima , vielen Dank dafür !
Eine super Steuerung! ich habe es nachgebaut und es funktioniert! Um es aber praktisch anwenden zu können müßte es auf einen Microchip abgespeichert werden, was eignet sich am besten. ATTiny, Digispark oder ähnliches?
Wie bekomme ich es hin damit einen Lichtsensor zu erstellen der wenn das LIcht940 wieder runterdimmt ich habs schon versucht aber bekomme es nicht hin, ich freue mich auf eine Antwort.
Super Video danke !
Vielen Dank für tolles Video. Kann man mit nur ein Aruino mehrere Lichtsensoren (z.B. für mehrere Zimmer) steuern? Wenn Ja, würden Sie passende Code dafür mitteilen. Danke Ihnen
Muss man die inputs nicht eigentlich noch mit PinModeINPUT festlegen?
Aber wofür brauche ich den 10K Widerstand denn? An dem LER liegt bei max. Helligkeit ein Widerstand von 500 Ohm, bei Dunkelheit von 10k Ohm an. Wofür also brauche ich den dahinter geschalteten Widerstand noch, warum kann ich meine Spannungsmessung nicht einfach in Reihe mit dem LER machen?
Das wird ab ca. Minute 5:00 erklärt. Du brauchst den zusätzlichen Widerstand als Spannungsteiler, damit du zwischen dem variablen LER und dem fixen 10K Widerstand eine je nach LER-Widerstandswert unterschiedliche Spannung am Arduino Pin anliegen hast und ablesen kannst.
@@MakerblogAt verstehe, ja so macht das mehr Sinn, danke :D
hi ich bau gerade ne lichtsteuerung für mein rc car nun ist die frage kann man die messung der helligkeit in ein delay setzen? also damit die photodiode nicht sofort bei einer wertänderung schaltet wenn man beispielsweise irgendwo kurz weniger licht hat!? ich hoffe es ist verständlich was ich meine
Am besten die Helligkeit nur z.B. 1-2x pro Sekunde messen (über Timer1 Library, "Arduino Timer1" googlen) und mehrere alte Messwerte in einem Array oder so mitführen, dann laufend den Durchschnitt berechnen und nur wenn der unter eine Grenze fällt, dann Licht einschalten.
Sehr schöne Tutorials, wunderbar optisch und verständlich erklärt.
Mir ist trotzdem eines unklar; Ich verwende einen Arduino Nano, frage damit einen PIR Sensor und einen Lichtsensor ab. Bei einem eingestellten SensorWert (z.B. 200) des Lichtsensors schaltet sich ein LED Streifen ein. Da eine Dämmerung immer schleichend eintritt geht der LED Streifen um den eingestellten SensorWert (200, 199, 200, 199 usw.) immer an und aus, an und aus usw.
Gibt es eine Möglichkeit, dieses Problem zu umgehen?
Ja, das Problem kenn ich. Ich hab das bei einem ähnlichen Projekt gelöst, indem ich nur alle 10 Sekunden eine Messung mache, die letzten 24 Messungen (also 4 Minuten) speichere und daraus den Mittelwert berechne. Erst wenn der Durchschnittswert unter einen bestimmten Wert sinkt, wird die erwünschte Reaktion aktiviert. Das macht das Ergebnis schon deutlich weniger sprunghaft. Das Speichern der letzten Werte lässt sich sehr elegant mit einem Circular Buffer lösen, die Klasse ist z.B. in den Libraries von Sparkfun für den BME280 Sensor oder das Line Follower Array enthalten und kann die letzen x Werte speichern und über eine Methode auch den Mittelwert zurückgeben.
Alternativ könntest du auch mit einer Art Zeitsperre arbeiten, d.h. das z.B. pro Minute nur ein Wechsel des Zustandes erlaubt ist, auch damit würde das ständige Ein/Aussschalten reduziert.
Beim Messen der Sensorwerte eines Lichtsensors ist aus außerdem immer empfehlenswert, mehrere Messungen direkt hintereinander zu machen und daraus den Mittelwert zu nehmen. Damit kann man die üblichen Toleranzen der Sensoren etwas glätten.
Danke erstmal für die schnelle Antwort. Ich werde mich mal in die Thematik Mittelwert einlesen und erstmal die Abfragezeiten größer gestalten.
Warum einen 10k Ohm Widerstand und keinen 1k? Können Sie dies nachvollziehbar beantworten?
Der 10kOhm Widerstand wurde hier eher zufällig gewählt und ist, wie man an den Messwerten am Analogpin sehen kann, ja auch keine besonders gute Wahl, da im Wechsel von hell zu dunkel nur eine sehr kleine Änderung der Spannung stattfindet (zwischen 900 und 1000 am Analogpin, also ca. 4,4V-4,9V), obwohl wir ja im Bereich 0 bis 1023 (0V-5V) messen könnten.
Die größte Empfindlichkeit hat ein Spannungsteiler dann, wenn beide Widerstände gleich groß sind und die Spannung damit im Normalzustand halbiert wird. Tatsächlich müssten wir also den Widerstand des LDR im "normalen" Zustand (also bei sowas wie der normalerweise erwarteten Helligkeit in der Messsituation) ermitteln und den fixen Widerstand dann in etwa gleich wählen. Damit wäre der erwartete Messwert um die 2,5V, mit möglichen maximalen Ausschlägen für heller und dunkler in beiden Richtungen und damit möglichst nahe an der maximalen Messauflösung von 0-1023.
Abhängig vom Datenblatt des verwendeten LDR und der erwarteten Helligkeit beim Messen könnte also in sehr heller Umgebung ein fixer 1kOhm Widerstand die bessere Wahl sein, bei wenig Umgebungslicht könnten aber auch 100kOhm durchaus gut funktionieren (LDRs liefern Widerstände zwischen 1kOhm und mehreren MOhm).
Das ist jetzt sicher komplizierter erklärt als nötig - ich bin leider kein Elektroniker - einige Experimente rund um Spannungsteiler (z.B. mit einem fixen Widerstand und einem Potentiometer) können die praktischen Auswirkungen der Wahl des Widerstandes aber gut veranschaulichen.
Ich hab mir zuletzt das Arduino - Starter Kit geholt. Wenn ich dieses Programm Übersetzen will kommt allerdings eine Fehlermeldung "Fehler beim Übersetzen"!
Hoffe mir kann jemand weiterhelfen....desweiteren ist bei mir nur der COM3 aktiv auf dem die Arduino zugreift vl. liegt auch nur hier das Problem?!
Schick mir mal deinen Arduino-Programmcode (z.B. über die Nachrichten-Funktion hier auf RUclips), dann versuche ich dir zu helfen.
Bei mir zeigt es dauerhaft 1023 als Wert an, was kann ich machen?
1023 ist der Maximalwert, den du über den Analogpin kriegen kannst. Wenn dieser dauerhaft angezeigt, unabhängig vom Status des Lichtsensors, dann ist entweder die Schaltung nicht korrekt oder der Sensor defekt...
Hallo ich möchte ein Modelauto mit einem System ausstatten das wenn vor dem Auto ein Hinderniss ist das es sofort anhält könnten sie vielleicht einen Code erstellen. Danke :)
Hallo Leonard, schau dir mal dieses Video an, mit dem Sensor kannst du einfach ein Hindernis erkennen: ruclips.net/video/h0hOm47P2VM/видео.html
Falls du diesen Kommentar Liest kannst du wen erst geht diese frage beantworten ich möchte das die LED in einen Zwischenraum von 2 Zahlen.Zum Beispiel: licht < 220 > 100.
Danke!
if ((licht >100) && (licht < 220)) {
Makerblog.at - Arduino & Co sehr vielen Dank