Lekcija 98-7: Hodajuće svjetlo korištenjem Arduina i 5 LED dioda
Hodajuće svjetlo (koje se još naziva i "jureće" ili "Knight Rider" svjetlo) jedan je od klasičnih Arduino projekata za početnike — i to s dobrim razlogom. Uči vas kako kontrolisati više izlaza u nizu, kako mjeriti vrijeme događaja i kako razmišljati o otpornicima za ograničavanje struje, a sve to dok stvarate nešto vizuelno zadovoljavajuće. U ovom projektu spojit ćete pet LED dioda na Arduino i programirati ih tako da se svaka redom uključuje, stvarajući iluziju jednog svjetla koje "hoda" duž niza.
Kada shvatite obrazac, možete ga prenamijeniti u iznenađujuće velikom broju stvarnih projekata:
- Dekorativna rasvjeta: jureći obrub za policu, okvir za sliku ili maketu.
- Pokazivači smjera: efekat sekvencijalnog žmigavca za repliku vozila ili električni bicikl.
- Prikaz napretka ili statusa: niz LED dioda koji napreduje kako se proces završava.
- Rekviziti za igre i semafore rezultata: "pokretna meta" ili indikator nivoa.
- Nastavno pomagalo: najjasnija moguća demonstracija digitalnih izlaza i mjerenja vremena.
Isti raspored ožičenja s pet LED dioda ponovo se koristi u nekoliko drugih projekata u ovom kursu, tako da hardver koji ovdje napravite postaje platforma koja se može ponovo koristiti.
Kako hodajuće svjetlo funkcioniše
Princip je potpuno isti kao uključivanje jedne LED diode — samo se ponavlja pet puta (u videu na 30:47). Svaka LED dioda spojena je na vlastiti Arduino pin preko vlastitog otpornika za ograničavanje struje, a svi otpornici dijele zajedničku šinu uzemljenja. Skica zatim postavlja jedan pin na HIGH, čeka, postavlja ga na LOW, čeka i prelazi na sljedeći pin. Budući da je uvijek uključena samo jedna LED dioda, oko sekvencu čita kao kretanje.
Dvije vrijednosti vremena su ono što efektu daje njegov karakter. Vrijeme uključenosti kontroliše koliko dugo svaka LED dioda ostaje upaljena, a vrijeme isključenosti kontroliše razmak prije nego što se sljedeća LED dioda upali. Kratko vrijeme uključenosti s dugim vremenom isključenosti proizvodi jednu tačku koja putuje brzo; dugo vrijeme uključenosti s kratkim vremenom isključenosti proizvodi glatkiji, kontinuiraniji prelaz (u videu na 35:00).
Hardver i komponente
- 1 × Arduino ploča (Uno, Nano ili slična)
- 5 × LED dioda (bilo koje boje; miješanje boja olakšava čitanje efekta)
- 5 × otpornika — 300 Ω do 1 kΩ rade dobro
- 1 × breadboard
- Jumper žice
- USB kabel ili baterijski paket za napajanje
Ako kasnije želite dodati varijantu s push-buttonom, trebat će vam i jedan trenutni push button i dvije dodatne jumper žice.
Odabir vrijednosti otpornika
LED dioda ima prednji napon od otprilike 2 V i želi oko 10 mA za punu svjetlinu (u videu na 03:49). Uz napajanje od 5 V, otpornik mora spustiti preostala 3 V. Primjenom Ohmovog zakona, R = V / I = 3 V / 0,01 A = 300 Ω. U praksi će raditi bilo šta od 300 Ω do oko 1 kΩ — što je otpor veći, LED dioda je slabija, ali je krug sigurniji i efikasniji (u videu na 05:33).
Vodič za ožičenje
Umetnite pet LED dioda u breadboard s njihovim anodama (duža nožica) okrenutim u istom smjeru. Spojite svaku katodu (kraća nožica s ravnom stranom) na vlastiti otpornik i spojite kraj svih pet otpornika na zajedničku šinu uzemljenja. Zatim provedite jumper od svake anode do Arduino pina.
U ovoj izradi LED diode su dodijeljene pinovima 3, 4, 5, 6 i 7 (u videu na 31:29). Brojevi pinova definirani su na vrhu skice, tako da ako želite drugačiji raspored, trebate promijeniti samo tih pet linija.
Objašnjenje koda
Skica je namjerno jednostavna kako bi početnik mogao pratiti svaku liniju. Samo blok na samom vrhu treba urediti za vlastito postavljanje.
const int LED1 = 3;
const int LED2 = 4;
const int LED3 = 5;
const int LED4 = 6;
const int LED5 = 7;
int offTime = 30; // the time each LED waits in the OFF state
int onTime = 100; // the time each LED is ON
Definicije pinova. Pet const int linija mapira svaku LED diodu na fizički Arduino pin. Budući da su deklarirane kao const, vrijednosti se ne mogu mijenjati kasnije u programu — to je sigurnosna navika koja sprječava slučajno ponovno dodjeljivanje. Ako svoje LED diode spojite na druge pinove, promijenite brojeve ovdje i ništa drugo.
onTime i offTime. Ova dva cijela broja jedine su varijable "ponašanja" u projektu i one su s kojima ćete htjeti eksperimentisati:
onTime— koliko dugo (u milisekundama) svaka LED dioda ostaje upaljena. Veće vrijednosti čine da svaki korak izgleda sporije i promišljenije.offTime— pauza nakon što se LED dioda isključi prije nego što se sljedeća upali. Manje vrijednosti čine da svjetlo putuje brže.
Isprobajte onTime = 200 i offTime = 200 za ravnomjeran lov srednje brzine, ili onTime = 30 i offTime = 30 za vrlo brz, gotovo zamućen efekat (u videu na 36:06).
Funkcija setup() se izvršava jednom i jednostavno postavlja svih pet pinova na OUTPUT režim. Funkcija loop() zatim ponavlja isti obrazac od četiri koraka za svaku LED diodu: postavi pin na HIGH, sačekaj onTime, postavi ga na LOW, sačekaj offTime. Kada peta LED dioda završi, petlja počinje ponovo od prve, stvarajući beskonačno kretanje.
Projekat uživo i demonstracija
Sa zadanim vrijednostima LED diode koračaju duž reda opuštenim tempom. Učitavanje skice sa onTime i offTime postavljenim na 200 ms daje stabilan, ravnomjeran hod; smanjenje oba na 30 ms čini da svjetlo juri preko reda gotovo prebrzo da bi se pratilo (u videu na 36:21).
Dva korisna eksperimenta za isprobati kada proradi:
- Neka vrijeme uključenosti bude kraće od vremena isključenosti da stvorite izraženu putujuću tačku.
- Neka vrijeme uključenosti bude duže od vremena isključenosti da stvorite mekani sjaj koji se preklapa.
Ista instalacija s pet LED dioda se ponovo koristi u sljedećem projektu, gdje push dugme pomjera svjetlo jedan korak po jedan. Ta izrada je obrađena u Lekcija 98-8: Pokretno svjetlo s push dugmetom i LED diodama uz Arduino.
Ako biste radije upravljali redom putem analognog ulaza umjesto dugmeta, pogledajte Lekcija 98-9: LED mjerač naponskog nivoa uz Arduino ili pokretno svjetlo s potenciometrom.
Idemo dalje
Kada osnovno kretanje proradi, prirodan sljedeći korak je učiniti da se svjetlo kreće naprijed-nazad umjesto da skače s posljednje LED diode na prvu. To je čista vježba kodiranja — bez dodatnog hardvera — i dobar je način da uvježbate petlje i nizove. Također možete kombinovati ovaj projekat s verzijom s push dugmetom da napravite ručno upravljani displej.
Povezani projekti iz ovog videa
- Lekcija 98-1: Kako uključiti i isključiti LED diodu uz Arduino
- Lekcija 98-2: Kako uključiti i isključiti LED diodu pomoću push dugmeta uz Arduino
- Lekcija 98-3: Kako uključiti/isključiti toggle LED diodu pomoću push dugmeta uz Arduino
- Lekcija 98-4: Postepeno paljenje i gašenje LED svjetla uz Arduino: kontrola svjetline
- Lekcija 98-5: Postepeno paljenje svjetla kada se pritisne dugme uz Arduino
- Lekcija 98-6: Seesaw LED igra s Arduinom
- Lekcija 98-8: Pokretno svjetlo s push dugmetom i LED diodama uz Arduino
- Lekcija 98-9: LED mjerač naponskog nivoa uz Arduino ili pokretno svjetlo s potenciometrom
- Lekcija 98-10: Arduino semafor
Poglavlja
- [00:00] Pregled deset LED projekata
- [01:22] Uvod u Arduino kurs korak po korak
- [02:29] Šta je LED dioda i kako prepoznati njene pinove
- [03:49] Izračunavanje otpornika za ograničavanje struje
- [30:47] Predstavljanje projekta pokretnog svjetla
- [31:06] Šema povezivanja za pet LED dioda
- [32:52] Objašnjenje koda pokretnog svjetla
- [34:39] Demonstracija i promjena vrijednosti vremena
- [36:41] Pomicanje svjetla pomoću push dugmeta (odvojeni tutorijal)
- [42:25] LED naponska traka s potenciometrom (odvojeni tutorijal)
- [49:25] Arduino semafor (odvojeni tutorijal)
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