slovacă

În acest articol vă voi arăta un exemplu practic despre cum să vă conectați și să programați un Arduino. Este, de asemenea, programarea „Hello World” cu Arduino. În cazul nostru este „Arduino LED intermitent”.

Intermitentul diodei LED poate fi realizat fără alte componente cu orice placă de dezvoltare Arduino. În acest exemplu, va fi un UNO Arduino. Va fi cel mai ușor lucru pe care îl puteți face cu Arduino. Așa că hai să ajungem la el.

De ce voi avea nevoie pentru un LED intermitent Arduino?

Pentru a aprinde LED-ul, veți avea nevoie de o placă de dezvoltare, de ex. Arduino UNO, conectarea cablului USB și computerului cu programul Arduino IDE descărcat (faceți clic pe link, v-am scris instrucțiunile de instalare acolo). Versiunea actuală poate fi întotdeauna descărcată de pe site-ul web arduino.cc. Și, desigur, ceva timp și răbdare.

Va fi, de asemenea, adecvat încercați să clipiți nu numai cu LED integrat diodă, dar și cu un LED extern. Acest lucru va necesita cel puțin un LED color și un rezistor de 220Ω și o anumită placă - acesta este câmpul de contact al puterii.

Și cum o conectez?

În acest scop avem schema de conexiuni. Fiecare componentă are propria sa inginerie electrică marca, unde sunt marcate cu ea prize, eventual valori. O astfel de schemă arată de ex. după cum urmează:

Aceasta este conexiune tipică a LED-urilor integrate direct pe plăcile Arduino standard. Aveți grijă, dar există și câteva plăci care îl pot avea pe alt pin (MKR1000) sau chiar nu îl au deloc (Arduino DUE).

Vedeți în diagramă dreptunghi mare Arduino cu descrieri de pin și un LED cu un rezistor este conectat în serie 220Ω între pinul D13 și GND (GND este solul sau polul minus). Un LED este un element electronic - un aparat (la fel ca un bec, un motor electric, ...). Din punct de vedere tehnic, aceste elemente sunt numite actuatoare și circuitul de comandă (Arduino) controlează sursa de alimentare a acestora și astfel le afectează starea. În cel mai simplu caz, doar pornim sau oprim puterea - actuatorul este într-o stare activă sau în repaus (pornit/oprit, ...).

Conectați LED-ul extern împreună cu rezistorul conform figurii următoare. Observați că acum este conectat la pinul D9. De ce pinul D9? Ei bine, pentru că am decis că o doresc pe acest pin. Pinul știe ceva în plus. Literele mici PWM ar putea indica acest lucru. Veți afla ce înseamnă mai târziu. Acum, conectați-l astfel.

Rezistorul trebuie să fie exact 220Ω?

Aceasta este întrebarea corectă. Mai ales dacă nu aveți un rezistor cu o astfel de valoare, dar aveți unul similar. Arduino la care doriți să conectați LED-ul are curent maxim limitat, care este capabil să livreze la ieșire. Curentul maxim printr-un pin (picior) este de 40mA. Recomandat pin de încărcare până la 20mA. Prin urmare, puteți conecta LED-ul direct la ieșirea Arduino, dar de ex. fără bec sau motor electric, de obicei au un consum de curent mult mai mare.

Un rezistor este utilizat pentru a limita curentul care curge. Ce valoare de rezistență mai mare are o rezistență, echipă fluxuri de curent mai puține dioda și dioda vor fi despre asta dim. Deci, la o valoare a rezistorului de 220Ω curge un curent, să-i dăm aproximativ 11mA (depinde de culoarea diodei), la o valoare a rezistorului de 1kΩ este deja aproximativ 3mA. Chiar și la un curent atât de scăzut, LED-ul va străluci ușor (dar avem un consum minim de energie). Și dacă puneți un rezistor cu o valoare de 150Ω acolo, atunci curentul va curge aproximativ 20mA, LED-ul va lumina mai luminos.

Și nici măcar nu vă gândiți la conectarea LED-ului la Arduino fără rezistență. De ce? Fără proto! Lebo supraîncărcați știftul Arduino cu un curent mai mare de 40mA și eliberează fum ascuns ireversibil și LED-ul din nou ultimul său flash 🙂

Dar fii atent, curentul maxim pentru întregul Arduino este, de asemenea, limitat - toți pinii împreună max 200mA. Deci, puteți conecta maximum 10 LED-uri aprinse simultan cu un curent de 20mA sau puteți utiliza un curent mai mic datorită unui rezistor cu o valoare a rezistenței mai mare, crescând astfel numărul de LED-uri care pot fi aprinse simultan. Pentru un curent de 10mA le puteți conecta 20. Într-un articol am pregătit și calculul rezistenței pentru LED pentru un curent specific. Desigur, acest lucru se aplică nu numai Arduino, ci și altor circuite integrate, unde puteți găsi curenții lor maximi de ieșire în foaia tehnică.

Trebuie să conectez un rezistor în fața LED-ului sau în spatele LED-ului?

