Oglas

arduino božićne lampiceOvo je sljedeći dio u našoj seriji Arduino učenja, a ovaj put? Učit ću o i kako koristiti nizovi napraviti mali ukras božićnog drvca s raznim blještavim nastavcima. Ovo bi bio idealan projekt zadržati djecu ako ih želite naučiti osnovnom lemljenju - samo montirajte LED na komad kartice i možete dobiti snagu iz standardne baterije od 9 V.

To je ujedno i ključna lekcija za početnike Arduino programiranje, mada, ako zapravo ne planirate to koristiti kao ukras, toplo bih vam predložio da to shvatite.

Napomena: Ovo je udžbenik za početnike i sigurno smo pobijedili? ne smijete probiti bilo koji novi teren - je li? S? samo uređaj za podučavanje koncepata uporabe nizovi i Za petlje baviti se a veliki broj LED-ova (ili drugi izlazni uređaji).

Ako nisi? t već, sada bi bilo dobro vrijeme za praćenje zajedno s ostalim člancima u nizu:

  • Što je Arduino i što možete učiniti s tim? Što je Arduino i što možete učiniti s tim?Arduino je izvanredan mali elektronički uređaj, ali ako ga nikada prije niste koristili, samo što su točno i što možete učiniti s jednim? Čitaj više ?
  • instagram viewer
  • Što je Arduino starter kit i što sadrži? Što je uključeno u Arduino Starter Kit? [MakeUseOf objašnjava]Prethodno sam predstavio Arduino hardver otvorenog koda ovdje na MakeUseOf-u, ali trebat će vam više od samog Arduino-a da biste nešto napravili od njega i zapravo započeli. Arduino "starter setove" su ... Čitaj više
  • Više zgodnih komponenti za kupnju sa svojim Starter Kit Još 8 komponenti za vaše Arduino projekteDakle, razmišljate o nabavci Arduino startnog kompleta, ali pitate se jesu li neke osnovne LED i otpornici dovoljne da vas zauzmu vikend? Vjerojatno ne. Evo još 8 ... Čitaj više
  • Početak rada s Arduino Starter Kitom? Instaliranje upravljačkih programa i postavljanje ploče i priključka Prvi koraci sa svojim Arduino Starter Kitom - Instalacija upravljačkih programa i postavljanje ploče i priključkaDakle, kupili ste sebi Arduino starter kit i možda neke druge slučajne cool komponente - što sad? Kako zapravo započinjete s programiranjem ove Arduino stvari? Kako to postaviti? Čitaj više
  • Fritzing, besplatan alat za crtanje dijagrama krugova Fritzing - krajnji alat za crtanje elektroničkih projekata [Cross Platform]Iako zvuči poput alkopopa, Fritzing je zapravo nevjerojatan bit slobodnog softvera koji možete koristiti za stvaranje dijagrami krugova i komponenti za uporabu s elektronskim pločama s brzim prototipiranjem, poput fantastičnog otvorenog koda Težak ... Čitaj više
  • Pažljiviji pogled na strukturu aplikacije Arduino i primjer programa treptaja Prvi koraci s Arduinom: bliži pogled na ploču i strukturu programaProšli put sam vas ostavio da ste postavili svoj Arduino za rad sa Macom ili Windowsom i poslao jednostavnu testnu aplikaciju koja je treptala LED-om na vozilu. Danas ću objasniti kôd ... Čitaj više

Za ovaj projekt, ti? Trebat će mi barem 8 ili 9 LED dioda bilo u crvenoj ili zelenoj boji, a otpornik za svakog od njih a daska za kruh i neke žice za spajanje. Starter kit iz Ooomlouta koji sam nedavno kupio i prikazan u ovom udžbeniku nudi veliku vrijednost za novac i ima više LED i otpornika od vas? Ikad ću trebati, kao i dolaziti s urednom daskom i Arduino futrolom da stvari budu uredne.

Ovdje? konačna stvar:

arduino božićne lampice

I video o tome u akciji.

Ovdje? pogled na ožičenje iz Fritzinga. To? Vrlo je osnovno - samo povežite pozitivne vodilice LED-a na igle 2> god (do pin 13), a negativne noge spojite na zemlju s pomoću otpornika. Vrijednost I? Ovdje se koristi 560 Ohma. Da? je za ožičenje.

arduino božićne lampice

Na strani softvera razmislite o tome kako biste mogli napisati sve te LED-ove u kodu. Mogli biste oko toga ovako:

int led1 = 2; // prvi LED na pin 2. int led2 = 3; // drugi na pin 3. // itd. itd. void petlja () {digitalWrite (led1, HIGH); kašnjenje (100); digitalWrite (led1, LOW); kašnjenje (100); digitalWrite (led2, HIGH); // itd. }

