Reklama

vianočné svetlá arduinoToto je ďalšia časť našej výučby série Arduino a tentokrát to tak? Budem sa učiť a používať poľa vytvoriť malú ozdobu vianočného stromu s rôznymi blikajúcimi sekvenciami. Bol by to ideálny projekt na udržanie obsadenosti detí, ak by ste ich chceli naučiť základnému spájkovaniu - stačí namontovať LED na kus karty a môžete získať energiu zo štandardnej 9V batérie.

Je to tiež kľúčová lekcia v programovaní začiatočníkov Arduino, aj keď ak to neplánujete používať ako ozdobu, dôrazne by som ho navrhol doštičku.

Poznámka: Toto je tutoriál pre úplných začiatočníkov a určite sme vyhrali? t prelomiť nejakú novú pôdu - to? s? iba zariadenie na výučbu konceptov používania poľa a Pre slučky vysporiadať sa s veľký počet LED diód (alebo iné výstupné zariadenia).

Ak máš? Už teraz by sme mali nasledovať spolu s ostatnými článkami zo série:

  • Čo je Arduino a čo s tým môžete urobiť Čo je Arduino a čo s tým môžete robiť?Arduino je pozoruhodné malé elektronické zariadenie, ale ak ste ho ešte nikdy nepoužívali, aké presne sú a čo s ním môžete urobiť? Čítaj viac ?
  • instagram viewer
  • Čo je začiatočná súprava Arduino a čo obsahuje? Čo je súčasťou sady Arduino Starter Kit? [MakeUseOf vysvetľuje]Už som tu na MakeUseOf predstavil open-source hardvér Arduino, ale na vytvorenie niečoho z neho a skutočne začatia potrebujete viac ako len samotného Arduina. Arduino "štartovacie súpravy" sú ... Čítaj viac
  • Viac chladiacich komponentov, ktoré môžete kúpiť pomocou súpravy Starter Kit 8 ďalších komponentov pre vaše projekty ArduinoTakže premýšľate o získaní štartovacej súpravy Arduino, ale zaujíma vás, či vám niektoré základné diódy LED a rezistory stačia na to, aby ste sa počas víkendu vyťažili? Pravdepodobne nie. Tu je ďalších 8 ... Čítaj viac
  • Začíname so štartovacou súpravou Arduino? Inštalácia ovládačov a nastavenie karty a portu Začíname so štartovacou súpravou Arduino - Inštalácia ovládačov a nastavenie dosky a portuKúpili ste si štartovaciu súpravu Arduino a možno aj nejaké ďalšie náhodné chladné komponenty - čo teraz? Ako vlastne začnete s programovaním tejto veci Arduino? Ako to nastavíte ... Čítaj viac
  • Fritzing, bezplatný nástroj na kreslenie schém zapojenia Fritzing - konečný nástroj na skicovanie elektronických projektov [Cross Platform]Napriek tomu, že znie ako alcopop, Fritzing je v skutočnosti neuveriteľný kúsok slobodného softvéru, ktorý môžete použiť na vytvorenie schémy obvodov a komponentov pre použitie s elektronickými doskami s rýchlym prototypom, ako je fantastický open-source Arduino ... Čítaj viac
  • Bližší pohľad na štruktúru aplikácie Arduino a príklad programu Blink Prvé kroky s Arduino: Bližší pohľad na dosku a štruktúru programuNaposledy som vás nechal nastaviť Arduino na prácu s Mac alebo Windows a odovzdať jednoduchú testovaciu aplikáciu, ktorá blikala zabudovanou LED diódou. Dnes ti vysvetlím kód ... Čítaj viac

Pre tento projekt? Potrebujem aspoň 8 alebo 9 LED v červenej alebo zelenej farbe, a odpor pre každú z nich, a lopárik a niektoré prepojovacie vodiče. Štartovacia súprava od spoločnosti Ooomlout, ktorú som si nedávno kúpil a je zobrazená na tomto návode, ponúka veľkú hodnotu za peniaze a má viac LED a odporov ako vy? Budem niekedy potrebovať, rovnako ako prísť s elegantnou doskou na varenie a krabicou Arduino, aby veci zostali čisté.

Tu? je to posledné:

vianočné svetlá arduino

A video z toho v akcii.

Tu? je pohľad na zapojenie z Fritzingu. It? s veľmi základné - stačí pripojiť kladný kábel LED na kolíky 2-> čokoľvek (až po kolík 13) a záporné nohy spojte so zemou inline pomocou odporu. Hodnota I? Používa sa tu 560 Ohmov. Že? je to pre zapojenie.

vianočné svetlá arduino

Na strane softvéru premýšľajte o tom, ako by ste mohli zapísať všetky tieto kontrolky LED v kóde. Dalo by sa to takto:

int led1 = 2; // prvá LED na kolíku 2. int led2 = 3; // sekundu na kolíku 3. // atď atď. void loop () {digitalWrite (led1, HIGH); oneskorenie (100); digitalWrite (led1, LOW); oneskorenie (100); digitalWrite (led2, HIGH); // atď. }