Deci ce crezi? Contează sau nu? Pentru că sunt implicați în serie, curge prin ambele componente același curent, deci nu le pasă în ce ordine sunt implicați.

Deci da, nu contează dacă rezistorul este în fața sau în spatele LED-ului. Puteți utiliza acest lucru pentru a proiecta amplasarea componentelor pe o placă de circuite imprimate.

Și cum întorc LED-ul?

Spre deosebire de becuri, care nu contează polaritatea tensiunii de alimentare și, prin urmare, sunt capabili să funcționeze pe tensiune de curent alternativ, LED-urile conectate incorect nu funcționează, nu aprinde. A determina polaritate corectă Cel mai sigur este să vă uitați la foaia de catalog (adică foaia tehnică), care este un fel de certificat de naștere al fiecărei componente. Dar cel mai rapid mod este să încercați cel mai bun multimetru.

Următorul metode de determinare tabelul cu imaginea arată:

semn: + -
polaritate: pozitiv negativ
ieșire: anod (A) catod (K)
priză: lung mic de statura
carcasa din exterior: rotunjit apartament
în interiorul carcasei: mai mica mai mare

Primul conectați LED-ul „picior” mai lung (anod pozitiv) de pe rezistor. Și acum conectați în mod similar și logic piciorul său scurt (catod negativ) la sol (GND - sol).

Și ce zici de codul programului?

Nu este nevoie să descrieți sau să căutați și să descărcați ceva de pe Internet? Raspunsul este nu. Tot ce aveți nevoie este un IDE Arduino faceți clic în meniu la „File” și printre exemplele „Basic” găsiți „Clipi„. Gata, programul se va deschide și veți vedea așa ceva:

Nu uita după conectarea plăcii Verifica Numărul de port COM a setare placa de dezvoltare potrivită. Și acum faceți clic pe a doua pictogramă (săgeata din dreapta) sau apăsați "CTRL + U" și acest program va fi încărcat în Arduino și LED-ul dvs. va clipi. Dar ce LED va clipi? Cea integrată pe tablă sau cea externă pe tablă? Încărcați codul și veți vedea.

După cum Arduino știe unde este conectat LED-ul meu?

Nu, a făcut-o el nu știe, trebuie să o faci cumva a spune. Tu-l cunoști program. După cum probabil ați aflat deja la încărcarea programului din exemplu, LED-ul integrat clipește la intervale de aproximativ o secundă.

Acum ai asta disecăm programul și vom încerca câteva ajustări. Vrem să pentru a face LED-ul extern să clipească.

Deci, ce înseamnă acele cuvinte colorate?

Întregul programul pentru Arduino constă din două părți - funcții. În birou configurare nulă sunt comenzile care vor fi executate o singură dată după pornire (sau după resetare). Atunci Arduino va porni tot timpul executați comenzile listate în jur în birou bucla nulă. Prin urmare, primele comenzi vom învăța acestea vor fi pentru controlul pinilor individuali (picioarele) Arduino. Pentru început, avem nevoie doar de două stări (off sau on), adică control digital. Primul lucru pe care trebuie să-l facem este înființat sau dat pin va fi admitere (semnalul va fi alimentat către Arduino din exterior) sau ieșire (Arduino va controla ceva). Funcția pinMode (comandă) este utilizată în acest scop (pin, mod).

Această funcție pinMode se află în funcția de configurare, deoarece trebuie să o realizăm o singură dată la pornirea programului. Nu vom aprinde acest LED încă, îi vom spune doar lui Arduino că dorim să fie lansat acest pin. De exemplu, intrarea ar putea arăta astfel:

Ei bine, dar în exemplu văd LED_BUILTIN și nu numărul PIN, care este?

Aceasta este o constantă definită frumos, care este setată astfel încât, în funcție de placa selectată din Arduino IDE, veți face automat atribuie un număr PIN (în acest caz 13) la care este atașat pe tablă LED intern. Trebuie să vă amintiți, așa cum am scris mai sus, că unele plăci au acest LED conectat la alți pini. Și pentru că există un efort de a scrie programe universal pentru diferite tipuri de plăci și tu, ca programator-dezvoltator, nu știi ce placă se va conecta utilizatorul, așa că va fi utilizată o astfel de constantă și va avea grijă de tine și va atribui numărul PIN corect la LED-ul intern.

Așa că, atunci când rescriu cuvântul LED_BUILTIN peste tot la 9, LED-ul extern va clipi.?

Exact. Întregul program va arăta astfel:

Acesta este întregul program? Și unde au dispărut celelalte linii în limba engleză?

Acestea erau notele programatorului. Scriu cum sunt folosite corect în acest articol.

Ei bine, să mergem mai departe. A doua caracteristică de care vom avea nevoie este setarea valorii pe pinul de ieșire și pentru asta vom folosi o altă comandă digitalWrite (pin, valoare).

Această comandă este deja în funcția de buclă. Aceasta face deja parte dintr-un program care ne va fi repetat în mod constant. Scrierea acestei comenzi arată astfel:

Și a mai rămas o comandă de întârziere (1000). Pentru ce este?

