Arduino Nano - LED - Fade

Deze tutorial leert u hoe u een Arduino Nano programmeert om een LED te laten vervagen (fade). We behandelen drie voorbeelden en vergelijken de verschillen tussen deze methoden:

Hardware Vereist

1×Official Arduino Nano
1×Alternatief: DIYables ATMEGA328P Nano Development Board
1×USB A naar Mini-B USB-kabel
1×LED Kit
1×LED (red)
1×220 ohm weerstand
1×Breadboard (experimenteerprint)
1×Jumper kabels (man/man)
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Breakout Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Stromsplitter voor Arduino Nano

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over LED

De LED Pinout

Een LED heeft twee pinnen:

  • Kathode (-) pin: moet verbonden zijn met GND (0V)
  • Anode (+) pin: wordt gebruikt om de status van de LED te regelen
LED pinout

Hoe Het Werkt

Zodra de kathode (-) is verbonden met GND:

  • Als GND is verbonden met de anode (+), dan zal de LED UIT zijn.
  • Als VCC is verbonden met de anode (+), dan zal de LED AAN zijn.
  • Als er een PWM-signaal wordt toegepast op de anode (+), wordt de helderheid van de LED aangepast aan de hand van de PWM-waarde, die varieert van 0 tot 255. Een hogere PWM-waarde zorgt voor een helderdere LED, terwijl een lagere PWM-waarde resulteert in een donkerdere LED.
    • Wanneer de PWM-waarde 0 is, is dat gelijk aan GND, dus is de LED UIT.
    • Wanneer de PWM-waarde 255 is, is dat gelijk aan VCC, dus is de LED volledig AAN.
    Hoe LED Werkt

    ※ Notiz:

    Voor de meeste LED’s moet er een weerstand geplaatst worden tussen de anode (+) en VCC. De waarde van de weerstand hangt af van de specificaties van de LED.

    Arduino Nano - LED vervagen (fade)

    Sommige pinnen van een Arduino Nano kunnen geprogrammeerd worden om een PWM-signaal te genereren. Om een LED te laten vervagen, kunnen we de anode (+) van de LED verbinden met een Arduino Nano pin, de kathode (-) met GND, en de Arduino Nano pin programmeren om een PWM-signaal te genereren.

Bedradingsschema

Arduino Nano LED bedradingsschema

This image is created using Fritzing. Click to enlarge image

Hoe te Programmeren

  • Stel een digitale uitgang in op een Arduino-pin met behulp van de pinMode() functie.
  • Bijvoorbeeld, dit kan gedaan worden voor pin 5:
pinMode(5, OUTPUT);
  • Pas de helderheid van de LED aan door een PWM-signaal te creëren met de analogWrite() functie:
analogWrite(5, brightness);

De helderheid kan variëren van 0 tot 255.

Arduino Nano Code - LED vervagen (Fade LED)

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-led-fade */ #define LED_PIN 5 // The Arduino PWM pin the LED is attached to int brightness = 0; // how bright the LED is int fade_step = 5; // how many points to fade the LED by // The setup function runs once on reset or power-up void setup() { // declare pin 9 to be an output: pinMode(LED_PIN, OUTPUT); } // The loop function repeats indefinitely. void loop() { // set the brightness of pin 9: analogWrite(LED_PIN, brightness); // change the brightness for next time through the loop: brightness = brightness + fade_step; // reverse the direction of the fading at the ends of the fade: if (brightness <= 0 || brightness >= 255) { fade_step = -fade_step; } // wait for 30 milliseconds to see the dimming effect delay(30); }

Snelle Stappen

  • Verbind de Arduino Nano met de computer met een USB-kabel.
  • Open de Arduino IDE, selecteer de juiste board en poort.
  • Kopieer bovenstaande code en open deze in de Arduino IDE.
  • Klik op de Upload knop in de Arduino IDE om de code te compileren en te uploaden naar de Arduino Nano.
Arduino IDE Upload Code
  • Bekijk de lichtsterkte van de LED.

Code Uitleg

Bekijk de regel-voor-regel uitleg in de comments van de broncode!

※ Notiz:

Het bovenstaande voorbeeld maakt gebruik van de delay() functie om een fade-in en fade-out effect te creëren. Deze methode is echter niet erg vloeiend en blokkeert andere code. In de volgende secties leren we hoe we een vloeiende fade-in en fade-out kunnen realiseren zonder andere code te blokkeren, met de millis() functie.

Hoe een LED in een periode te laten fade-in zonder gebruik van delay()

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-led-fade */ #define LED_PIN 5 // de Arduino PWM-pin waaraan de LED is aangesloten #define FADE_PEDIOD 3000 // fade-tijd is 3 seconden unsigned long start_time; // De setup functie wordt één keer uitgevoerd bij reset of aanzetten void setup() { pinMode(LED_PIN, OUTPUT); // stel pin 5 in als uitgang start_time = millis(); } // fade-in in de loop, en opnieuw starten na voltooiing void loop() { unsigned long progress = millis() - start_time; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { start_time = millis(); // start de fade opnieuw } }

Hoe een LED in een periode te laten fade-out zonder gebruik van delay()

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-led-fade */ #define LED_PIN 5 // de Arduino PWM-pin waaraan de LED is aangesloten #define FADE_PEDIOD 3000 // fade-tijd is 3 seconden unsigned long start_time; // De setup functie wordt één keer uitgevoerd bij reset of aanzetten void setup() { pinMode(LED_PIN, OUTPUT); // stel pin 5 in als uitgang start_time = millis(); } // fade-out in de loop, en opnieuw starten na voltooiing void loop() { unsigned long progress = millis() - start_time; if (progress <= FADE_PEDIOD) { long brightness = 255 - map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { start_time = millis(); // start de fade opnieuw } }

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Daag uzelf uit

Pas de helderheid van de LED aan met een potentiometer. Tip: Bekijk de tutorial Arduino Nano - Potentiometer voor meer informatie.

Extra Kennis

  • De analogWrite() functie op Arduino Nano genereert een PWM-signaal dat dient om een LED te laten vervagen. Echter, als u gevorderde kennis heeft om een eigen functie te maken die een laagfrequent PWM-signaal produceert, zal de LED knipperen in plaats van vervagen.
  • Samenvatting: PWM-signalen gegenereerd door Arduino Nano kunnen voor diverse toepassingen gebruikt worden, zoals het aansturen van servo motoren, DC motoren, het produceren van geluid met een piezo buzzer, het vervagen van LED’s, en het laten knipperen van LED’s.

Functie Referenties

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!