De ware Halfzware uit Friesland

Door

op

Categorie:

Licht in de Brandaris (Het dimmen van een LED met Arduino)

LED dimmen met Arduino/Wemos

Benodigde Hardware

  1. Arduino (bijv. Uno, Nano)
  2. 2x LED (elke kleur)
  3. 2x 220Ω (Ohm) weerstand
  4. Breadboard
  5. Aansluitdraden (jumper wires)

Stap 1: De Hardware Aansluiten

Voordat je de code uploadt, sluit je de componenten als volgt aan:

  • De lange poot van een LED (de anode, +) verbind je met een digitale PWM-pin van de Arduino via een 220Ω weerstand.
  • De korte poot van een LED (de kathode, -) verbind je met de GND (ground) van de Arduino.

Op een Arduino Uno/Nano zijn de PWM-pinnen gemarkeerd met een tilde (~), bijvoorbeeld pinnen 3, 5, 6, 9, 10, 11. We gebruiken pin 13 en 14 in dit voorbeeld.

Aansluitschema:

  • LED 1: Arduino Pin ~13 → 220Ω Weerstand → Lange poot LED 1 → Korte poot LED 1 → Arduino GND
  • LED 2: Arduino Pin ~14 → 220Ω Weerstand → Lange poot LED 2 → Korte poot LED 2 → Arduino GND

Stap 2: De Arduino Code

Stap 3: Uitleg van de Code

  • const int ledPin1 = 13;
    Hier definiëren we een constante variabele ledPin1 met de waarde 13. Dit maakt de code leesbaarder en makkelijker aan te passen als je een andere pin wilt gebruiken. Hetzelfde geldt voor ledPin2.
  • int fadeDelay = 10;
    Dit bepaalt de snelheid van het faden. Een hogere waarde (bv. 20) maakt het faden langzamer, een lagere waarde (bv. 5) maakt het sneller.
  • void setup()
    Deze functie wordt één keer uitgevoerd wanneer de Arduino opstart.
    • pinMode(ledPin1, OUTPUT); vertelt de Arduino dat pin 13 een output-pin is, zodat we er stroom naartoe kunnen sturen.
  • void loop()
    Deze functie wordt continu herhaald zolang de Arduino stroom heeft.
    • Eerste for-loop (Fade In):
      • for (int brightness = 0; brightness <= 255; brightness++) start een teller genaamd brightness bij 0 en telt deze in elke stap met 1 op, totdat 255 is bereikt.
      • analogWrite(ledPin1, brightness); Dit is de kern van het dimmen. analogWrite() stuurt een PWM-signaal naar de pin. De waarde brightness (tussen 0 en 255) bepaalt de “duty cycle” van het signaal. Een waarde van 0 betekent dat de LED uit is, 128 betekent half vermogen, en 255 betekent volledig aan.
      • delay(fadeDelay); pauzeert het programma voor het aantal milliseconden dat is ingesteld in fadeDelay, waardoor het faden soepel en zichtbaar wordt.
    • Tweede for-loop (Fade Out):
      • Deze loop doet hetzelfde, maar telt nu terug van 255 naar 0, waardoor de LED’s weer langzaam uitgaan.