Arduino - Lichtsensor

In diesem Tutorial werden wir lernen:

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×Lichtsensor
1×10 kΩ Resistor
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Der LDR-Lichtsensor ist sehr erschwinglich, aber er benötigt einen Widerstand für die Verdrahtung, was die Einrichtung komplizierter machen kann. Um die Verdrahtung zu vereinfachen, können Sie alternativ ein LDR-Lichtsensor-Modul verwenden.

Über Lichtsensor

Der Lichtsensor, der in diesem Tutorial verwendet wird, ist ein Fotowiderstand, der auch als lichtabhängiger Widerstand oder Photocell bezeichnet wird.

Es wird nicht nur verwendet, um Licht zu erkennen, sondern auch, um die Helligkeit bzw. die Beleuchtungsstärke des Umgebungslichts zu messen.

Pinbelegung

Ein Lichtabhängiger Widerstand hat zwei Stifte. Da es sich um eine Art Widerstand handelt, müssen diese Stifte nicht unterschieden werden. Sie sind symmetrisch.

Lichtsensor-Pinbelegung

Wie es funktioniert

Je mehr Licht auf die lichtempfindliche Fläche des Fotowiderstands trifft, desto geringer ist sein Widerstand. Daher lässt sich durch die Messung des Widerstands des Fotowiderstands feststellen, wie hell das Umgebungslicht ist.

Wie ein Lichtsensor funktioniert

WARNING

Der Messwert des Lichtsensors spiegelt nur den annähernden Trend der Lichtintensität wider; er repräsentiert nicht den genauen Lichtstrom. Daher sollte er nur in einer Anwendung verwendet werden, die keine hohe Genauigkeit erfordert.

Arduino - Lichtsensor

Die Pins A0 bis A5 des Arduino Uno können als analoge Eingänge verwendet werden. Der analoge Eingang wandelt die Spannung (zwischen 0 V und VCC) in Ganzzahlen (zwischen 0 und 1023) um, die als ADC-Wert oder analoger Wert bezeichnet werden.

Indem man einen Pin des Fotowiderstands an einen analogen Eingangspin anschließt, können wir den analogen Wert vom Pin mithilfe der Funktion analogRead() auslesen, und dann können wir die Lichtverhältnisse relativ zueinander bestimmen.

Verdrahtungsdiagramm

Arduino-Lichtsensor-Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Arduino-Code

Der unten stehende Code liest den Wert des Fotowiderstands aus und bestimmt das Lichtniveau qualitativ.

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino/arduino-light-sensor */ void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); } void loop() { // reads the input on analog pin A0 (value between 0 and 1023) int analogValue = analogRead(A0); Serial.print("Analog reading: "); Serial.print(analogValue); // the raw analog reading // We'll have a few threshholds, qualitatively determined if (analogValue < 10) { Serial.println(" - Dark"); } else if (analogValue < 200) { Serial.println(" - Dim"); } else if (analogValue < 500) { Serial.println(" - Light"); } else if (analogValue < 800) { Serial.println(" - Bright"); } else { Serial.println(" - Very bright"); } delay(500); }

Schnelle Schritte

  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
  • Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf Arduino hochzuladen
  • Öffnen Sie den seriellen Monitor
  • Senden Sie Licht zum Sensor
  • Sehen Sie das Ergebnis im seriellen Monitor:
COM6
Send
Analog reading: 163 - Dim Analog reading: 152 - Dim Analog reading: 187 - Dim Analog reading: 188 - Dim Analog reading: 957 - Very bright Analog reading: 972 - Very bright Analog reading: 981 - Very bright
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Lichtsensor und LED

  • Der unten stehende Code schaltet die LED ein, wenn es dunkel ist; andernfalls schaltet er die LED aus.
/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino/arduino-light-sensor */ // constants won't change const int LIGHT_SENSOR_PIN = A0; // Arduino pin connected to light sensor's pin const int LED_PIN = 3; // Arduino pin connected to LED's pin const int ANALOG_THRESHOLD = 500; // variables will change: int analogValue; void setup() { pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode } void loop() { analogValue = analogRead(LIGHT_SENSOR_PIN); // read the input on analog pin if(analogValue < ANALOG_THRESHOLD) digitalWrite(LED_PIN, HIGH); // turn on LED else digitalWrite(LED_PIN, LOW); // turn off LED }
  • Verdrahtungsdiagramm für den obigen Code:
Arduino-Lichtsensor-LED-Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Fordere dich heraus

  • Schalte das Licht automatisch ein, wenn dein Zimmer dunkel ist. Hinweis: Siehe Arduino - Relay.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!