Lekcija 98-4: Postepeno gašenje LED svjetla pomoću Arduina: Kontrola svjetline
LED diode su svuda — indikatori, displeji, dekorativna rasvjeta — ali većina početnika stane na jednostavnom uključivanju i isključivanju. Ovaj projekat čini sljedeći korak: glatko postepeno paljenje i gašenje LED diode koristeći ugrađenu PWM (Pulse Width Modulation) mogućnost Arduino-a. Umjesto oštrog treptanja, dobijate postepeno povećanje i smanjenje svjetline koje oponaša prirodno zatamnjenje, efekte disanja i analognu kontrolu s čisto digitalnog pina. To je jedan od najzadovoljavajućih prvih projekata jer možete odmah vidjeti rezultat, a ista tehnika je osnova za kontrolu brzine motora, jačinu zvuka i zatamnjenje pozadinskog osvjetljenja u stvarnim proizvodima.
Kada shvatite postepeno paljenje i gašenje, možete ga primijeniti na širok spektar praktičnih projekata:
- Kreiranje indikatora statusa koji "diše" na uređaju koji pulsira nježno umjesto da treperi ometajuće
- Automatsko zatamnjenje LED noćnog svjetla na osnovu ambijentalnog svjetla ili doba dana
- Kontrola svjetline pozadinskog osvjetljenja na LCD ili OLED displeju
- Izrada ambijentalne rasvjete ili dekorativnih lampi s glatkim prijelazima između nivoa svjetline
- Simulacija sporog budilnika s izlaskom sunca koji postepeno pojačava svjetlo da bi vas prirodno probudio
- Dodavanje kontrole brzine malim DC motorima ili ventilatorima (primjenjuje se isti PWM princip)
Ovaj tutorijal je dio Robojax Arduino kursa korak po korak, i konkretno pokriva Projekat 4 od 10: Postepeno paljenje i gašenje LED svjetla koristeći Arduino. Kompletan program je dostupan za preuzimanje ispod članka.
Hardver i komponente
Lista dijelova za ovaj projekat je minimalna — ako ste ikada radili s Arduino-om, vjerovatno već imate sve što vam treba:
- 1× Arduino ploča (Uno, Nano, Mega ili bilo koja kompatibilna ploča)
- 1× LED dioda (5mm ili 3mm, bilo koja boja)
- 1× Otpornik (200Ω do 1000Ω — raspon od 300Ω do 1kΩ dobro funkcioniše)
- Breadboard i DuPont spojne žice
- USB kabel za programiranje i napajanje
Važna napomena o LED diodi: duža nožica je anoda (pozitivna), a kraća nožica — ili strana s ravnom ivicom na plastičnom kućištu — je katoda (negativna). Ako ovo okrenete, LED dioda jednostavno neće svijetliti, pa provjerite dvaput prije uključivanja napajanja.
Za vrijednost otpornika, transkript prolazi kroz matematiku na (u videu na 03:49): tipična LED dioda ima pad napona od oko 2V i treba joj otprilike 10mA struje. Uz napajanje od 5V, preostala 3V moraju se spustiti na otporniku, što daje R = V/I = 3V / 0.01A = 300Ω. U praksi, bilo šta od 300Ω do 1000Ω će raditi — veće vrijednosti samo proizvode slabiju LED diodu. Za postepeno paljenje i gašenje, to je zapravo u redu, jer ionako mijenjate svjetlinu.
Vodič za povezivanje
Povezivanje je otprilike najjednostavnije moguće. Anoda LED diode se povezuje preko otpornika na pin Arduino-a koji podržava PWM — u ovom projektu, pin 3. Katoda se povezuje na masu.
Zašto baš pin 3? Zato što ne podržavaju svi Arduino pinovi PWM. Na većini Arduino ploča, pinovi koji podržavaju PWM su označeni simbolom tilde (~) — obično pinovi 3, 5, 6, 9, 10 i 11 na Uno-u. Ako koristite pin koji ne podržava PWM, analogWrite() neće proizvesti promjenjivi izlaz; LED dioda će samo biti uključena ili isključena.
Povežite kolo na sljedeći način:
- Umetnite LED diodu u breadboard, obraćajući pažnju na to koja nožica je anoda (duža), a koja katoda (kraća/ravna strana).
- Povežite anodu LED diode na Arduino pin 3 preko otpornika.
- Povežite katodu LED diode na GND pin Arduino-a.
- Priključite Arduino na računar putem USB-a.
Objašnjenje koda
Skica za ovaj projekat je zasnovana na klasičnom Arduino primjeru "Fade", s nekoliko izmjena. Umjesto objašnjavanja svake linije, fokusirajmo se na dijelove koje ćete htjeti prilagoditi za vlastite eksperimente.
Korisnički podesive varijable
Na vrhu koda, tri varijable kontrolišu cjelokupno ponašanje:
int led = 3; // the PWM pin the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 3; // how many points to fade the LED byled— Ovo definira na koji je pin LED spojen. Zadano je pin 3, ali ga možete promijeniti na bilo koji pin koji podržava PWM (označen sa ~ na vašoj ploči). Ako premjestite LED na drugi pin, ažurirajte ovu vrijednost da odgovara.brightness— Ovo je trenutni nivo svjetline, u rasponu od 0 (isključeno) do 255 (puna svjetlina). Kod ga pokreće na 0, ali možete ga pokrenuti bilo gdje u tom rasponu.fadeAmount— Ovo je najzanimljivije za eksperimentisanje. Kontroliše koliko se koraka svjetline poduzme u svakom ciklusu. Mala vrijednost poput 3 proizvodi sporo, postepeno zatamnjenje. Veća vrijednost poput 20 čini da LED treperi i gasi se vrlo brzo. Transkript to demonstrira na (u videu na 22:37) — promjena sa 5 na 20 dramatično ubrzava efekat.
Kako funkcioniše zatamnjenje
Suština zatamnjenja odvija se u dvije linije unutar loop():
analogWrite(led, brightness);
brightness = brightness + fadeAmount;
Svaki prolaz kroz petlju, trenutna vrijednost svjetline se upisuje na LED pomoću analogWrite(), zatim se svjetlina povećava za fadeAmount. Funkcija analogWrite() koristi PWM za simulaciju analognog napona — brzo uključuje i isključuje pin, a odnos vremena uključenosti i isključenosti određuje percipiranu svjetlinu.
Kada svjetlina dostigne 0 ili 255, kod mijenja smjer okretanjem predznaka fadeAmount:
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
To je ono što čini da se LED postepeno pali, zatim gasi, pa ponovo pali — kontinuirani ciklus disanja. delay(30) na kraju petlje kontroliše ukupnu brzinu animacije. Kraće kašnjenje čini zatamnjenje bržim; duže kašnjenje ga usporava.
Eksperimentisanje s vrijednostima
Dvije varijable vam daju najveću kontrolu nad vizualnim efektom:
- Povećajte
fadeAmountza brže, dramatičnije zatamnjenje. Pokušajte 10 ili 20. - Smanjite
fadeAmountza spori, nježni efekat disanja. Pokušajte 1 ili 2. - Prilagodite vrijednost
delay()da promijenite tempo. Manja kašnjenja čine cijeli ciklus bržim; veća kašnjenja ga rastežu.
Kombinacija malog fadeAmount s kratkim kašnjenjem proizvodi izuzetno glatko, gotovo organsko zatamnjenje — odlično za ambijentalno osvjetljenje. Veliki fadeAmount s kratkim kašnjenjem stvara efekat brzog pulsiranja.
Demonstracija projekta uživo
Kada se kod učita, vidjet ćete kako LED polako pojačava svjetlinu od isključenog do pune svjetline, zatim se ponovo zatamnjuje, ponavljajući se neograničeno. Transkript prikazuje zadano ponašanje na (u videu na 22:25) — glatko zatamnjenje umjerene brzine.
Kada se fadeAmount promijeni na 20, LED se pali i gasi vrlo brzo — gotovo poput treperenja. Kada se postavi na 3, zatamnjenje traje primjetno duže, stvarajući opušten, postepen prelaz. To je jasno demonstrirano u videu na (u videu na 23:02).
Ljepota ovog projekta je u tome što možete odmah vidjeti efekat svojih promjena koda — nisu potrebne promjene ožičenja, samo uredite varijable i ponovo učitajte. Taj tijesni ciklus povratnih informacija čini ga odličnim načinom za izgradnju intuicije o tome kako PWM i tajming međusobno djeluju.
Ako želite ovo proširiti pokretanjem zatamnjenja pomoću push dugmeta umjesto da radi neprekidno, to je obrađeno u zasebnom tutorijalu — pogledajte odjeljak povezanih projekata ispod.
Povezani projekti iz ovog videa
- Lekcija 98-1: Kako uključiti i isključiti LED pomoću Arduina
- Lekcija 98-2: Kako uključiti i isključiti LED pomoću push dugmeta s Arduinom
- Lekcija 98-3: Kako uključiti/isključiti toggle LED pomoću push dugmeta s Arduinom
- Lekcija 98-5: Zatamnite svjetlo kada se pritisne dugme pomoću Arduina
- Lekcija 98-6: Seesaw LED igra s Arduinom
- Lekcija 98-7: Walking Light pomoću Arduina i 5 LED dioda
- Lekcija 98-8: Walking Light s push dugmetom i LED diodama s Arduinom
- Lekcija 98-9: LED mjerač napona pomoću Arduina ili walking light s potenciometrom
- Lekcija 98-10: Arduino semafor
Poglavlja
- [00:00] Pregled 10 Arduino LED projekata
- [01:22] Uvod u kurs i potrebne komponente
- [02:29] Razumijevanje LED dioda: simboli, polaritet i vrste
- [03:49] Izračunavanje vrijednosti otpornika za LED pomoću Ohmovog zakona
- [05:53] Projekat 1: Uključivanje i isključivanje LED
- [12:43] Projekat 2: Upravljanje LED pomoću push dugmeta
- [17:13] Projekat 3: Toggle LED s push dugmetom
- [20:12] Projekat 4: Zatamnjenje LED — pregled koda
- [22:25] Demonstracija zatamnjenja i podešavanje brzine zatamnjenja
- [23:20] Projekat 5: Zatamnjenje LED s okidačem na push dugme
- [27:32] Projekat 6: Seesaw LED efekat
- [30:47] Projekat 7: Walking light s 5 LED dioda
- [36:41] Projekat 8: Walking light kontrolisan push dugmetom
- [42:25] Projekat 9: LED mjerač napona s potenciometrom
- [49:25] Projekat 10: Arduino semafor
This code has not been parsed yet. Please return to the admin panel to parse it.
Stvari koje bi vam mogle zatrebati
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
Resursi i reference
-
DokumentacijaDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
Eksterno
-
Eksterno
-
Eksterno
Datoteke📁
Arduino biblioteke (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB
Korisnički priručnik
-
SunFounder 3-u-1 Arduino Smart Car priručnik za sastavljanjeOvaj dokument prikazuje korak po korak sastavljanje SunFounder 3-u-1 Arduino Smart Car-a
SunFounder_car_assembly_manual.pdf1.20 MB