Arduino Nano ESP32 – LDR-Modul

Das LDR-Lichtsensor-Modul kann Licht in seiner Umgebung erfassen und messen. Es hat zwei Ausgänge: einen digitalen Ausgang, der entweder LOW oder HIGH sein kann, und einen analogen Ausgang.

In diesem Tutorial lernen wir, wie man einen Arduino Nano ESP32 und ein LDR-Lichtsensor-Modul gemeinsam verwendet, um die Lichtmenge zu erkennen und zu messen. Folgendes werden wir behandeln:

LDR-Lichtsensor-Modul
image source: diyables.io

Anschließend kannst du den Code so ändern, dass eine LED oder eine Glühbirne eingeschaltet wird (unter Verwendung eines Relays), wenn der Sensor Licht erkennt.

Wenn Sie an einem Lichtsensor in seiner rohen Form interessiert sind, empfehle ich Ihnen, das Tutorial zum Arduino Nano ESP32 - Lichtsensor anzusehen.

Erforderliche Hardware

1×Arduino Nano ESP32
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×LDR Lichtsensor-Modul
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

Oder Sie können die folgenden Kits kaufen:

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.

Über das LDR-Lichtsensor-Modul

Das LDR-Lichtsensor-Modul kann verwendet werden, um festzustellen, ob Licht vorhanden ist oder wie viel Licht in seiner Umgebung vorhanden ist. Es verfügt über einen digitalen Ausgangspin und einen analogen Ausgangspin für verschiedene Optionen.

Pinbelegung

Das LDR-Lichtsensor-Modul hat vier Pins:

  • VCC-Pin: Schließen Sie diesen Pin an die Stromquelle an (zwischen 3,3 V und 5 V).
  • GND-Pin: Schließen Sie diesen Pin an die Masse (0 V) an.
  • DO-Pin: Dies ist ein digitaler Ausgangspin. Er liefert ein HIGH-Signal, wenn es dunkel ist, und ein LOW-Signal, wenn es hell ist. Den Schwellenwert zwischen Dunkel und Hell können Sie mit einem eingebauten Potentiometer einstellen.
  • AO-Pin: Dies ist ein analoger Ausgangspin. Der Wert sinkt, je heller das Licht wird, und steigt, je dunkler das Licht wird.
LDR-Lichtsensor-Modul Pinbelegung
image source: diyables.io

Zusätzlich ist das LDR-Lichtsensor-Modul mit zwei LED-Indikatoren ausgestattet:

  • Die PWR-LED-Anzeige zeigt den Leistungsstatus.
  • Die DO-LED-Anzeige spiegelt den Zustand des Lichts am DO-Pin wider: sie leuchtet, wenn Licht vorhanden ist, und bleibt aus, wenn es dunkel ist.

Wie es funktioniert

Bezüglich des DO-Pins:

  • Das LDR-Lichtsensor-Modul verfügt über ein Potentiometer, mit dem Sie die Empfindlichkeit oder den Schwellenwert zur Erkennung von Licht einstellen können.
  • Wenn die Lichtintensität in der Umgebung den festgelegten Schwellenwert überschreitet (als Licht betrachtet), wird der DO-Pin-Ausgang auf LOW-Pegel gesetzt, und die DO-LED leuchtet auf.
  • Wenn die Lichtintensität in der Umgebung unterhalb des festgelegten Schwellenwerts liegt (als Dunkelheit angesehen), wird der DO-Pin-Ausgang auf HIGH-Pegel gesetzt, und die DO-LED geht aus.

Bezüglich des AO-Pins:

  • Der vom AO-Pin gelesene Wert ist umgekehrt proportional zur Lichtintensität der Umgebung. Mit anderen Worten, wenn die Lichtintensität zunimmt (heller wird), nimmt der Wert am AO-Pin ab.
  • Ebenso nimmt der Wert am AO-Pin zu, wenn die Lichtintensität abnimmt (dunkler wird).

Es ist wichtig zu beachten, dass das Einstellen des Potentiometers den Wert am AO-Pin nicht beeinflusst.

Verdrahtungsdiagramm

Da das Lichtsensor-Modul zwei Ausgänge hat, können Sie je nach Bedarf einen oder beide verwenden.

  • Der Verdrahtungsplan zwischen dem Arduino Nano ESP32 und dem LDR-Lichtsensor-Modul, wenn nur DO verwendet wird.
Arduino Nano ESP32 LDR-Lichtsensor-Modul Verdrahtungsdiagramm

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

  • Schaltplan der Verdrahtung zwischen dem Arduino Nano ESP32 und dem LDR-Lichtsensor-Modul, wenn nur AO verwendet wird.
Arduino Nano ESP32 LDR-Modul Verdrahtungsdiagramm

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

  • Der Verdrahtungsplan zwischen dem Arduino Nano ESP32 und dem LDR-Lichtsensor-Modul, wenn sowohl AO als auch DO verwendet werden.
