Arduino Nano ESP32 - Lichtsensor

Dieses Tutorial gibt Anweisungen, wie man das Arduino Nano ESP32 mit dem Lichtsensor verwendet. Im Detail werden wir lernen:

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×Lichtsensor
1×10 kΩ Resistor
1×Breadboard
1×Verbindungskabel
1×(Optional) DC-Stromanschluss
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.

Der LDR-Lichtsensor ist sehr erschwinglich, aber er erfordert einen Widerstand für die Verkabelung, was die Einrichtung komplizierter macht. Um die Verkabelung zu vereinfachen, können Sie alternativ ein LDR-Lichtsensor-Modul verwenden.

Über den Lichtsensor

Der am weitesten verbreitete Lichtsensor ist ein Fotowiderstand (auch bekannt als Fotowiderstand, oder lichtabhängiger Widerstand, LDR).

Es kann dazu verwendet werden, das Vorhandensein des Lichts zu erkennen. Es kann auch dazu verwendet werden, die Beleuchtungsstärke bzw. den Helligkeitsgrad des Lichts zu messen.

Lichtsensor-Pinbelegung

Ein Lichtsensor hat zwei Pins. Genau wie bei einem normalen Widerstand müssen wir diese Pins nicht unterscheiden.

Lichtsensor-Pinbelegung

Wie der Lichtsensor funktioniert

Der Widerstand des Fotowiderstands ist umgekehrt proportional zur Lichtintensität. Je weniger Licht dem Fotowiderstand ausgesetzt ist, desto größer ist sein Widerstand. Daher können wir aus dem Widerstand des Fotowiderstands schließen, wie hell das Umgebungslicht ist.

Wie ein Lichtsensor funktioniert

WARNING

Der vom Fotowiderstand gemessene Wert spiegelt die annähernde Tendenz der Lichtintensität wider; er repräsentiert nicht exakt den Lichtstrom. Daher sollte der Fotowiderstand in einer Anwendung, die eine hohe Genauigkeit erfordert, nicht verwendet werden. Eine Kalibrierung ist auch für bestimmte Anwendungen erforderlich.

Arduino Nano ESP32 - Lichtsensor

Der analoge Eingangspin des ESP32 wandelt die Spannung (zwischen 0 V und ADC_VREF – standardmäßig 3,3 V) in Ganzzahlwerte (zwischen 0 und 4095) um, die als Analogwerte bzw. ADC-Werte bezeichnet werden. Indem man einen analogen Eingangspin des Arduino Nano ESP32 mit dem Photowiderstand verbindet, kann man den Analogwert mithilfe der Funktion analogRead() lesen.

Verdrahtungsdiagramm zwischen Lichtsensor und Arduino Nano ESP32

Arduino Nano ESP32 Lichtsensor-Verdrahtungsdiagramm

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

Arduino Nano ESP32-Code

Der folgende Arduino Nano ESP32-Code liest den Wert eines Lichtsensors aus und bestimmt daraus die Lichtstärke.

/* * 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-light-sensor */ #define LIGHT_SENSOR_PIN A0 // The Arduino Nano ESP32 pin connect to the light sensor 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() { // reads the input on analog pin (value between 0 and 4095) int analog_value = analogRead(LIGHT_SENSOR_PIN); Serial.print("Analog Value = "); Serial.print(analog_value); // The raw analog reading // We'll have a few threshholds, qualitatively determined if (analog_value < 40) { Serial.println(" => Dark"); } else if (analog_value < 800) { Serial.println(" => Dim"); } else if (analog_value < 2000) { Serial.println(" => Light"); } else if (analog_value < 3200) { Serial.println(" => Bright"); } else { Serial.println(" => Very bright"); } delay(500); }

Schnelle Schritte

  • Wenn Sie Arduino Nano ESP32 zum ersten Mal verwenden, sehen Sie sich wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet an.
  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  • Kompilieren und den Code auf das Arduino Nano ESP32-Board hochladen, indem Sie in der Arduino IDE auf die Schaltfläche Hochladen klicken.
  • Öffnen Sie den seriellen Monitor in der Arduino IDE.
Wie öffnet man den seriellen Monitor in der Arduino IDE?
  • Strahlt Licht auf den Sensor aus
  • Überprüfen Sie das Ergebnis im Serial Monitor. Es sieht so aus wie unten:
COM6
Send
Analog Value = 406 => Dim Analog Value = 412 => Dim Analog Value = 465 => Dim Analog Value = 471 => Dim Analog Value = 3511 => Very bright Analog Value = 3521 => Very bright Analog Value = 3618 => Very bright
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Lichtsensor und LED

Verdrahtungsplan

Arduino Nano ESP32 Lichtsensor LED Verdrahtungsdiagramm

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

Arduino Nano ESP32-Code

Der untenstehende Code schaltet die LED ein, wenn es dunkel ist, andernfalls schaltet er die LED aus.

/* * 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-light-sensor */ #define LIGHT_SENSOR_PIN A0 // The Arduino Nano ESP32 pin connect to the light sensor #define LED_PIN D2 // The Arduino NanO ESP32 pin connected to LED #define ANALOG_THRESHOLD 500 void setup() { // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); pinMode(LED_PIN, OUTPUT); // set ESP32 pin to output mode } void loop() { int analog_value = analogRead(LIGHT_SENSOR_PIN); // read the value on analog pin if (analog_value < ANALOG_THRESHOLD) digitalWrite(LED_PIN, HIGH); // turn on LED else digitalWrite(LED_PIN, LOW); // turn off LED }

※ Notiz:

Dieses Tutorial verwendet die Funktion analogRead(), 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 eignet sich für Projekte, die keine hohe Genauigkeit erfordern. Allerdings sollten Sie bei Projekten, die präzise Messungen erfordern, Folgendes beachten:

  • Der ADC des Arduino Nano ESP32 ist nicht perfekt genau und erfordert möglicherweise eine Kalibrierung, um korrekte Ergebnisse zu erhalten. Jedes Arduino Nano ESP32-Board kann leicht variieren, 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 Ergebnisse.

Für Projekte mit hoher Präzision sollten Sie die Verwendung eines externen ADC (z. B. ADS1115) mit dem Arduino Nano ESP32 in Betracht ziehen oder einen anderen Arduino verwenden, 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, verweisen Sie auf den ESP32 ADC Kalibrierungs-Treiber.

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.

Verwandte Tutorials

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