Reklaam

arduino jõulutuledSee on järgmine osa meie õpitavast Arduino sarjast ja seekord me? Õpin ja kasutan Massiivid erinevate vilkuvate jadadega väikese jõulupuu ornamendi tegemiseks. See oleks ideaalne projekt laste hõivamiseks, kui soovite õpetada neile tavalist jootmist - paigaldage LED-id lihtsalt kaarditükile ja saate energiat tavalisest 9 V-akust.

See on ka võtmetund Arduino algajale programmeerimisele, kuigi kui te ei plaani seda tegelikult ornamentina kasutada, soovitaksin tungivalt see igal juhul välja jätta.

Märkus. See on väga algaja taseme õpetus ja me kindlasti võitsime? t murda ühtegi uut pinnast - kas? s? lihtsalt seade kasutamise kontseptsioonide õpetamiseks Massiivid ja Silmuste jaoks tegelema a suur arv LED-e (või muud väljundseadmed).

Kui teil on varjupaika? juba praegu, nüüd oleks sobiv aeg jälgida sarja teisi artikleid:

  • Mis on Arduino ja mida saate sellega teha Mis on Arduino ja mida saate sellega teha?Arduino on tähelepanuväärne väike elektroonikaseadme, kuid kui te pole seda kunagi varem kasutanud, siis lihtsalt millised need täpselt on ja mida saate ühega teha? Loe rohkem ?
  • instagram viewer
  • Mis on Arduino stardikomplekt ja mida see sisaldab? Mis on Arduino stardikomplektis? [MakeUseOf selgitab]Olen varem tutvustanud siin MakeUseOfil Arduino avatud lähtekoodiga riistvara, kuid selleks, et midagi sellest välja ehitada ja tegelikult tööle asuda, vajate enamat kui ainult tegelikku Arduinot. Arduino "stardikomplektid" on ... Loe rohkem
  • Rohkem lahedaid komponente, mida oma stardikomplektiga osta Veel 8 lahedat komponenti teie Arduino projektideleNiisiis, sa mõtled Arduino stardikomplekti hankimise peale, kuid mõtled, kas mõnest põhilisest LED-ist ja takistist piisab nädalavahetuse hõivamiseks? Ilmselt mitte. Siin on veel 8 ... Loe rohkem
  • Kuidas alustada oma Arduino stardikomplektiga? Draiverite installimine ning tahvli ja pordi seadistamine Alustamine oma Arduino stardikomplektiga - draiverite installimine ning tahvli ja pordi seadistamineNiisiis, olete ostnud endale Arduino stardikomplekti ja võib-olla veel mõned juhuslikud lahedad komponendid - mis nüüd saab? Kuidas selle Arduino asja programmeerimisega tegelikult algust teha? Kuidas seda üles seada ... Loe rohkem
  • Fritzing, tasuta tööriist skeemide joonistamiseks Fritzing - ülim tööriist elektroonikaprojektide visandamiseks [platvormiülene]Hoolimata sellest, et see kõlab nagu alkopopp, on Fritzing tegelikult uskumatu natuke tasuta tarkvara, mida saate luua vooluringide ja komponentide diagrammid kasutamiseks kiire prototüübiga elektroonikaplaatidega, näiteks fantastilise avatud lähtekoodiga Arduino ... Loe rohkem
  • Arduino rakenduse struktuuri lähem ülevaade ja näiteprogramm Blink Esimesed sammud Arduinoga: trükkplaadi ja programmi struktuuri lähem ülevaadeViimati lahkusin teilt, kui olete seadnud Arduino töötama Maci või Windowsiga ja laadinud üles lihtsa testirakenduse, mis vilgutas sisseehitatud LED-i. Täna ma seletan koodi ... Loe rohkem

Selle projekti jaoks sina? Mul on vaja vähemalt 8 või 9 LED-i kas punases või rohelises, a takisti igaüks neist, a leivalaud ja mõned haakejuhtmed. Stardikomplekt ettevõttelt Ooomlout, mille ma hiljuti ise ostsin ja mida sellel õpetusel kujutatakse, pakub väga head hinna ja kvaliteedi suhet ning sellel on rohkem LEDe ja takistusi kui teil? Mul on kunagi vaja, lisaks tuleb korraliku leivalaua ja Arduino ümbrisega asjad korras hoida.

Siin? see on viimane asi:

arduino jõulutuled

Ja video sellest tegevuses.

Siin? Vaade juhtmestikule Fritzingilt. On? See on väga lihtne - ühendage lihtsalt LED-ide positiivne juhe tihvtidega 2-> mis iganes (kuni tihvti 13) ja ühendage negatiivsed jalad takistiga maapinnale. Väärtus ma? siin on kasutatud 560 oomi. Seda? s see juhtmete jaoks.

arduino jõulutuled

Tarkvara poolel mõelge, kuidas võiksite kirjutada kõigile neile koodiga LED-idele. Võiksite seda teha järgmiselt:

int led1 = 2; // esimene LED 2. nööbil. int led2 = 3; // teine ​​nööpnõel 3. // jne jne void loop () {digitalWrite (led1, HIGH); viivitus (100); digitalWrite (led1, LOW); viivitus (100); digitalWrite (led2, HIGH); // jne. }

Te peaksite nägema, et 9 valgusdioodi abil muutub see kiiresti väsitavaks. Vastus peitub Massiivid, mis siis, kui saate? ei mäleta meie Programmeerimine 101 põhiandmetüüpide kohta Programmeerimise põhialused 101 - muutujad ja andmetüübidOlles tutvunud ja veidi rääkinud objektorienteeritud programmeerimisest enne ja kus selle nime teinud pärineb, arvasin, et on aeg minna läbi programmeerimise absoluutsed põhitõed mittespetsiifilises keeles tee. Selles ... Loe rohkem - on põhimõtteliselt lihtsalt nimekirjad.

Süntaks näeb välja selline (asetage see oma koodi esimeseks reaks):

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

Nurksulud näitavad, et LED-id muutuja saab olema Massiiv. Lokkis olevad traksid lisavad PIN-koodide loetelu, mida meie massiiv hoiab.

Massiivi kasutamiseks peame seda käsitlema indeksinumbri järgi. indeks algab 0-stja on seetõttu alati kuni ühe võrra väiksem kui asjade koguarv selles (nii et 9 üksuse korral oleks viimase indeks 8).

Kirjutate seda nii:

LEDid [0]

Milline meie puhul oleks number 2, sest see? mis see on? s meie massiivi indeksiga 0.

Kas olete senini järginud? Suurepärane. Ainuüksi see pole? meile siiski piisavalt - vajame ka mingil viisil iteratsiooni meie LED-massiivi iga elemendi kohal. Selleks kasutame silmuse jaoks. Selle süntaks on järgmine:

jaoks (algne muutuja; seisund, mille all me korrame uuesti; iga muutuse muutmine muutujaks)

Näiteks:

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

Mis ütleb

  • käivitage see silmus muutujaga, i, mille väärtus on null
  • jätka silmust ainult siis, kui ma olen vähem kui 9? (nii: 0,1,2,3,4,5,6,7,8)
  • iga kord, lisage i-le 1 (i ++ on lühike viis öelda i = i + 1)

Nii et põhimõtteliselt korratakse silmust nii mitu korda, kui meil on LED-sid, ja iga kord? korrates on meil muutuja, i, mida saame kasutada, kui meile meeldib.

Meie? Alustuseks kasutan seda struktuuri kaks korda. Kui olete seadistusfunktsiooni sees, saate kõik meie tihvtid lülitada väljundrežiimi, näiteks:

void setup () {jaoks (int i = 0; i <9; i ++) {pinMode (ledid [i], VÄLJUND); } }

Kas näete, mida me seal tegime? Selle asemel, et kirjutada 9 koodirida, et kuulutada iga tihvt väljundiks, loome ahela jaoks, et korrata ennast 9 korda, määrates iga kord uue tihvti.

Nüüd peaksite nägema, kuidas me saaksime põhiprogrammi silmustes täpselt sama teha, et iga LED-i järjestikku sisse lülitada:

tühine silmus () {jaoks (int i = 0; i <9; i ++) {digitalWrite (led (i), HIGH); viivitus (100); digitalWrite (led (i), LOW); } }

Proovi seda. Sa saad laadige siit alla tänase projekti täielik kood kui sa? d pigem mitte kirjutada seda uuesti välja (ehkki julgustan teid seda tegema, kuna see aitab õppeprotsessi).

Olgu, nii et nüüd on meil üsna igav valgustusjärjestus. Lase? s teine ​​programm. Lihtsalt lõbu pärast, las? s muudavad selle täiesti juhuslikuks. Asendage põhisilmuse kood sellega:

tühine silmus () { int randomLed = juhuslik (0,8); digitalWrite (ledid [randomLed], HIGH); viivitus (50); randomLed = juhuslik (0,8); digitalWrite (ledid [randomLed], LOW); }

Selle asemel, et kasutada iga valgusdioodi kohal iteratsiooniks silmust „jaoks”, valime selle asemel juhusliku arvu vahemikus 0–9 ja vilgutame seda.

Jätan selle tänaseks päevaks, kuna nüüd peaksite olema relvastatud piisavalt teadmistega kõigi uute jadade programmeerimiseks ja silmustega katsetamiseks. Et tõestada, kui lihtne see kõik on, kutsusin oma naist üles mõtlema järjestust, mida ta? tahaks näha ja siis sai?ta ise seda programmeerima, antakse ainult kood ja õppetunnid teile? ve seni olnud. Ta tuli selle välja, nii et vaata, kas suudad seda kodutöödeks sobitada!

Küsimused, ettepanekud, probleemid - palun võtke kommentaarides ühendust.

Jamesil on tehisintellekti BSc ning ta on CompTIA A + ja Network + sertifikaadiga. Ta on MakeUseOfi juhtiv arendaja ja veedab oma vaba aega VR-i paintballi ja lauamänge mängides. Ta on lapsest peale arvutit ehitanud.