Acest lucru îi spune lui Arduino să oprit o vreme. Acel timp special este 1000. Această valoare este dată în milisecunde. Această comandă întârzie (1000) ti va opri executarea programului timp de 1000 de milisecunde, adică o secundă. Prin urmare, puteți vedea că LED-ul clipește la intervale secundare, deoarece este între două comenzi digitalWrite.

Dacă ați ratat această comandă, veți vedea strălucirea LED-ului cu o luminozitate mai mică. Incearca-l. De asemenea încercați să modificați această valoare de exemplu. la 500. Joacă-te cu acele valori, ai Arduino pentru asta.

Deci, cum funcționează totul?

Când rezum întregul program în limba noastră, arată așa. Mai întâi voi seta pinul 9 la ieșire. Apoi, în buclă, am setat acest pin la HIGH, care aprinde LED-ul, apoi aștept 1s, apoi opresc dioda și aștept din nou o secundă. Apoi programul pornește din nou cu o buclă de buclă de la comandă pentru a seta pinul la HIGH și așa mai departe tot timpul.

Și când chim are LED-uri pe un alt pin?

Trebuie să rescriu toate numerele 9? Nu putea fi schimbat o singură dată într-un singur loc? Ei bine, imaginați-vă că ar fi posibil și destul de simplu.

Când rescrieți numărul 9 într-un alt număr PIN, aveți riscul potențial de a-l uita undeva. Mai ales cu programe mai lungi. Prin urmare, este mai potrivit să introducem așa-numitele denumirea simbolică în loc de un anumit număr PIN și apoi utilizați-l după cum urmează în program. Implementăm acest așa-numit directivă preprocesator. Cum? Similar cu constanta LED_BUILTIN.

Un astfel de nume pentru tine acum vom crea și exact două diferite. La urma urmei, trebuie să schimbăm și ora.

Acum fizic conectați LED-ul la pinul 10, încărcați programul și LED-ul va clipi acum pe pinul 10 și mai repede. Schimbați valoarea de 500 la una inferioară și coborâți puțin LED-ul, astfel încât să clipească mai repede. Încercați să definiți de două ori diferite - una pentru lungimea iluminării și cealaltă pentru lungimea neiluminării. De exemplu. LED-ul este aprins timp de 2 secunde și stins o jumătate de secundă.

LED-ul poate fi conectat și în alte moduri?

Da, o va face. Opriți Arduino. Primul conectați de data aceasta LED-ul "picior" mai scurt (catod pozitiv) de pe rezistorul conectat la pinul 10 (pur și simplu rotiți LED-ul fizic în panoul de control). Și acum conectați în mod similar piciorul mai lung (anod negativ) acum, dar la + 5V. Pe scurt, LED-ul este acum conectat la + 5V și nu la GND. Aici este desenat în imagine diferența de conexiune.

Porniți Arduino și dacă aveți un program înregistrat în care LED-ul ar fi trebuit să fie aprins timp de 2 secunde și nu aprins jumătate de secundă, veți descoperi că funcționează acum exact opusul. Aceasta înseamnă că acum cu comanda digitalWrite nu veți aprinde LED-ul cu valoarea HIGH, ci îl veți opri (în mod similar, opusul este valabil și pentru LOW).

Și de ce este așa? Deoarece curentul curge de la polul pozitiv + 5V la polul negativ GND. Acum uită-te atent la imagine.

În primul caz la pinul D9 se aplică valoarea HIGH + 5V și curentul curge prin rezistență și LED în jos la sol GND și LED-ul este aprins. Când valoarea LOW este 0V (GND) pe pinul D9, curentul nu curge nicăieri (nu curge de la GND la GND).

În al doilea caz la pinul D9, setați HIGH la + 5V și LED-ul este conectat și la + 5V, astfel încât curentul să nu curgă (de la + 5V la + 5V). Dar dacă punem valoarea LOW (GND) pe acel pin D9, atunci LED-ul se va aprinde. Este cel puțin puțin clar?

Ce altceva ar trebui să știu?

Cu siguranță cel puțin cum nu distrugeți Arduino când este conectat. Mă ocup de acest lucru într-un articol separat „Cum (nu) să distrug Arduino”. Vă recomand să aruncați o privire la acest lucru, astfel încât să puteți evita greșelile, deoarece cablarea incorectă poate deteriora placa Arduino.

Și ce urmează?

Ei bine, a fost greu să conectezi și să programezi un Arduino? Cred ca nu. Ce te așteaptă în continuare? Regla acest program pentru a funcționa întârziere în program nu s-a produs deloc. Pentru a spune adevărul, această comandă trebuie evitată și utilizată cât mai puțin posibil, astfel încât programul să nu stea în locul dvs. inutil într-un singur loc, ci să facă și altceva util.

Cel mai apropiat exemplu va fi intermitent cu mai multe LED-uri cu timpi de intermitent diferiți. Sau cât de mult curgea luminozitatea LED-ului aprinde-te ca la un dimmer? Asta va fi menționat PWM. Cum se poate face acest lucru cu Arduino? Acest lucru va fi discutat în articolul următor.