Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft 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 Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

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

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

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

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [ hier ] und treten Sie heute bei!

Lichtempfindliches Array

Dieses Programm wandelt die Messwerte eines lichtabhängigen Widerstands in eine entsprechende Anzahl beleuchteter LED-Lichter um und schafft so einen einfachen Indikator für die Helligkeit des Lichts.

Benötigte Komponenten

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

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

Name

ARTIKEL IN DIESEM KIT

LINK

Elite Explorer Kit

300+

Elite Explorer Kit

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

KOMPONENTENVORSTELLUNG

KAUF-LINK

Arduino Uno R4 WiFi

-

Steckbrett

KAUFEN

Jumperkabel

KAUFEN

Widerstand

KAUFEN

LED

KAUFEN

Fotowiderstand

KAUFEN

Verdrahtung

../_images/04_light_sensitive_array_bb.png

Schaltplan

../_images/04_light_sensitive_array_schematic.png

Code

Bemerkung

  • Sie können die Datei 04_light_sensitive_array.ino direkt unter dem Pfad elite-explorer-kit-main\fun_project\04_light_sensitive_array öffnen.

  • Oder kopieren Sie diesen Code in die Arduino IDE.

04_light_sensitive_array.ino
 1/*
 2  The code reads the ambient light level through a photoresistor and lights up
 3  a certain number of LEDs based on the light level. The LEDs serve as a "light level bar."
 4
 5  Board: Arduino Uno R4 
 6  Component: Photoresistor and LED
 7*/
 8
 9// Constants for the number of LEDs and their pins
10const int NbrLEDs = 8;
11const int ledPins[] = { 5, 6, 7, 8, 9, 10, 11, 12 };
12
13// Pin for the photoresistor
14const int photocellPin = A0;
15
16// Variables to store sensor and LED level values
17int sensorValue = 0;  // value read from the sensor
18int ledLevel = 0;     // sensor value converted into LED 'bars'
19
20void setup() {
21  // Initialize all LED pins as outputs
22  for (int led = 0; led < NbrLEDs; led++) {
23    pinMode(ledPins[led], OUTPUT);
24  }
25}
26
27void loop() {
28  sensorValue = analogRead(photocellPin);              // Read the ambient light level from the photoresistor
29  ledLevel = map(sensorValue, 300, 1023, 0, NbrLEDs);  // Map the sensor value to the number of LEDs to be lit
30
31  // Update the state of each LED based on the mapped value
32  for (int led = 0; led < NbrLEDs; led++) {
33    if (led < ledLevel) {
34      digitalWrite(ledPins[led], HIGH);  // Turn ON LEDs that are below the level
35    } else {
36      digitalWrite(ledPins[led], LOW);  // Turn OFF LEDs that are above the level
37    }
38  }
39}

Wie funktioniert das?

Hier ist eine schrittweise Erklärung des Codes:

  1. Konstanten- und Variablendefinitionen:

    NbrLEDs: Definiert die Anwesenheit von 8 LEDs. ledPins[]: LEDs sind an die Arduino-Pins 5 bis 12 angeschlossen. photocellPin: Der Fotowiderstand ist an den A0-Pin des Arduino angeschlossen. sensorValue: Diese Variable speichert den vom Fotowiderstand gelesenen Wert. ledLevel: Diese Variable speichert die Anzahl der LEDs basierend auf der Umwandlung des sensorValue.

  2. setup():

    Konfiguriert die Pins 5 bis 12 als Ausgang, um die LEDs anzusteuern.

  3. loop():

    Liest den analogen Wert des Fotowiderstands vom Pin A0, typischerweise im Bereich von 0 bis 1023. Verwendet die Funktion map, um den Wert des Fotowiderstands von 300-1023 auf den Bereich 0-8 abzubilden. Das bedeutet, dass, wenn die Messung des lichtabhängigen Widerstands 300 beträgt, keine LEDs leuchten werden; wenn die Messung 1023 oder höher ist, werden alle 8 LEDs leuchten.

    Die nachfolgende for-Schleife überprüft jede LED. Wenn ihr Index kleiner als ledLevel ist, wird die LED eingeschaltet; andernfalls wird sie ausgeschaltet.