Arduino - LED - Fade

In deze tutorial leert u:

※ Notiz:

Deze tutorial biedt diepgaande kennis die u helpt het werkingsprincipe te begrijpen. Om het gemakkelijker te maken, kunt u ook de Arduino - LED bibliotheek gebruiken.

Hardware benodigd

1×Arduino Uno R3
1×USB 2.0 kabel type A/B
1×LED Kit
1×LED (red)
1×220 ohm weerstand
1×Breadboard (experimenteerprint)
1×Jumperdraden
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

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

Pinout

Een LED heeft twee pinnen:

  • Kathode(-) pin: moet worden aangesloten op GND (0V)
  • Anode(+) pin: wordt gebruikt om de status van de LED te regelen
LED Pinout

Hoe het werkt

Nadat de kathode(-) is verbonden met GND:

  • Als GND wordt verbonden met de anode(+), is de LED UIT.
  • Als VCC wordt verbonden met de anode(+), is de LED AAN.
  • Als een PWM-signaal wordt gegenereerd naar de anode(+), verandert de helderheid van de LED afhankelijk van de PWM-waarde. De PWM-waarde varieert van 0 tot 255. Hoe groter de PWM-waarde, hoe helderder de LED is. Hoe kleiner de PWM-waarde, hoe donkerder de LED is.
    • Als de PWM-waarde 0 is, is dat gelijk aan GND, dus de LED is UIT.
    • Als de PWM-waarde 255 is, is dat gelijk aan VCC, dus de LED is volledig AAN.
    Hoe LED werkt

    ※ Notiz:

    Voor de meeste LED's is het nodig om een weerstand te gebruiken tussen de anode(+) en VCC. De waarde van de weerstand hangt af van de specificatie van de LED.

    Arduino - LED vervagen (fade)

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

Bedradingsschema

Arduino LED Bedradingsschema

This image is created using Fritzing. Click to enlarge image

Hoe te programmeren

  • Stel een Arduino-pin in op digitale uitgang met behulp van de pinMode() functie. Bijvoorbeeld pin 9:
pinMode(9, OUTPUT);
  • Stel de helderheid van de LED in door het genereren van een overeenkomstig PWM-signaal met de analogWrite() functie:
analogWrite(9, brightness);

Waarbij brightness (helderheid) een waarde is van 0 tot 255.

Arduino Code - Fade voorbeeld vanuit Arduino IDE

Snel aan de slag

  • Verbind Arduino met de PC via USB-kabel
  • Open Arduino IDE, selecteer het juiste bord en poort
  • Kopieer onderstaande code en plak deze in de Arduino IDE
/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-led-fade */ #define LED_PIN 9 // the Arduino PWM pin connected to the LED int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by // the setup routine runs once when you press reset: void setup() { // declare pin 9 to be an output: pinMode(LED_PIN, OUTPUT); } // the loop routine runs over and over again forever: void loop() { // set the brightness of pin 9: analogWrite(LED_PIN, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; } // wait for 30 milliseconds to see the dimming effect delay(30); }
  • Klik op de knop Upload in Arduino IDE om de code naar de Arduino te uploaden
Arduino IDE Code upload
  • Bekijk de helderheid van de LED veranderen

Code uitleg

Lees de regel-voor-regel uitleg in de commentaarregels van de code!

※ Notiz:

Het bovenstaande voorbeeld gebruikt de delay() functie om fade-in en fade-out te realiseren. De delay() functie zorgt ervoor dat de LED onregelmatig vervaagt en blokkeert andere code. In de volgende delen leren we hoe u fade-in en fade-out soepel uitvoert zonder andere code te blokkeren met behulp van de millis() functie.

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

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-led-fade */ #define LED_PIN 9 // the Arduino PWM pin connected to the LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long fadeStartTime; // the setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // declare pin 9 to be an output fadeStartTime = millis(); } // fade-in in loop, and restart after finishing void loop() { unsigned long progress = millis() - fadeStartTime; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fadeStartTime = millis(); // restart fade again } }

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

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-led-fade */ #define LED_PIN 9 // the Arduino PWM pin connected to the LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long fadeStartTime; // the setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // declare pin 9 to be an output fadeStartTime = millis(); } // fade-in in loop, and restart after finishing void loop() { unsigned long progress = millis() - fadeStartTime; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fadeStartTime = millis(); // restart fade again } }

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

Verander de helderheid van de LED met behulp van een potentiometer. Tip: Raadpleeg de Arduino - Potentiometer.

Aanvullende kennis

  • Het PWM-signaal dat wordt gegenereerd door de analogWrite() functie laat een LED vervagen. Dit komt doordat het een hoogfrequent PWM-signaal is. Als we een aangepaste functie maken (vereist gevorderde kennis) die een laagfrequent PWM-signaal genereert, zal de LED knipperen in plaats van vervagen.
  • Samenvatting: PWM-signalen kunnen in Arduino worden gebruikt om: servomotoren te besturen, DC-motoren aan te sturen, geluid te maken met een piezo buzzer, LED te laten vervagen, LED te laten knipperen ...

Functie verwijzingen

Opmerkingen

※ 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!