Arduino Nano ESP32 Lichtsensor-Modul Verdrahtungsdiagramm

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

Arduino Nano ESP32 Code - Wert des DO-Pins lesen

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 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-nano-esp32/arduino-nano-esp32-ldr-module */ #define DO_PIN D2 // The Arduino Nano ESP32's pin D2 connected to DO pin of the ldr module void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP32's pin as an input pinMode(DO_PIN, INPUT); } void loop() { int light_state = digitalRead(DO_PIN); if (light_state == HIGH) Serial.println("It is dark"); else Serial.println("It is light"); }

Schnelle Schritte

Um mit dem Arduino Nano ESP32 zu beginnen, befolgen Sie diese Schritte:

  • Wenn Sie neu bei Arduino Nano ESP32 sind, lesen Sie das Tutorial zur Einrichtung der Umgebung für Arduino Nano ESP32 in der Arduino IDE wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet.
  • Verdrahten Sie die Bauteile gemäß dem bereitgestellten Diagramm.
  • Schließen Sie das Arduino Nano ESP32-Board über ein USB-Kabel an Ihren Computer an.
  • Öffnen Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das Arduino Nano ESP32-Board und den entsprechenden COM-Port aus.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
  • Klicken Sie in der Arduino IDE auf die Upload-Schaltfläche, um den Code auf den Arduino Nano ESP32 hochzuladen.
  • Decken Sie das LDR-Lichtsensor-Modul mit der Hand ab oder decken Sie es wieder auf.
  • Sehen Sie sich das Ergebnis im seriellen Monitor an.
COM6
Send
It is light It is light It is dark It is dark It is dark It is light It is light It is light
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Wenn Sie feststellen, dass der Status der LED konstant ein- oder ausgeschaltet bleibt, unabhängig davon, ob Licht vorhanden ist, haben Sie die Möglichkeit, das Potentiometer zu justieren. Mit dieser Anpassung können Sie die Lichtempfindlichkeit des Sensors fein abstimmen.

Darüber hinaus kann der Code entsprechend Ihren Anforderungen angepasst werden. Beispielsweise können Sie die LED so programmieren, dass sie aktiviert wird, oder das Licht einschaltet, wenn Licht erkannt wird. Zusätzlich haben Sie die Möglichkeit, einen Servomotor rotieren zu lassen. Detaillierte Anweisungen und Tutorials zu diesen Anpassungsoptionen finden Sie am Ende dieses Leitfadens.

Arduino Nano ESP32 Code - Wert vom AO-Pin auslesen

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 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-nano-esp32/arduino-nano-esp32-ldr-module */ #define AO_PIN A4 // The Arduino Nano ESP32's pin connected to AO pin of the ldr module void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { int light_value = analogRead(AO_PIN); Serial.print("The AO value: "); Serial.println(light_value); }

Schnelle Schritte

  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
  • Klicken Sie in der Arduino IDE auf die Upload-Schaltfläche, um den Code auf den Arduino Nano ESP32 hochzuladen
  • Decken Sie das LDR-Lichtsensor-Modul mit Ihrer Hand oder etwas Ähnlichem ab und decken Sie es wieder auf
  • Überprüfen Sie das Ergebnis im Serial Monitor
COM6
Send
The AO value: 145 The AO value: 146 The AO value: 146 The AO value: 572 The AO value: 1678 The AO value: 1945 The AO value: 2956 The AO value: 3001 The AO value: 3098 The AO value: 4005 The AO value: 4005 The AO value: 1645 The AO value: 1546 The AO value: 346 The AO value: 172
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Diese Anleitung verwendet die analogRead() Funktion, um Werte von einem ADC (Analog-Digital-Wandler) zu lesen, der an einen Sensor oder eine Komponente angeschlossen ist. Der ADC des Arduino Nano ESP32 ist für Projekte geeignet, die keine hohe Genauigkeit erfordern. Für Projekte, die jedoch präzise Messungen benötigen, beachten Sie Folgendes:

  • Der ADC des Arduino Nano ESP32 ist nicht vollkommen genau und muss möglicherweise kalibriert werden, um korrekte Ergebnisse zu liefern. Jedes Arduino Nano ESP32-Board kann sich leicht unterscheiden, daher ist für jedes einzelne Board eine Kalibrierung notwendig.
  • Die Kalibrierung kann herausfordernd sein, insbesondere für Anfänger, und liefert möglicherweise nicht immer die gewünschten genauen Ergebnisse.

Für Projekte mit hoher Präzision sollten Sie in Betracht ziehen, einen externen ADC (z. B. ADS1115) mit dem Arduino Nano ESP32 zu verwenden oder einen anderen Arduino zu nutzen, z. B. den Arduino Uno R4 WiFi, der einen zuverlässigeren ADC besitzt. Wenn Sie den ADC des Arduino Nano ESP32 dennoch kalibrieren möchten, konsultieren Sie den ESP32 ADC Calibration Driver.

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.

※ 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!