Publicitate
Aceasta este următoarea parte din seria noastră de învățare Arduino, și de data asta noi? Voi învăța și utiliza Arrays pentru a face un mic ornament de pom de Crăciun cu diverse secvențe intermitente. Acesta ar fi un proiect ideal pentru a menține copiii ocupați dacă doriți să-i învățați lipirea de bază - montați LED-urile pe o bucată de card și puteți obține energie de la o baterie standard de 9v.
Este, de asemenea, o lecție esențială în programarea Arduino pentru începători, deși dacă nu intenționați să utilizați efectiv acest lucru ca ornament, oricum sugerez cu siguranță să o faceți.
Notă: Acesta este un tutorial la nivel foarte începător și cu siguranță am câștigat? nu vei rupe vreun teren nou - nu? s? doar un dispozitiv care să învețe conceptele de utilizare Arrays și Pentru bucle să se ocupe de un număr mare de LED-uri (sau alte dispozitive de ieșire).
Dacă ai refugiu? Acum deja, ar fi un moment bun pentru a urmări împreună cu celelalte articole din serie:
- Ce este Arduino și ce poți face cu asta Ce este Arduino și ce poți face cu asta?Arduino este un mic dispozitiv electronic, remarcabil, dar dacă nu ai mai folosit niciodată unul, exact ce sunt acestea și ce poți face cu unul? Citeste mai mult ?
- Ce este un kit de pornire Arduino și ce conține? Ce este inclus într-un kit de pornire Arduino? [FaceUseOf Explică]Am introdus anterior hardware-ul Arduino open-source aici pe MakeUseOf, dar veți avea nevoie de mai mult decât doar Arduino pentru a construi ceva din el și pentru a începe de fapt. Arduino "seturile de început" sunt ... Citeste mai mult
- Mai multe componente cool pentru a cumpăra cu setul de pornire 8 mai multe componente minunate pentru proiectele dvs. ArduinoDeci, te gândești să obții un kit de pornire Arduino, dar te întrebi dacă unele LED-uri și rezistențe de bază vor fi suficiente pentru a te menține ocupat pentru weekend? Probabil ca nu. Iată alte 8 ... Citeste mai mult
- Noțiuni introductive despre setul dvs. Arduino Starter? Instalarea de drivere și configurarea plăcii și a portului Noțiuni introductive cu setul dvs. de pornire Arduino - Instalarea de drivere și configurarea plăcii și a portuluiAșadar, v-ați cumpărat un kit de pornire Arduino și, probabil, alte alte componente aleatoare aleatorilor - acum ce? Cum te apuci de fapt cu programarea acestui lucru Arduino? Cum o configurați ... Citeste mai mult
- Fritzing, un instrument gratuit pentru desenarea diagramelor de circuite Fritzing - Instrumentul final pentru schițarea proiectelor electronice [platformă încrucișată]În ciuda sunării unui alcopop, Fritzing este de fapt un pic incredibil de software gratuit pe care îl puteți utiliza pentru a crea diagrame de circuite și componente pentru utilizarea cu plăci electronice de prototipare rapidă, cum ar fi fantasticul open-source Arduino ... Citeste mai mult
- O privire mai atentă la structura unei aplicații Arduino și a programului de clipire de exemplu Primii pași cu Arduino: o privire mai atentă la placa de circuit și structura unui programUltima dată te-am lăsat să îți configurezi Arduino să funcționeze cu Mac sau Windows și după ce ai încărcat o aplicație de testare simplă care a clipit LED-ul de bord. Astăzi voi explica codul ... Citeste mai mult
Pentru acest proiect, tu? Am nevoie cel puțin 8 sau 9 LED-uri fie în roșu, fie în verde, a rezistor pentru fiecare dintre ei, a breadboard și niște fire de legătură. Setul de pornire de la Ooomlout, pe care mi l-am achiziționat recent și este ilustrat în acest tutorial, oferă o valoare excelentă pentru bani și are mai multe leduri și rezistențe decât tine? Voi avea vreodată nevoie, precum și să vin cu o placă de pâine îngrijită și carcasa Arduino pentru a menține lucrurile bine.
Aici? este ultimul lucru:
Și un videoclip despre acesta în acțiune.
Aici? este o vedere a cablajului de la Fritzing. Aceasta? este foarte de bază - conectați doar cablul pozitiv al LED-urilor la pini 2-> indiferent (până la pinul 13) și conectați picioarele negative la pământ în linie cu un rezistor. Valoarea I? Am folosit aici este 560 Ohms. Acea? e pentru cablare.
Pe partea de software, gândiți-vă cum puteți să scrieți toate aceste LED-uri din cod. Ați putea să vă descurcați astfel:
int led1 = 2; // primul LED pe pinul 2. int led2 = 3; // al doilea pe pinul 3. // etc etc void loop () {digitalWrite (led1, HIGH); întârziere (100); digitalWrite (led1, LOW); întârziere (100); digitalWrite (led2, HIGH); // etc. }
Ar trebui să puteți vedea că, cu 9 LED-uri, acest lucru va fi rapid obositor. Răspunsul vine cu Arrays, și dacă poți? nu-mi amintesc de noi Programarea 101 despre tipuri de date de bază Bazele programării computerizate 101 - variabile și tipuri de dateDupă ce am introdus și am vorbit puțin despre programarea orientată pe obiect înainte și unde numele său este vine de la, am crezut că e timpul să parcurgem elementele de bază absolute ale programării într-un specific non-limbaj cale. Acest... Citeste mai mult - practic sunt doar liste.
Sintaxa arată așa (așezați-o ca primă linie din codul dvs.):
leduri int [] = {2,3,4,5,6,7,8,9,10};
Parantezele pătrate indică faptul că ledurile? variabilă va fi o mulțime. Brățările cretate conțin lista numerelor de pini pe care le va păstra tabloul nostru.
Acum, pentru a utiliza o matrice, trebuie să o abordăm după numărul de index. index începe de la 0și, de aceea, va merge întotdeauna cu 1 mai puțin decât numărul total de lucruri din interiorul său (deci cu 9 articole, ultimul ar avea un indice de 8).
O scrii astfel:
leds [0]
Care, în cazul nostru, ar aduce numărul 2, pentru că asta? ce e? s la index 0 în tabloul nostru.
Urmăriți până acum? Grozav. Doar asta nu? Cu toate acestea, este suficient pentru noi - avem nevoie și de o modalitate de a itera peste fiecare element al tabloului de LED-uri. Pentru asta, vom folosi un pentru buclă. Sintaxa pentru a face asta este astfel:
for (variabilă inițială; condiție în care repetăm din nou; schimbare la variație fiecare iterație)
De exemplu:
pentru (int i = 0; i <9; i ++)
Ceea ce spune
- porniți această buclă cu o variabilă, eu, care are o valoare de zero
- continuați bucla doar în timp ce sunt mai puțin de 9? (deci: 0,1,2,3,4,5,6,7,8)
- de fiecare data, adăugați 1 la i (i ++ este un mod scurt de a spune i = i + 1)
Deci, practic, bucla va fi repetată de câte ori avem LED-uri, și de fiecare dată? s-a repetat vom avea o variabilă, eu, pe care le putem folosi oricum ne place.
Noi? Voi folosi această structură de două ori pentru a începe. Odată intrat în funcția de configurare pentru a face ca toți pinii noștri să se îndrepte spre modul de ieșire, astfel:
void setup () {for (int i = 0; i <9; i ++) {pinMode (leds [i], OUTPUT); } }
Puteți vedea ce am făcut acolo? În loc să scriem 9 linii de cod pentru a declara fiecare ieșire individuală ca ieșire, creăm o buclă „pentru” care să se repete de 9 ori, de fiecare dată setând un alt pin.
Acum, ar trebui să puteți vedea cum am putea face exact același lucru în bucla programului principal pentru a porni fiecare LED în succesiune:
void loop () {for (int i = 0; i <9; i ++) {digitalWrite (leds [i], HIGH); întârziere (100); digitalWrite (leduri [i], LOW); } }
Încercați asta. Poti descărcați de aici codul complet pentru proiectul de astăzi daca tu? mai degrabă nu mai tastați din nou (deși vă încurajez, deoarece ajută procesul de învățare).
Bine, acum avem o secvență de iluminare destul de plictisitoare. Lăsa? Programează altul. Doar pentru distracție, hai? o fac complet aleatorie. Înlocuiți codul buclei principale cu acesta:
void loop () { int randomLed = aleator (0,8); digitalWrite (leduri [randomLed], HIGH); întârziere (50); randomLed = aleator (0,8); digitalWrite (leduri [randomLed], LOW); }
În loc să folosim o buclă „pentru” pentru a itera peste fiecare LED, alegem în schimb un număr aleatoriu de la 0 la 9 și îl aprindem.
O voi lăsa acolo astăzi, deoarece acum ar trebui să fiți înarmați cu suficiente cunoștințe pentru a programa toate secvențele noi și a experimenta cu bucle. Pentru a dovedi cât de ușor este totul, am provocat-o pe soția mea să se gândească la o secvență pe care ea? Aș dori să văd, și apoi am primit?ea să o programeze singură, având doar codul și lecțiile pe care le aveți? am avut până acum. A venit cu asta, așa că vedeți dacă puteți asorta asta pentru temele!
Întrebări, sugestii, probleme - contactați comentariile.
James are licență în inteligență artificială și este certificat CompTIA A + și Network +. Este dezvoltatorul principal al MakeUseOf și își petrece timpul liber jucând VR paintball și boardgames. Construiește calculatoare de când era mic.