Les 98-7: Looplig met Arduino en 5 LED's
'n Looplig (ook genoem 'n "jaag" of "Knight Rider"-lig) is een van die klassieke beginner Arduino-projekte — en met goeie rede. Dit leer jou hoe om verskeie uitsette in volgorde te beheer, hoe om gebeure te tyd, en hoe om oor stroombeperkende weerstande te dink, alles terwyl jy iets visueel bevredigends produseer. In hierdie projek sal jy vyf LED's aan 'n Arduino koppel en hulle programmeer sodat elkeen om die beurt verlig, wat die illusie skep van 'n enkele lig wat langs die ry "loop".
Sodra jy die patroon verstaan, kan jy dit in 'n verbasende aantal werklike bouprojekte hergebruik:
- Dekoratiewe beligting: 'n jaende rand vir 'n rak, fotoraam of model.
- Rigtingaanwysers: 'n opeenvolgende draai-sein-effek vir 'n rekwisietvoertuig of e-bike.
- Vordering- of statusvertoning: 'n ry LED's wat vorder soos 'n proses voltooi word.
- Speletjie- en telbord-rekwisiete: 'n "bewegende teiken" of vlakaanwyser.
- Onderrigmateriaal: die duidelikste moontlike demonstrasie van digitale uitsette en tydsberekening.
Dieselfde vyf-LED-bedrading word in verskeie ander projekte in hierdie kursus hergebruik, so die hardeware wat jy hier bou, word 'n herbruikbare platform.
Hoe die Looplig Werk
Die beginsel is presies dieselfde as om 'n enkele LED aan te skakel — dit word bloot vyf keer herhaal (in video by 30:47). Elke LED is aan sy eie Arduino-pen gekoppel deur sy eie stroombeperkende weerstand, en al die weerstande deel 'n gemeenskaplike grondrel. Die skets skakel dan een pen HOOG, wag, skakel dit LAAG, wag, en beweeg aan na die volgende pen. Omdat slegs een LED op 'n slag aan is, lees die oog die volgorde as beweging.
Die twee tydswaardes is wat die effek sy karakter gee. Die aan-tyd beheer hoe lank elke LED verlig bly, en die af-tyd beheer die gaping voordat die volgende LED verlig. 'n Kort aan-tyd met 'n lang af-tyd produseer 'n enkele kol wat vinnig beweeg; 'n lang aan-tyd met 'n kort af-tyd produseer 'n gladder, meer aaneenlopende swiep (in video by 35:00).
Hardeware en Komponente
- 1 × Arduino-bord (Uno, Nano, of soortgelyk)
- 5 × LED's (enige kleur; die meng van kleure maak die effek makliker om te lees)
- 5 × weerstande — 300 Ω tot 1 kΩ werk goed
- 1 × broodbord
- Jumper-drade
- USB-kabel of battery-pak vir krag
As jy later 'n drukknop-variant wil byvoeg, sal jy ook een momentêre drukknop en twee ekstra jumper-drade nodig hê.
Kies die Weerstandwaarde
'n LED het 'n voorwaartse spanning van ongeveer 2 V en wil ongeveer 10 mA hê vir vol helderheid (in video by 03:49). Met 'n 5 V-toevoer moet die weerstand die oorblywende 3 V laat val. Deur Ohm se wet toe te pas, R = V / I = 3 V / 0.01 A = 300 Ω. In die praktyk sal enigiets van 300 Ω tot ongeveer 1 kΩ werk — hoe hoër die weerstand, hoe dowwer die LED, maar hoe veiliger en doeltreffender die stroombaan (in video by 05:33).
Bedradingsgids
Plaas die vyf LED's in die broodbord met hul anodes (die langer been) in dieselfde rigting. Verbind elke katode (die korter, platkantige been) aan sy eie weerstand, en verbind die verste punt van al vyf weerstande aan 'n gemeenskaplike grondrel. Voer dan 'n jumper van elke anode na 'n Arduino-pen.
In hierdie bou word die LED's aan penne 3, 4, 5, 6 en 7 toegewys (in video by 31:29). Die pennommers word aan die bokant van die skets gedefinieer, so as jy 'n ander rangskikking verkies, hoef jy net daardie vyf lyne te verander.
Kode-verduideliking
Die skets is doelbewus eenvoudig sodat 'n beginner elke lyn kan volg. Slegs die blok heel bo moet vir jou eie opstelling geredigeer word.
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
Pen-definisies. Die vyf const int-lyne koppel elke LED aan 'n fisiese Arduino-pen. Omdat hulle as const verklaar is, kan die waardes nie later in die program verander word nie — dit is 'n veiligheidsgewoonte wat toevallige hertoewysing voorkom. As jy jou LED's aan verskillende penne koppel, verander die nommers hier en niks anders nie.
onTime en offTime. Hierdie twee heelgetalle is die enigste "gedrag"-veranderlikes in die projek, en dit is die wat jy sal wil eksperimenteer:
onTime— hoe lank (in millisekondes) elke LED verlig bly. Groter waardes laat elke stap stadiger en meer doelbewus voel.offTime— die pouse nadat 'n LED afskakel voordat die volgende een verlig. Kleiner waardes laat die lig vinniger beweeg.
Probeer onTime = 200 en offTime = 200 vir 'n gelyke, medium-spoed jaagtog, of onTime = 30 en offTime = 30 vir 'n baie vinnige, byna vervaagde effek (in video by 36:06).
Die setup()-funksie loop een keer en stel bloot al vyf penne na OUTPUT-modus. Die loop()-funksie herhaal dan dieselfde vier-stap-patrone vir elke LED: dryf die pen HOOG, wag onTime, dryf dit LAAG, wag offTime. Wanneer die vyfde LED klaarmaak, herbegin die lus vanaf die eerste, wat 'n eindelose wandeling produseer.
Lewende Projek en Demonstrasie
Met die verstekwaardes stap die LEDs teen 'n ontspanne tempo langs die ry. Om die skets op te laai met onTime en offTime op 200 ms gestel, gee 'n bestendige, gelyke mars; om beide na 30 ms te laat val, maak die ligstreep oor die ry byna te vinnig om te volg (in video by 36:21).
Twee nuttige eksperimente om te probeer sodra dit werk:
- Maak die aan-tyd korter as die af-tyd om 'n duidelike reisende kol te skep.
- Maak die aan-tyd langer as die af-tyd om 'n sagte, oorvleuelende gloed te skep.
Dieselfde vyf-LED-bedrading word in die volgende projek hergebruik, waar 'n drukknop die lig een stap op 'n slag laat vorder. Daardie bou word gedek in Les 98-8: Wandelende Lig met Drukknop en LEDs met Arduino.
As jy eerder die ry vanaf 'n analoog inset eerder as 'n knoppie wil dryf, sien Les 98-9: LED Spanningvlakmeter met Arduino of wandelende lig met potensiometer.
Om dit verder te neem
Sodra die basiese wandeling werk, is 'n natuurlike volgende stap om die lig heen en weer te laat bons eerder as om van die laaste LED na die eerste te spring. Dit is 'n suiwer kode-oefening — geen ekstra hardeware nie — en dit is 'n goeie manier om lusse en skikkings te oefen. Jy kan ook hierdie projek met die drukknop-weergawe kombineer om 'n handmatig gevorderde vertoning te bou.
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 Drukknop met Arduino
- Les 98-3: Hoe om 'n Wissel-LED aan/af te skakel met 'n Drukknop met Arduino
- Les 98-4: Vervaag 'n LED Lig met Arduino: Helderheidbeheer
- Les 98-5: Vervaag Lig Wanneer 'n Knoppie Gedruk Word met Arduino
- Les 98-6: Wipplank LED Speletjie met Arduino
- Les 98-8: Wandelende Lig met Drukknop en LEDs met Arduino
- Les 98-9: LED Spanningvlakmeter met Arduino of wandelende lig met potensiometer
- Les 98-10: Arduino Verkeerslig
Hoofstukke
- [00:00] Oorsig van die tien LED-projekte
- [01:22] Inleiding tot die Arduino stap-vir-stap kursus
- [02:29] Wat 'n LED is en hoe om sy penne te identifiseer
- [03:49] Bereken die stroombeperkende weerstand
- [30:47] Stel die wandelende lig-projek bekend
- [31:06] Bedradingsdiagram vir vyf LEDs
- [32:52] Wandelende lig-kode deurloop
- [34:39] Demonstrasie en verandering van die tydwaardes
- [36:41] Vorder die lig met 'n drukknop (aparte tutoriaal)
- [42:25] LED spanningbalk met potensiometer (aparte tutoriaal)
- [49:25] Arduino verkeerslig (aparte tutoriaal)
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