⭐⭐ 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.
🧰 Was brauchst du?
🗺️ 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
- Schließe den Lichtsensor an: S an A0, + an 5V und − an GND.
- Schließe den LED-Ring an: DI an Pin 6, 5V an 5V und GND an GND.
- Öffne den seriellen Monitor und schau, welche Zahl du bei Licht und bei Dunkelheit siehst. Passe
DUNKEL_GRENZEdaran 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.
Codey Online ist ein Produkt von OTRONIC