- Erforderliches Material
- Schaltplan
- Code und Erklärung
- So steuert es die Lichtintensität automatisch:
"Sei ein heller Funke, Licht aus, bis es dunkel ist!" Manchmal vergessen wir, das Licht auszuschalten und Strom zu verschwenden, und Sie müssen auch gesehen haben, wie die Straßenlaterne tagsüber eingeschaltet wurde. Wir haben bereits einige Schaltkreise für den Dunkeldetektor gebaut, bei denen die Lichter automatisch ausgeschaltet werden, wenn es draußen hell ist, und eingeschaltet werden, wenn es draußen dunkel ist. Dieses Mal schalten wir in dieser Schaltung nicht nur Lichter basierend auf den Lichtbedingungen ein und aus, sondern variieren auch die Lichtintensität entsprechend den Lichtverhältnissen von außen. Hier haben wir das LDR- und PWM-Konzept mit Arduino verwendet, um die Helligkeit der 1-Watt-Power-LED automatisch zu verringern oder zu erhöhen.
Grundsätzlich bezieht sich auf PWM Pulsweitenmodulation, das Ausgangssignal über einen PWM - Pin wird ein analoges Signal sein und als ein digitales Signal aus dem Arduino erworben. Es verwendet das Tastverhältnis der digitalen Welle, um den sequentiellen Analogwert für das Signal zu erzeugen. Dieses Signal wird ferner verwendet, um die Helligkeit der Power-LED zu steuern.
Erforderliches Material
- Arduino UNO
- LDR
- Widerstand (510, 100 kOhm)
- Kondensator (0,1 uF)
- Transistor 2N2222
- 1 Watt Power LED
- Kabel anschließen
- Steckbrett
Schaltplan
Code und Erklärung
Der vollständige Arduino-Code für den automatischen LED-Dimmer ist am Ende angegeben.
Im folgenden Code definieren wir den PWM-Pin und die im Code zu verwendenden Variablen.
int pwmPin = 2; // weist Pin 12 der Variablen pwm zu int LDR = A0; // weist dem variablen Topf den Analogeingang A0 zu int c1 = 0; // deklariert die Variable c1 int c2 = 0; // deklariert die Variable c2
Jetzt lesen wir in der Schleife zuerst den Wert mit dem Befehl „analogRead (LDR)“ und speichern dann den Analogeingang in einer Variablen mit dem Namen „value“ . Durch eine mathematische Berechnung erzeugen wir das PWM-Signal. Hier steuern wir die Lichtintensität mit PWM nur, wenn der Analogwert weniger als 500 beträgt, und wenn er mehr als 500 beträgt, schalten wir das Licht vollständig aus.
int value = analogRead (LDR); Serial.println (Wert); c1 = Wert; c2 = 500-c1; // subtrahiert c2 von 1000 ans speichert das Ergebnis in c1 if (Wert <500) { digitalWrite (pwmPin, HIGH); delayMicroseconds (c2); digitalWrite (pwmPin, LOW); delayMicroseconds (c1); } if (Wert> 500) { digitalWrite (2, LOW); } }
Hier können Sie mehr über PWM in Arduino erfahren.
So steuert es die Lichtintensität automatisch:
Gemäß dem Schaltplan haben wir eine Spannungsteilerschaltung unter Verwendung von LDR und 100k-Widerstand hergestellt. Der Spannungsteilerausgang wird dem analogen Pin des Arduino zugeführt. Der analoge Pin erfasst die Spannung und gibt Arduino einen analogen Wert. Der Analogwert ändert sich je nach Widerstand des LDR. Wenn es also über dem LDR dunkel ist, wird sein Widerstand erhöht und daher nimmt der Spannungswert (Analogwert) ab. Daher variiert der Analogwert den PWM-Ausgang oder das Tastverhältnis, und das Tastverhältnis ist ferner proportional zur Lichtintensität der Leistungs-LED. Das Licht über dem LDR steuert also automatisch die Intensität der Power-LED. Unten sehen Sie das Flussdiagramm, wie dies funktioniert. Das obere Pfeilzeichen zeigt "ansteigend" an und das untere Pfeilzeichen zeigt "abnehmend" an.
Lichtintensität (am LDR) ↓ - Widerstand ↑ - Spannung am analogen Pin ↓ - Arbeitszyklus (PWM) ↑ - Helligkeit der Power-LED ↑
Wenn es draußen voll hell ist (wenn der Analogwert um mehr als 500 steigt), erlischt die Betriebs-LED.
Auf diese Weise können Sie die Lichtintensität mithilfe von LDR automatisch steuern.
Weitere Informationen zu allen LDR-Schaltkreisen finden Sie hier.