Les 98-4: Laat 'n LED-lig vervaag met Arduino: Helderheidsbeheer
LED's is oral — aanwysers, uitstallings, dekoratiewe beligting — maar die meeste beginners stop by bloot om een aan en af te skakel. Hierdie projek neem die volgende stap: om 'n LED glad in en uit te laat vervaag met behulp van Arduino se ingeboude PWM (Pulse Width Modulation) vermoë. In plaas van 'n harde knip, kry jy 'n geleidelike styging en daling in helderheid wat natuurlike dimming, asemhalingseffekte en analoog-agtige beheer vanaf 'n suiwer digitale pen naboots. Dit is een van die mees bevredigende eerste projekte omdat jy die resultaat onmiddellik kan sien, en dieselfde tegniek onderlê motorspoedbeheer, klankvolume en agtergrondverligting in werklike produkte.
Sodra jy vervaag verstaan, kan jy dit toepas op 'n wye reeks praktiese bouwerke:
- Die skep van 'n "asemhalende" statusaanwyser op 'n toestel wat saggies pols eerder as om aandag-afleidend te knip
- Die outomatiese dim van 'n LED-naglig op grond van omgewingslig of tyd van die dag
- Die beheer van die helderheid van 'n agtergrondverligting op 'n LCD- of OLED-skerm
- Die bou van stemmingbeligting of dekoratiewe lampe met gladde oorgange tussen helderheidsvlakke
- Die simuleer van 'n stadige sonsopkoms-wekker wat geleidelik helderder word om jou natuurlik wakker te maak
- Die byvoeg van spoedbeheer by klein GS-motors of waaiers (dieselfde PWM-beginsel geld)
Hierdie tutoriaal is deel van die Robojax Arduino Stap-vir-Stap Kursus, en dek spesifiek Projek 4 van 10: Vervaag 'n LED-lig met behulp van Arduino. Die volledige program is beskikbaar vir aflaai onder die artikel.
Hardeware en Komponente
Die onderdelenlys vir hierdie projek is minimaal — as jy al voorheen enige Arduino-werk gedoen het, het jy waarskynlik reeds alles wat jy nodig het:
- 1× Arduino-bord (Uno, Nano, Mega, of enige versoenbare bord)
- 1× LED (5mm of 3mm, enige kleur)
- 1× Weerstand (200Ω tot 1000Ω — 'n 300Ω tot 1kΩ reeks werk goed)
- Broodplank en DuPont-verbindingsdrade
- USB-kabel vir programmering en krag
Een belangrike opmerking oor die LED: die langer been is die anode (positief), en die korter been — of die kant met die plat rand op die plastiekomhulsel — is die katode (negatief). Om dit omgekeerd te kry, beteken die LED sal eenvoudig nie verlig nie, so maak seker voordat jy aanskakel.
Vir die weerstandwaarde, werk die transkripsie deur die wiskunde by (in video by 03:49): 'n tipiese LED val ongeveer 2V en benodig ongeveer 10mA stroom. Met 'n 5V-toevoer, moet die oorblywende 3V oor die weerstand val, wat R = V/I = 3V / 0.01A = 300Ω gee. In die praktyk sal enigiets van 300Ω tot 1000Ω werk — hoër waardes produseer net 'n dowwer LED. Vir vervaag is dit eintlik goed, aangesien jy tog helderheid verander.
Bedradingsgids
Die bedrading is omtrent so eenvoudig as wat dit kom. Die LED se anode verbind deur 'n weerstand aan 'n PWM-vermoënde pen op die Arduino — in hierdie projek, pen 3. Die katode verbind aan grond.
Hoekom pen 3 spesifiek? Omdat nie alle Arduino-penne PWM ondersteun nie. Op die meeste Arduino-borde word die PWM-vermoënde penne gemerk met 'n tilde-simbool (~) — tipies penne 3, 5, 6, 9, 10, en 11 op 'n Uno. As jy 'n nie-PWM-pen gebruik, sal analogWrite() nie 'n veranderlike uitset produseer nie; die LED sal net aan of af wees.
Verbind die stroombaan soos volg:
- Plaas die LED in die broodplank, let op watter been die anode (langer) is en watter die katode (korter/plat kant) is.
- Verbind die LED se anode aan Arduino pen 3 deur die weerstand.
- Verbind die LED se katode aan die Arduino se GND-pen.
- Prop die Arduino in jou rekenaar via USB.
Kode Verduideliking
Die skets vir hierdie projek is gebaseer op die klassieke Arduino "Fade"-voorbeeld, met 'n paar aanpassings. Eerder as om elke reël te verduidelik, kom ons fokus op die dele wat jy sal wil aanpas vir jou eie eksperimente.
Gebruiker-Configureerbare Veranderlikes
Bo-aan die kode beheer drie veranderlikes die hele gedrag:
int led = 3; // die PWM-pen waaraan die LED geheg is
int brightness = 0; // hoe helder die LED is
int fadeAmount = 3; // hoeveel punte om die LED te vervaag metled— Dit definieer aan watter pen die LED gekoppel is. Die verstek is pen 3, maar jy kan dit verander na enige PWM-geskikte pen (gemerk met ~ op jou bord). As jy die LED na 'n ander pen skuif, werk hierdie waarde op om te pas.brightness— Dit is die huidige helderheidsvlak, wat wissel van 0 (af) tot 255 (volle helderheid). Die kode begin dit op 0, maar jy kan dit enige plek in daardie reeks begin.fadeAmount— Dit is die interessantste een om mee te speel. Dit beheer hoeveel helderheid-"stappe" elke siklus geneem word. 'n Klein waarde soos 3 produseer 'n stadige, geleidelike vervaging. 'n Groter waarde soos 20 laat die LED baie vinnig in- en uitvervaag. Die transkripsie demonstreer dit by (in video by 22:37) — verandering van 5 na 20 versnel die effek dramaties.
Hoe die Vervaging Werk
Die kern van die vervaging gebeur in twee reëls binne loop():
analogWrite(led, brightness);
brightness = brightness + fadeAmount;
Elke keer wat deur die lus gegaan word, word die huidige helderheidswaarde na die LED geskryf met analogWrite(), dan word die helderheid verhoog met fadeAmount. Die analogWrite()-funksie gebruik PWM om 'n analoog spanning te simuleer — dit skakel die pen vinnig aan en af, en die verhouding van aan-tyd tot af-tyd bepaal die waargenome helderheid.
Wanneer helderheid 0 of 255 bereik, keer die kode die rigting om deur die teken van fadeAmount om te draai:
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
Dit is wat die LED laat invervaag, dan uitvervaag, dan weer invervaag — 'n deurlopende asemhalingsiklus. Die delay(30) aan die einde van die lus beheer die algehele spoed van die animasie. 'n Korter vertraging maak die vervaging vinniger; 'n langer vertraging vertraag dit.
Eksperimenteer met die Waardes
Twee veranderlikes gee jou die meeste beheer oor die visuele effek:
- Verhoog
fadeAmountvir 'n vinniger, meer dramatiese vervaging. Probeer 10 of 20. - Verlaag
fadeAmountvir 'n stadige, sagte asemhalingseffek. Probeer 1 of 2. - Pas die
delay()-waarde aan om die tempo te verander. Kleiner vertragings maak die hele siklus vinniger; groter vertragings rek dit uit.
Die kombinasie van 'n klein fadeAmount met 'n kort vertraging produseer 'n uiters gladde, byna organiese vervaging — wonderlik vir omgewingsbeligting. 'n Groot fadeAmount met 'n kort vertraging skep 'n vinnige polsende effek.
Lewendige Projekdemonstrasie
Sodra die kode opgelaai is, sal jy sien hoe die LED stadig verhelder van af tot volle helderheid, dan weer verdof, en dit herhaal onbepaald. Die transkripsie wys die verstekgedrag by (in video by 22:25) — 'n gladde, matige-spoed vervaging.
Wanneer die fadeAmount na 20 verander word, vervaag die LED baie vinnig in en uit — amper soos 'n flikkering. Wanneer dit op 3 gestel is, neem die vervaging merkbaar langer, wat 'n ontspanne, geleidelike oorgang skep. Dit word duidelik in die video by (in video by 23:02) gedemonstreer.
Die skoonheid van hierdie projek is dat jy die effek van jou kodeveranderinge onmiddellik kan sien — geen bedradingsveranderinge nodig nie, redigeer net die veranderlikes en laai weer op. Daardie stywe terugvoerlus maak dit 'n uitstekende manier om intuïsie te bou vir hoe PWM en tydsberekening interaksie het.
As jy dit verder wil neem deur die vervaging met 'n drukknoppie te aktiveer eerder as om dit deurlopend te laat loop, word dit in 'n aparte tutoriaal gedek — sien die verwante projekte-afdeling hieronder.
Verwante projekte uit hierdie video
- Les 98-1: Hoe om 'n LED aan en af te skakel met Arduino
- Les 98-2: Hoe om 'n LED aan en af te skakel met 'n drukknoppie met Arduino
- Les 98-3: Hoe om 'n wissel-LED aan/af te skakel met 'n drukknoppie met Arduino
- Les 98-5: Vervaag lig wanneer 'n knoppie gedruk word met Arduino
- Les 98-6: Wipplank LED-speletjie met Arduino
- Les 98-7: Looplig met Arduino en 5 LEDs
- Les 98-8: Looplig met drukknoppie en LEDs met Arduino
- Les 98-9: LED-spanningvlakmeter met Arduino of looplig met potensiometer
- Les 98-10: Arduino-verkeerslig
Hoofstukke
- [00:00] Oorsig van die 10 Arduino LED-projekte
- [01:22] Inleiding tot die kursus en vereiste komponente
- [02:29] Verstaan LEDs: simbole, polariteit en tipes
- [03:49] Bereken die LED-weerstandwaarde met behulp van Ohm se wet
- [05:53] Projek 1: Skakel 'n LED aan en af
- [12:43] Projek 2: LED-beheer met 'n drukknoppie
- [17:13] Projek 3: Wissel LED met drukknoppie
- [20:12] Projek 4: Vervaag 'n LED — kode-deurloop
- [22:25] Vervagingsdemonstrasie en aanpassing van vervagingspoed
- [23:20] Projek 5: Vervaag LED met drukknoppie-sneller
- [27:32] Projek 6: Wipplank LED-effek
- [30:47] Projek 7: Looplig met 5 LEDs
- [36:41] Projek 8: Looplig beheer deur drukknoppie
- [42:25] Projek 9: LED-spanningvlakmeter met potensiometer
- [49:25] Projek 10: Arduino-verkeerslig
This code has not been parsed yet. Please return to the admin panel to parse it.
Goedere wat jy dalk nodig het
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
Hulpbronne en verwysings
-
DokumentasieDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
Buitenburg
-
Buitenburg
-
Buitenburg
Lêers📁
Arduino Biblioteke (zip)
-
SunFounder se 3-in-1 Slim Motor leerstel bronkode
3in1-kit-main-v2.zip12.80 MB
Gebruikershandleiding
-
SunFounder 3-in-1 Arduino Slimmotor-monteringshandleidingHierdie dokument wys stap-vir-stap montering van SunFounder 3-in-1 Arduino Slimmotor
SunFounder_car_assembly_manual.pdf1.20 MB