Bemerkung

Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Probleme nach dem Verkauf und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Tutorials aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und Einblicken.

  • Spezielle Rabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Werbegeschenke: Nehmen Sie an Verlosungen und Feiertagsaktionen teil.

👉 Bereit, mit uns zu erkunden und zu kreieren? Klicken Sie auf [hier] und treten Sie heute bei!

2.12 Das Licht fühlen

In dieser Lektion lernen wir, wie man einen Fotowiderstand (auch bekannt als lichtabhängiger Widerstand oder LDR) mit dem Raspberry Pi Pico 2 verwendet, um die Lichtintensität zu messen. Ein Fotowiderstand ändert seinen Widerstand abhängig von der Menge des empfangenen Lichts: Je heller das Licht, desto geringer der Widerstand. Dies macht ihn ideal für die Erkennung von Veränderungen im Umgebungslicht.

Was Sie benötigen

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:

Name

ITEMS IN THIS KIT

LINK

Newton Lab Kit

450+

Newton Lab Kit

Sie können sie auch einzeln über die untenstehenden Links kaufen.

SN

COMPONENT

QUANTITY

LINK

1

Raspberry Pi Pico 2

1

KAUFEN

2

Micro-USB-Kabel

1

3

Steckbrett

1

KAUFEN

4

Jumperkabel

Mehrere

KAUFEN

5

Widerstand

1(10KΩ)

KAUFEN

6

Fotowiderstand

1

KAUFEN

Schaltplan

sch_photoresistor

In diesem Schaltkreis sind ein 10K-Widerstand und ein Fotowiderstand in Reihe geschaltet, was einen Spannungsteiler bildet. GP28 liest die Spannung über dem Fotowiderstand, während der 10K-Widerstand als Schutz dient, indem er den Strom begrenzt.

  • Helles Licht: Der Widerstand des Fotowiderstands verringert sich, was seine Spannung und den GP28-Wert senkt. Bei starkem Licht nähert sich sein Widerstand null, und GP28 liest nahezu 0. In diesem Fall spielt der 10K-Widerstand eine schützende Rolle, sodass 3.3V und GND nicht miteinander kurzgeschlossen werden.

  • Dunkelheit: Der Widerstand des Fotowiderstands erhöht sich, was seine Spannung und den GP28-Wert erhöht. Bei völliger Dunkelheit ist sein Widerstand nahezu unendlich (der 10K-Widerstand ist vernachlässigbar), und GP28 liest nahe 1023.

Die Berechnungsformel lautet wie folgt.

Digital Value = (Analog Voltage/3.3V) * 1023

Verdrahtungsplan

wiring_photoresistor

Schreiben des Codes

Bemerkung

  • Sie können die Datei 2.12_feel_the_light.ino aus newton-lab-kit/arduino/2.12_feel_the_light öffnen.

  • Oder kopieren Sie diesen Code in die Arduino IDE.

  • Wählen Sie das Raspberry Pi Pico 2-Board und den richtigen Port und klicken Sie dann auf „Upload“.

const int sensorPin = 28;   // Photoresistor connected to GP28 (ADC2)

void setup() {
  Serial.begin(115200);    // Initialize Serial Monitor
}

void loop() {
  // Read the analog value from the photoresistor
  int sensorValue = analogRead(sensorPin);
  // Print the sensor value to the Serial Monitor
  Serial.println(sensorValue);
  delay(500);  // Wait half a second before reading again
}

Wenn der Code läuft und der serielle Monitor geöffnet ist:

  • Beobachten der Sensorwerte:

    Sie sollten eine Reihe von Zahlen sehen, die die analogen Werte vom Fotowiderstand darstellen.

  • Interaktion mit dem Fotowiderstand:

    • Leuchten Sie mit einer Taschenlampe oder einer Lampe auf den Fotowiderstand. Die Sensorwerte sollten abnehmen (da der Widerstand mit mehr Licht abnimmt).

    • Bedecken Sie den Fotowiderstand mit Ihrer Hand oder platzieren Sie ihn in einem dunklen Bereich. Die Sensorwerte sollten zunehmen (da der Widerstand mit weniger Licht zunimmt).

Verständnis des Codes

  1. Definition des Sensorpins:

    Weist sensorPin GPIO 28 zu, der mit dem analogen Eingang verbunden ist.

    const int sensorPin = 28;   // Photoresistor connected to GP28 (ADC2)
    
  2. Initialisieren der seriellen Kommunikation:

    Startet die serielle Kommunikation, um Nachrichten auf den seriellen Monitor zu drucken.

    Serial.begin(115200);
    
  3. Lesen des analogen Werts:

    Liest die analoge Spannung an sensorPin und gibt einen Wert zwischen 0 und 1023 zurück.

    int sensorValue = analogRead(sensorPin);
    
  4. Drucken des Sensorwerts:

    Gibt den Sensorwert auf den seriellen Monitor aus.

    Serial.println(sensorValue);
    
  5. Hinzufügen einer Verzögerung:

    Wartet 500 Millisekunden vor der nächsten Messung.

    delay(500);
    

Umrechnung in Spannung

Wenn Sie den tatsächlich gelesenen Spannungswert sehen möchten, können Sie den Code ändern:

const int sensorPin = 28;   // Photoresistor connected to GP28 (ADC2)

void setup() {
  Serial.begin(115200);    // Initialize Serial Monitor
}

 void loop() {
   int sensorValue = analogRead(sensorPin);
   // Convert the analog reading to voltage
   float voltage = sensorValue * (3.3 / 1023.0);
   Serial.print("Sensor Value: ");
   Serial.print(sensorValue);
   Serial.print("  Voltage: ");
   Serial.print(voltage);
   Serial.println(" V");
   delay(500);
 }

Weitere Erkundungen

  • Steuerung einer LED basierend auf Licht:

    Verwenden Sie den Fotowiderstand, um die Helligkeit einer LED zu steuern oder sie basierend auf den Lichtverhältnissen ein- oder auszuschalten.

  • Datenprotokollierung:

    Protokollieren Sie die Lichtintensität über die Zeit, um Veränderungen in der Umgebung zu überwachen.

  • Bau eines Nachtlichts:

    Erstellen Sie ein Licht, das sich automatisch einschaltet, wenn es dunkel wird.

Fazit

In dieser Lektion haben Sie gelernt, wie man einen Fotowiderstand mit dem Raspberry Pi Pico verwendet, um die Lichtintensität zu messen. Durch das Lesen der analogen Spannung aus einem Spannungsteilerkreis können Sie Veränderungen in den Lichtverhältnissen erkennen und diese Informationen in Ihren Projekten verwenden.