⭐⭐ Gevorderde beginner
⏱️ 15 minuten
Nachtlampje
Je maakt een slim nachtlampje. Wordt het donker, dan gaat de LED-ring zacht branden. Wordt het licht, dan gaat hij weer uit.
🧰 Wat heb je nodig?
🗺️ Aansluitschema
Volg de draden van de Arduino naar elk onderdeel. De kleuren van de draden mag je zelf kiezen.
| Van | Naar |
|---|---|
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 |
🛠️ Zo bouw je het
- Sluit de lichtsensor aan: S naar A0, + naar 5V en − naar GND.
- Sluit de LED-ring aan: DI naar pin 6, 5V naar 5V en GND naar GND.
- Open de seriële monitor en kijk welk getal je ziet bij licht en bij donker. Pas
DONKER_GRENSdaarop aan.
💻 De code
// Nachtlampje
// Wordt het donker? Dan gaat de LED-ring zacht branden. Wordt het licht? Dan gaat hij uit.
#include <Adafruit_NeoPixel.h>
const int LICHT_PIN = A0; // S van de lichtsensor op A0
const int RING_PIN = 6; // DI van de LED-ring op pin 6
const int AANTAL_LEDS = 8;
// Bij deze waarde vinden we het "donker". Kijk in de seriële monitor welk getal jij ziet
// bij licht en bij donker, en zet hier een getal tussenin.
const int DONKER_GRENS = 500;
Adafruit_NeoPixel ring(AANTAL_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); // Een getal van 0 tot 1023
Serial.print(F("Lichtsensor: "));
Serial.println(licht);
// Bij deze sensor wordt het getal hoger als het donkerder wordt.
// Werkt het bij jou net andersom? Draai dan > om naar <.
bool donker = licht > DONKER_GRENS;
for (int i = 0; i < AANTAL_LEDS; i++) {
if (donker) {
ring.setPixelColor(i, ring.Color(255, 140, 40)); // Warm geel licht
} else {
ring.setPixelColor(i, 0); // Uit
}
}
ring.show();
delay(200);
}
🧠 Wat doet de code?
- De lichtsensor zit op A0.
analogRead()geeft een getal van 0 tot 1023. - Is het getal hoger dan
DONKER_GRENS? Dan vinden we het donker. - In het donker geven we alle lampjes een warme gele kleur. Anders gaan ze uit.
🎯 Probeer eens…
- Laat het lampje langzaam feller worden naarmate het donkerder wordt
- Laat de kleur langzaam veranderen, als een rustgevende sfeerlamp
- Laat het lampje na 1 minuut vanzelf weer uitgaan
🚀 Bouw dit project met Codey: open codey.online/nl/starter-kits/uno/projects/night-light en klik op MAAK DIT. Dan staan de code en het aansluitschema meteen klaar.
Codey Online is een product van OTRONIC