⭐⭐ Fortgeschrittener Anfänger ⏱️ 15 Minuten

Nachtlämpchen

Du baust ein schlaues Nachtlämpchen. Wird es dunkel, dann leuchtet der LED-Ring sanft. Wird es hell, dann geht er wieder aus.

Du meldest dich kurz an. Danach ist dein Projekt sofort bereit.

🧰 Was brauchst du?

1× Arduino UNO
1× Lichtsensor (LDR)
1× RGB-LED-Ring (8 LEDs)
🔌
USB-Kabel + Jumperkabel

🗺️ Schaltplan

Folge den Drähten vom Arduino zu jedem Teil. Die Farben der Drähte darfst du selbst wählen.

Von Nach
Arduino UNO · A0 Lichtsensor (LDR) · S
Arduino UNO · 5V Lichtsensor (LDR) · +
Arduino UNO · GND Lichtsensor (LDR) · -
Arduino UNO · D6 RGB-LED-Ring (8 LEDs) · DI
Arduino UNO · 5V RGB-LED-Ring (8 LEDs) · 5V
Arduino UNO · GND RGB-LED-Ring (8 LEDs) · GND

🛠️ So baust du es

  1. Schließe den Lichtsensor an: S an A0, + an 5V und − an GND.
  2. Schließe den LED-Ring an: DI an Pin 6, 5V an 5V und GND an GND.
  3. Öffne den seriellen Monitor und schau, welche Zahl du bei Licht und bei Dunkelheit siehst. Passe DUNKEL_GRENZE daran an.

💻 Der Code

// Nachtlämpchen
// Wird es dunkel? Dann leuchtet der LED-Ring sanft. Wird es hell? Dann geht er aus.

#include <Adafruit_NeoPixel.h>

const int LICHT_PIN = A0;   // S vom Lichtsensor auf A0
const int RING_PIN = 6;     // DI vom LED-Ring auf Pin 6
const int ANZAHL_LEDS = 8;

// Bei diesem Wert finden wir es "dunkel". Schau im seriellen Monitor, welche Zahl du siehst
// bei Licht und bei Dunkelheit, und setze hier eine Zahl dazwischen ein.
const int DUNKEL_GRENZE = 500;

Adafruit_NeoPixel ring(ANZAHL_LEDS, RING_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  Serial.begin(9600);
  ring.begin();
  ring.setBrightness(60);
  ring.show();
}

void loop() {
  int licht = analogRead(LICHT_PIN);   // Eine Zahl von 0 bis 1023
  Serial.print(F("Lichtsensor: "));
  Serial.println(licht);

  // Bei diesem Sensor wird die Zahl höher, wenn es dunkler wird.
  // Ist es bei dir genau andersherum? Dann ändere > in <.
  bool dunkel = licht > DUNKEL_GRENZE;

  for (int i = 0; i < ANZAHL_LEDS; i++) {
    if (dunkel) {
      ring.setPixelColor(i, ring.Color(255, 140, 40));  // Warmes gelbes Licht
    } else {
      ring.setPixelColor(i, 0);                         // Aus
    }
  }
  ring.show();
  delay(200);
}

🧠 Was macht der Code?

  • Der Lichtsensor sitzt auf A0. analogRead() gibt eine Zahl von 0 bis 1023.
  • Ist die Zahl höher als DUNKEL_GRENZE? Dann finden wir es dunkel.
  • Im Dunkeln geben wir allen Lämpchen eine warme gelbe Farbe. Sonst gehen sie aus.

🎯 Probier mal …

  • Lass das Lämpchen langsam heller werden, je dunkler es wird
  • Lass die Farbe langsam wechseln, wie eine beruhigende Stimmungslampe
  • Lass das Lämpchen nach 1 Minute von selbst wieder ausgehen

🚀 Baue dieses Projekt mit Codey: Öffne codey.online/de/starter-kits/uno/projects/night-light und klicke auf BAU DAS. Dann sind der Code und der Schaltplan sofort bereit.

Du meldest dich kurz an. Danach ist dein Projekt sofort bereit.
⬇️ Diese Seite als PDF herunterladen 📚 Das komplette Tutorial herunterladen (PDF)

Codey Online ist ein Produkt von OTRONIC

Bau dein Arduino- oder ESP32-Projekt mit AI

Beschreib einfach, was du bauen willst. Codey Online schreibt den Code, zeichnet den Schaltplan, kompiliert alles und flasht dein Board direkt aus dem Browser.

Kostenlos starten