⭐⭐ 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.

Je logt eerst even in. Daarna staat je project meteen klaar.

🧰 Wat heb je nodig?

1× Arduino UNO
1× Lichtsensor (LDR)
1× RGB LED-ring (8 LEDs)
🔌
USB-kabel + Jumperkabels

🗺️ 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

  1. Sluit de lichtsensor aan: S naar A0, + naar 5V en − naar GND.
  2. Sluit de LED-ring aan: DI naar pin 6, 5V naar 5V en GND naar GND.
  3. Open de seriële monitor en kijk welk getal je ziet bij licht en bij donker. Pas DONKER_GRENS daarop 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.

Je logt eerst even in. Daarna staat je project meteen klaar.
⬇️ Download deze pagina als PDF 📚 Download de complete tutorial (PDF)

Codey Online is een product van OTRONIC

Bouw je Arduino- of ESP32-project met AI

Beschrijf wat je wilt bouwen. Codey Online schrijft de code, tekent het aansluitschema, compileert het en flasht je board rechtstreeks vanuit de browser.

Gratis starten