Mali by ste byť schopní vidieť, že s 9 diódami LED sa to rýchlo unaví. Odpoveď spočíva poľa, čo ak môžete? nepamätám si naše Programovanie 101 o základných typoch údajov Základy počítačového programovania 101 - premenné a typy údajovPredtým, ako som predstavil objektovo orientované programovanie, a kde bol jeho menovec, sa o ňom trochu hovorilo pochádza, myslel som si, že je čas, aby sme prešli absolútnymi základmi programovania v jazykovej oblasti, ktorá nie je špecifická spôsobom. Tento ... Čítaj viac - sú to v podstate len zoznamy.

Syntax vyzerá takto (vložte ju ako prvý riadok v kóde):

int leds [] = {2,3,4,5,6,7,8,9,10};

Štvorcové zátvorky označujú, že? premenná bude rad. Zložité zátvorky uzatvárajú zoznam čísel pinov, ktoré bude mať naše pole.

Teraz, ak chcete použiť pole, musíme ho adresovať indexovým číslom. index začína na 0, a preto bude vždy stúpať o 1 menej, ako je celkový počet vecí v ňom (takže pri 9 položkách by posledná mala index 8).

Píšete to takto:

LED [0]

Čo by v našom prípade prinieslo číslo 2, pretože? s čo? s indexom 0 v našom poli.

Sledujete doteraz? Skvelé. To samo o sebe nie je? Avšak dosť pre nás - potrebujeme tiež nejaký spôsob, ako iterovať každý prvok našej sady LED diód. Na to použijeme pre slučku. Syntax, ktorá sa má vykonať, je takáto:

pre (počiatočná premenná; stav, pri ktorom sa opakujeme znova; zmeniť každú iteráciu)

Napríklad:

pre (int i = 0; i <9; i ++)

Čo hovorí

  • začnite túto slučku s premennou, ja, ktorý má hodnotu nula
  • pokračujte v slučovaní, len keď som menej ako 9? (tak: 0,1,2,3,4,5,6,7,8)
  • zakaždým, pridať 1 k i (i ++ je krátky spôsob, ako povedať i = i + 1)

Takže v podstate sa slučka bude opakovať toľkokrát, koľkokrát máme LED, a zakaždým? s opakujeme, že budeme mať premennú, ja, ktorú však môžeme použiť.

My? Túto štruktúru budem používať dvakrát. Akonáhle ste vo funkcii nastavenia, prepnite všetky naše kolíky do výstupného režimu, napríklad:

void setup () {for (int i = 0; i <9; i ++) {pinMode (leds [i], OUTPUT); } }

Vidíš, čo sme tam urobili? Namiesto toho, aby sme písali 9 riadkov kódu na deklarovanie každého jednotlivého špendlíka ako výstupu, vytvárame slučku „for“, ktorá sa opakuje 9-krát a zakaždým nastavíme ďalší pin.

Teraz by ste mali byť schopní vidieť, ako by sme mohli urobiť to isté v hlavnej programovej slučke a postupne zapnúť každú LED.

void loop () {for (int i = 0; i <9; i ++) {digitalWrite (leds [i], HIGH); oneskorenie (100); digitalWrite (led [i], LOW); } }

Vyskúšajte to. Môžeš odtiaľ si môžete stiahnuť celý kód pre dnešný projekt Ak ty? d radšej ho už nevypisujte (aj keď vás povzbudzujem, pretože to pomáha procesu učenia).

Dobre, takže teraz máme dosť nudnú sekvenciu osvetlenia. Nech? s programovať iný. Len tak pre zábavu, že? je to úplne náhodné. Nahraďte kód hlavnej slučky týmto:

void loop () { int randomLed = náhodný (0,8); digitalWrite (leds [randomLed], HIGH); oneskorenie (50); randomLed = náhodný (0,8); digitalWrite (leds [randomLed], LOW); }

Namiesto použitia slučky „for“ na opakovanie každej LED diódy, namiesto toho vyberieme náhodné číslo od 0 do 9 a začneme blikať.

Nechám to tam dnes, pretože teraz by ste mali mať dostatok vedomostí na naprogramovanie všetkých nových sekvencií a experimentovanie so slučkami. Aby som dokázal, aké je to ľahké, vyzval som svoju ženu, aby premyslela na nejakú sekvenciu? rád by som to videl a potom dostal?aby ju naprogramovala sama, dostali ste iba kód a lekcie? doteraz som mal. Prišla s týmto, takže uvidíme, či sa dá vyrovnať tomu s domácimi úlohami!

Otázky, návrhy, problémy - kontaktujte nás v komentároch.

James má bakalárske štúdium v ​​oblasti umelej inteligencie a je držiteľom certifikátu CompTIA A + a Network +. Je popredným vývojárom MakeUseOf a trávi svoj voľný čas hraním VR paintballu a spoločenských hier. Staval počítače od malička.