reklama
Toto je další část naší výuky Arduino série, a tentokrát jsme? Budu se učit a používat Pole vyrobit malou ozdobu vánočního stromu s různými blikajícími sekvencemi. To by byl ideální projekt, jak udržet děti obsazené, pokud byste je chtěli naučit základnímu pájení - stačí namontovat LED diody na kus karty a můžete získat energii ze standardní 9V baterie.
Je to také klíčová lekce v programování Arduino pro začátečníky, i když pokud to neplánujete používat jako ozdobu, rozhodně bych ji doporučil jako prkénko.
Poznámka: Toto je výuka pro začátečníky a určitě jsme vyhráli? neporušuje žádnou novou půdu - ne? s? jen zařízení, které učí koncepty používání Pole a Pro smyčky vypořádat se s velké množství LED (nebo jiná výstupní zařízení).
Pokud máš? Už teď by bylo vhodné sledovat spolu s dalšími články v sérii:
- Co je Arduino a co s tím můžete dělat Co je Arduino a co s tím můžete dělat?Arduino je pozoruhodné malé elektronické zařízení, ale pokud jste ho nikdy předtím nepoužívali, jaké přesně jsou a co s ním můžete dělat? Přečtěte si více ?
- Co je Arduino Starter Kit a co obsahuje? Co je součástí sady Arduino Starter Kit? [MakeUseOf vysvětluje]Předtím jsem zde na MakeUseOf představil open-source hardware Arduino, ale potřebujete něco víc než jen samotného Arduina, abyste z něj něco vytvořili a mohli začít. Arduino "startovací sady" jsou ... Přečtěte si více
- Více skvělých součástí ke koupi se sadou startérů 8 dalších skvělých komponentů pro vaše projekty ArduinoTakže přemýšlíte o získání startovací soupravy Arduino, ale zajímá vás, jestli vám některé základní LED diody a rezistory budou stačit na to, abyste se o víkendu starali? Asi ne. Zde je dalších 8 ... Přečtěte si více
- Začínáme se sadou Arduino Starter Kit? Instalace ovladačů a nastavení desky a portu Začínáme se sadou Arduino Starter Kit - Instalace ovladačů a nastavení desky a portuKoupili jste si tedy startovací soupravu Arduino a možná i nějaké další chladné komponenty - co teď? Jak vlastně začnete s programováním této věci Arduino? Jak to nastavíte ... Přečtěte si více
- Fritzing, bezplatný nástroj pro kreslení schémat zapojení Fritzing - konečný nástroj pro skicování elektronických projektů [Cross Platform]Přestože Fritzing zní jako alcopop, je ve skutečnosti neuvěřitelný kousek svobodného softwaru, který můžete použít k vytvoření schémata obvodů a součástek pro použití s deskami elektroniky pro rychlé prototypování, jako je fantastický open-source Arduino ... Přečtěte si více
- Bližší pohled na strukturu aplikace Arduino a příklad programu Blink První kroky s Arduino: Bližší pohled na desku s obvody a strukturu programuNaposledy jsem vás nechal nastavit Arduino pro práci s Mac nebo Windows a nahrál jednoduchou testovací aplikaci, která blikala na palubní LED. Dnes budu vysvětlovat kód ... Přečtěte si více
Pro tento projekt? Potřebuji alespoň 8 nebo 9 LED v červené nebo zelené, odpor pro každou z nich; prkénko a některé propojovací dráty. Startovací sada od společnosti Ooomlout, kterou jsem si nedávno koupil a která je na tomto tutoriálu zobrazena, nabízí velkou hodnotu za peníze a má více LED a odporů než vy? Budu někdy potřebovat, stejně jako přicházet s úhlednou prkénko a pouzdro Arduino, aby věci zůstaly uklizené.
Tady? je poslední věc:
A video z toho v akci.
Tady? je pohled na zapojení od Fritzing. To? s velmi základní - stačí připojit kladný vodič LED k pinům 2-> cokoli (až ke kolíku 13) a připojte záporné nohy k zemní vložce pomocí odporu. Hodnota I? Zde se používá 560 Ohmů. Že? je to pro zapojení.
Na softwarové straně přemýšlejte o tom, jak byste mohli zapsat všechny tyto LED diody v kódu. Dalo by se to takhle:
int led1 = 2; // první LED na pinu 2. int led2 = 3; // sekundu na pin 3. // etc atd. void loop () {digitalWrite (led1, HIGH); zpoždění (100); digitalWrite (led1, LOW); zpoždění (100); digitalWrite (led2, HIGH); // atd. }
Měli byste být schopni vidět, že s 9 LED diodami se to rychle unaví. Odpověď leží Pole, což když můžete? nepamatuji si naše Programování 101 o základních datových typech Základy počítačového programování 101 - Proměnné a typy datPo představení a mluvení o objektově orientovaném programování před a tam, kde je jeho jmenovec pochází z, myslel jsem si, že je čas, abychom prošli absolutními základy programování v jiném než konkrétním jazyce způsob. Tento... Přečtěte si více - jsou v podstatě jen seznamy.
Syntaxe vypadá takto (umístěte ji jako první řádek v kódu):
int leds [] = {2,3,4,5,6,7,8,9,10};
Hranaté závorky označují, že? proměnná bude Pole. Kudrnaté složené závorky uzavírají seznam čísel pinů, které naše pole bude držet.
Nyní, abychom mohli použít pole, musíme ji adresovat indexovým číslem. index začíná na 0, a proto se vždy zvýší o 1 méně, než je celkový počet věcí v něm (takže u 9 položek by poslední položka měla index 8).
Píšete to takto:
leds [0]
Který by v našem případě přinesl číslo 2, protože? co? s indexem 0 v našem poli.
Po tak daleko? Skvělý. To samo o sobě není? Ale dost pro nás - potřebujeme také nějaký způsob, jak iterovat přes každý prvek našeho pole LED. K tomu použijeme pro smyčku. Syntaxe, která se má provést, je následující:
pro (počáteční proměnná; stav, ve kterém se opakujeme znovu; změnit každou iteraci)
Například:
pro (int i = 0; i <9; i ++)
Což říká
- začněte tuto smyčku s proměnnou, i, který má hodnotu nula
- pokračovat v opakování, pouze když jsem méně než 9? (tak: 0,1,2,3,4,5,6,7,8)
- pokaždé, přidat 1 k i (i ++ je krátký způsob, jak říci i = i + 1)
Takže v podstatě se smyčka bude opakovat tolikrát, kolikrát máme LED, a pokaždé? s opakováním budeme mít proměnnou, i, které můžeme použít, jak se nám líbí.
My? Tuto strukturu budu používat dvakrát. Jakmile je uvnitř funkce nastavení, aby se všechny naše kolíky přepnuly do výstupního režimu, například:
void setup () {for (int i = 0; i <9; i ++) {pinMode (leds [i], OUTPUT); } }
Vidíš, co jsme tam udělali? Namísto psaní 9 řádků kódu pro deklarování každého jednotlivého pin jako výstupu, vytvoříme smyčku „for“, která se opakuje 9krát, pokaždé, když nastavíme další pin.
Nyní byste měli být schopni vidět, jak bychom mohli udělat totéž v hlavní programové smyčce a postupně zapínat každou LED diodu:
void loop () {for (int i = 0; i <9; i ++) {digitalWrite (leds [i], HIGH); zpoždění (100); digitalWrite (LED [i], LOW); } }
Zkus to. Můžeš Stáhněte si plný kód pro dnešní projekt odtud jestli ty? d raději to nezadávejte znovu (i když vás povzbuzuji, protože to pomáhá procesu učení).
Dobře, takže teď máme docela nudnou světelnou sekvenci. Nechat? s programovat další. Jen pro zábavu, jo? je to úplně náhodné. Nahraďte kód hlavní smyčky tímto:
void loop () { int randomLed = náhodný (0,8); digitalWrite (leds [randomLed], HIGH); zpoždění (50); randomLed = náhodný (0,8); digitalWrite (leds [randomLed], LOW); }
Namísto použití opakovací smyčky „for“ pro každou LED diodu vybíráme namísto toho náhodné číslo od 0 do 9 a toto blikáme.
Nechám to tam dnes, protože teď byste měli být vyzbrojeni dostatkem znalostí pro programování všech nových sekvencí a experimentování se smyčkami. Abych dokázal, jak je to snadné, vyzval jsem svou ženu, aby vymyslela sekvenci, kterou ona? chtěli byste to vidět, a pak dostali?ji naprogramovat sama, vzhledem k tomu, kód a lekce vás? zatím jsem měl. Přišla s tím, takže uvidíme, jestli to dokážete u domácích úkolů!
Otázky, návrhy, problémy - prosím, kontaktujte v komentářích.
James má bakalářský titul v oboru umělé inteligence a je držitelem certifikátu CompTIA A + a Network +. Je hlavním vývojářem MakeUseOf a tráví svůj volný čas hraním VR paintballu a deskových her. Staví počítače od dětství.