Trebali biste moći vidjeti da će uz 9 LED dioda to brzo postati zamorno. Odgovor leži na nizovi, što ako možeš? sjećam se našeg Programiranje 101 o osnovnim tipovima podataka Osnove računalnog programiranja 101 - varijable i tipovi podatakaPredstavljajući se i porazgovarajući o objektno orijentiranom programiranju prije i gdje je njegov imenjak dolazi od, mislio sam da je vrijeme da prođemo apsolutne osnove programiranja u jeziku koji nije specifičan put. Ovaj... Čitaj više - u osnovi su samo popisi.

Sintaksa izgleda ovako (stavite ovo kao prvi redak u vašem kodu):

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

Kvadratni zagrade upućuju na to da su? varijabla će biti an red. Kovrčavi zagrade prilažu popis PIN brojeva koji će sadržavati naš niz.

Sada, da bismo koristili niz, trebamo ga riješiti brojem indeksa. indeks počinje od 0i zbog toga će uvijek biti do 1 manji od ukupnog broja stvari unutar njega (pa s 9 predmeta zadnji bi imao indeks 8).

Pišete to ovako:

LED [0]

Što bi u našem slučaju moglo donijeti broj 2, jer to? je što? s na indeksu 0 u našem nizu.

Slijedite do sada? Sjajno. To jedino nije? t ipak dovoljno za nas - trebamo i neki način da ponovimo svaki element našeg LED dioda. Za to ćemo upotrijebiti za petlju. Sintaksa koja bi to mogla učiniti je takva:

za (početna varijabla; stanje pod kojim se opet ponavljamo; promjena za promjenu svake iteracije)

Na primjer:

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

Što kaže

  • pokrenite ovu petlju sa varijablom, ja, koji ima vrijednost nula
  • nastavite petljati samo dok ja jesam manje od 9? (Dakle: 0,1,2,3,4,5,6,7,8)
  • svaki put, dodaj 1 na i (i ++ je kratak način da kažem i = i + 1)

U osnovi, petlja će se ponavljati onoliko puta koliko imamo LED-ova, i svaki put? s ponovit ćemo imati varijablu, ja, koje možemo koristiti koliko god želimo.

Mi? Za početak ću koristiti ovu strukturu dva puta. Jednom kada postavite funkciju za postavljanje da se sve naše igle prebace u izlazni način, ovako:

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

Možete li vidjeti što smo radili tamo? Umjesto da napišemo 9 redaka koda da bi se svaki pojedinačni pin deklarirao kao izlaz, stvaramo petlju "for" da se ponovi 9 puta, svaki put postavljajući drugu pinu.

Sada biste trebali moći vidjeti kako u glavnoj programskoj petlji možemo učiniti potpuno istu stvar da biste uključili svaki LED u nizu:

void petlje () {for (int i = 0; i <9; i ++) {digitalWrite (led [i], HIGH); kašnjenje (100); digitalWrite (daje [i], LOW); } }

Pokušajte to. Možeš preuzmite puni kôd za današnji projekt odavde ako ti? d radije ga nemojte ponovo upisivati ​​(iako vas ohrabrujem jer pomaže procesu učenja).

Ok, sada imamo prilično dosadan redoslijed osvjetljenja. Neka? s programom još jedan. Samo za zabavu, neka? učini to sasvim slučajnim. Zamijenite glavni kod petlje s ovim:

void petlja () { int randomLed = slučajno (0,8); digitalWrite (led [randomLed], HIGH); kašnjenje (50); randomLed = slučajno (0,8); digitalWrite (led [randomLed], LOW); }

Umjesto da koristimo petlju "for" za ponavljanje svake LED, umjesto toga odaberemo slučajni broj od 0-9 i uključimo ga.

Ostavit ću ga danas za danas jer bi sada trebao biti naoružan s dovoljno znanja da programirate sve nove sekvence i eksperimentirate s petljicama. Kako bih dokazao koliko je sve ovo jednostavno, izazvao sam ženu da smisli slijed koji ona? Želio bih vidjeti, a onda je dobio?nju da sama programira, s obzirom na kod i samo pouke? do sada sam imao. Smislila je to, pa pogledajte možete li to usporediti s domaćim zadaćama!

Pitanja, prijedlozi, problemi - javite se u komentarima.

James je diplomirao iz umjetne inteligencije i certificiran je CompTIA A + i Network +. Vodeći je programer MakeUseOf-a, a svoje slobodno vrijeme provodi igrajući VR paintball i boardgames. Gradio je računala još od djeteta.