Limbajul Arduino. Arduino - instrucțiuni de control. Marea Enciclopedie a Electricității

Studierea microcontrolerelor pare complicată și de neînțeles? Înainte să apară Arudino, nu a fost chiar ușor și a necesitat un anumit set de programatori și alte echipamente.

Acesta este un fel de designer electronic. Scopul inițial al proiectului este acela de a permite oamenilor să învețe cu ușurință cum să programeze dispozitivele electronice, alocând în același timp un timp minim părții electronice.

Asamblarea circuitelor complexe și conectarea plăcilor se poate realiza fără fier de lipit, dar cu ajutorul unor jumperi cu conexiuni masculine și feminine detașabile. În acest fel, pot fi conectate atât elementele montate, cât și plăcile de expansiune, care în lexiconul Arduino sunt numite pur și simplu „Shields”.

Care este prima placă Arduino pe care o cumpără pentru un începător?

Este considerată placa de bază și cea mai populară. Această placă are dimensiunea unui card de credit. Destul de mare. Majoritatea scuturilor care sunt la vânzare se potrivesc perfect cu el. Placa are prize pentru conectarea dispozitivelor externe.

În magazinele autohtone în 2017, prețul său este de aproximativ 4-5 dolari. Pe modelele moderne, inima sa este Atmega328.

Imaginea plăcii Arduino și explicația funcțiilor fiecărui pin, pinout Arduino UNO

Microcontrolerul de pe această placă este un cip lung într-un pachet DIP28, ceea ce înseamnă că are 28 de picioare.

Următoarea placă cea mai populară costă aproape de două ori mai mult decât cea anterioară - 2-3 dolari. Aceasta este o taxă. Plăcile actuale sunt construite pe același Atmega328, sunt similare funcțional cu UNO, diferențele sunt în dimensiune și soluție pentru coordonarea cu USB, mai multe despre asta mai târziu. O altă diferență este că mufele în formă de pin sunt prevăzute pentru conectarea dispozitivelor la placă.

Numărul de pini (picioare) acestei plăci este același, dar puteți vedea că microcontrolerul este realizat într-un pachet mai compact TQFP32, ADC6 și ADC7 sunt adăugate la carcasă, celelalte două picioare „extra” dublează magistrala de alimentare. . Dimensiunea sa este destul de compactă - cam de dimensiunea degetului mare.

A treia placă cea mai populară este că nu are un port USB pentru conectarea la un computer; vă voi spune cum se face conexiunea puțin mai târziu.

Aceasta este cea mai mică placă dintre toate revizuite, altfel este similară cu cele două precedente, iar inima sa este încă Atmega328. Nu vom lua în considerare alte plăci, deoarece acesta este un articol pentru începători, iar compararea plăcilor este un subiect pentru un articol separat.

În partea de sus există o diagramă de conectare USB-UART, pinul „GRN” este conectat la circuitul de resetare al microcontrolerului, poate fi apelat de altceva, veți afla de ce este necesar mai târziu.

În timp ce UNO este excelent pentru prototipare, Nano și Pro Mini sunt excelente pentru finalizarea proiectului, deoarece ocupă puțin spațiu.

Cum se conectează Arduino la computer?

Arduino Uno și Nano se conectează la computer prin USB. Cu toate acestea, nu există suport hardware pentru portul USB; aici este utilizată o soluție de circuit de conversie a nivelului, numită de obicei USB-to-Serial sau USB-UART (rs-232). În același timp, un bootloader special Arduino este introdus în microcontroler, ceea ce permite intermiterea prin aceste magistrale.

Arduino Uno implementează această conexiune pe un microcontroler cu suport USB - ATmega16U2 (AT16U2). Se pare că este necesar un microcontroler suplimentar pe placă pentru a flash-ul firmware-ului microcontrolerului principal.

În Arduino Nano, acest lucru este implementat de cipul FT232R sau de analogul său CH340. Acesta nu este un microcontroler - este un convertor de nivel, acest fapt facilitează asamblarea Arduino Nano de la zero cu propriile mâini.

De obicei, driverele sunt instalate automat atunci când conectați placa Arduino. Totuși, când am cumpărat o copie chineză a Arduino Nano, dispozitivul a fost identificat, dar nu a funcționat, pe convertor era un autocolant rotund cu informații despre data lansării, nu știu dacă acest lucru a fost făcut intenționat , dar când l-am dezlipit, am văzut marcajul CH340.

Nu am mai întâlnit asta până acum și am crezut că toate convertoarele USB-UART au fost asamblate pe FT232, a trebuit să descarc driverele, sunt foarte ușor de găsit căutând „drivere Arduino ch340”. După o instalare simplă, totul a funcționat!

Microcontrolerul poate fi alimentat și prin același port USB, de exemplu. dacă îl conectați la un adaptor de la un telefon mobil, sistemul dumneavoastră va funcționa.

Ce ar trebui să fac dacă placa mea nu are USB?

Placa Arduino Pro Mini are dimensiuni mai mici. Acest lucru a fost realizat prin eliminarea conectorului USB pentru firmware și același convertor USB-UART. Prin urmare, trebuie achiziționat separat. Cel mai simplu convertor bazat pe CH340 (cel mai ieftin), CPL2102 și FT232R, costă de la 1 dolar.

Când cumpărați, acordați atenție la ce tensiune este proiectat acest adaptor. Pro mini vine în versiuni de 3,3 și 5 V; convertoarele au adesea un jumper pentru comutarea tensiunii de alimentare.

Când afișați firmware-ul Pro Mini, imediat înainte de a-l porni, trebuie să apăsați RESET, cu toate acestea, în convertoarele cu DTR acest lucru nu este necesar, diagrama de conectare este în figura de mai jos.

Acestea sunt conectate cu terminale speciale „Mama-Mama” (femeie-femeie).

De fapt, toate conexiunile se pot face folosind astfel de borne (Dupont), acestea vin pe ambele părți cu prize și cu mufe, iar pe o parte există o priză și pe cealaltă există o mufă.

Cum se scriu programe pentru Arduino?

Pentru a lucra cu schițe (numele firmware-ului în limba inginerilor Arduino), există un mediu de dezvoltare integrat special pentru Arduino IDE, îl puteți descărca gratuit de pe site-ul oficial sau de pe orice resursă tematică; de obicei, nu există probleme cu instalare.

Așa arată interfața programului. Puteți scrie programe într-un limbaj simplificat C AVR special conceput pentru Arduino, în esență un set de biblioteci numite Wiring, precum și în C AVR pur. A cărui utilizare simplifică codul și accelerează funcționarea acestuia.

În partea de sus a ferestrei există un meniu familiar unde puteți deschide un fișier, setări, selectați placa cu care lucrați (Uno, Nano și multe, multe altele) și, de asemenea, deschide proiecte cu exemple de cod gata făcute. Mai jos este un set de butoane pentru lucrul cu firmware-ul; veți vedea alocarea tastelor în figura de mai jos.

În partea de jos a ferestrei există o zonă pentru afișarea informațiilor despre proiect, starea codului, firmware-ul și prezența erorilor.

Bazele programării Arduino IDE

La începutul codului trebuie să declarați variabile și să includeți biblioteci suplimentare, dacă există, acest lucru se face după cum urmează:

#include biblioteka.h; // conectați biblioteca numită „Biblioteka.h”

#define changenaya 1234; // Declarați o variabilă cu valoarea 1234

Comanda Define permite compilatorului să aleagă tipul de variabilă în sine, dar o puteți seta manual, de exemplu, un întreg int sau un floating-point float.

int led = 13; // a creat variabila „led” și i-a atribuit valoarea „13”

Programul poate determina starea pinului ca 1 sau 0. 1 este o unitate logică, dacă pinul 13 este 1, atunci tensiunea de pe pinul său fizic va fi egală cu tensiunea de alimentare a microcontrolerului (pentru Arduino UNO și Nano - 5 V)

Un semnal digital este scris folosind comanda digitalWrite (pin, valoare), de exemplu:

digitalWrite(led, high); //scrieți unul la pinul 13 (am declarat-o mai sus) jurnal. Unități.

După cum puteți înțelege, porturile sunt accesate în funcție de numerotarea de pe placă, corespunzătoare numărului. Iată un exemplu similar cu codul anterior:

digitalWrite(13, mare); // setați pinul 13 la unu

O funcție de întârziere utilizată frecvent este apelată de comanda delay(), a cărei valoare este specificată în milisecunde, microsecundele sunt obținute folosind

delayMicroseconds() Delay(1000); //microcontrolerul va aștepta 1000 ms (1 secundă)

Setările portului de intrare și ieșire sunt specificate în funcția void setup() cu comanda:

pinMode(NOMERPORTA, OUTPUT/INPUT); // argumente - numele variabilei sau numărul portului, intrare sau ieșire din care să alegeți

Înțelegerea primului program Blink

Ca un fel de „Bună, lume” pentru microcontrolere, există un program pentru a clipi un LED, să ne uităm la codul său:

La început, cu comanda pinMode, am spus microcontrolerului să atribuie portul cu LED-ul la ieșire. Ați observat deja că în cod nu există nicio declarație a variabilei „LED_BUILTIN”, adevărul este că în Uno, Nano și alte plăci, un LED încorporat este conectat la pinul 13 din fabrică și este lipit pe bord. Poate fi folosit de dvs. pentru afișare în proiectele dvs. sau pentru testarea simplă a programelor dvs. intermitente.

Apoi, setăm pinul la care este lipit LED-ul la unul (5 V), următoarea linie face ca MK să aștepte 1 secundă, apoi setează pinul LED_BUILTIN la zero, așteaptă o secundă și programul se repetă într-un cerc, deci când LED_BUILTIN este egal cu 1 - LED (și orice altă sarcină conectată la port) este pornit, când la 0 este oprit.

Citim valoarea de la portul analogic și folosim datele citite

Microcontrolerul AVR Atmega328 are un convertor analog-digital de 10 biți încorporat. ADC-ul de 10 biți vă permite să citiți valorile tensiunii de la 0 la 5 volți, în pași de 1/1024 din întreaga variație a amplitudinii semnalului (5 V).

Pentru a fi mai clar, să luăm în considerare situația, să presupunem că valoarea tensiunii la intrarea analogică este de 2,5 V, ceea ce înseamnă că microcontrolerul va citi valoarea de la pinul „512”, dacă tensiunea este 0 - „0” și dacă 5 V - (1023). 1023 - deoarece numărarea începe de la 0, adică. 0, 1, 2, 3 etc. până la 1023 - 1024 de valori în total.

Așa arată în cod, folosind schița standard „analogInput” ca exemplu

int sensorPin = A0;

int ledPin = 13;

int sensorValue = 0;

pinMode(ledPin, OUTPUT);

sensorValue = analogRead(sensorPin);

digitalWrite(ledPin, HIGH);

întârziere (sensorValue);

digitalWrite(ledPin, LOW);

întârziere (sensorValue);

Declarăm variabile:

    Ledpin - atribuim independent un pin cu un LED încorporat la ieșire și îi dăm un nume individual;

    sensorPin - intrare analogică, setată în funcție de marcajele de pe placă: A0, A1, A2 etc.;

    sensorValue - o variabilă pentru stocarea valorii întregi citite și pentru a lucra în continuare cu aceasta.

Codul funcționează astfel: sensorValue salvează valoarea analogică citită de sensorPin (comanda analogRead). - aici se termină lucrul cu semnalul analogic, apoi totul este ca în exemplul anterior.

Scriem unul pe ledPin, LED-ul se aprinde și așteptăm un timp egal cu valoarea sensorValue, adică. de la 0 la 1023 milisecunde. Oprim LED-ul și așteptăm din nou această perioadă de timp, după care codul se repetă.

Astfel, prin poziționarea potențiometrului setăm frecvența de clipire a LED-ului.

Funcția de hartă pentru Arudino

Nu toate funcțiile pentru actuatoare (nu știu de niciuna) acceptă „1023” ca argument, de exemplu, servo-ul este limitat de unghiul de rotație, adică pe jumătate de tură (180 de grade) (jumătate de tură) a servomotorului argumentul maxim al funcției este „180”

Acum despre sintaxă: hartă (valoarea pe care o traducem, valoarea minimă de intrare, valoarea maximă de intrare, valoarea minimă de ieșire, valoarea maximă de ieșire).

În cod arată așa:

(hartă(analogRead(pot), 0, 1023, 0, 180));

Citim valoarea de la potențiometru (analogRead(pot)) de la 0 la 1023, iar la ieșire obținem numere de la 0 la 180

Valori hărți de valori:

În practică, aplicăm acest lucru la funcționarea codului aceluiași servo drive, aruncați o privire la codul din Arduino IDE, dacă citiți cu atenție secțiunile anterioare, atunci nu necesită nicio explicație.

Și schema de conectare.

Concluzii Arduino este un instrument foarte convenabil pentru a învăța să lucrezi cu microcontrolere. Și dacă utilizați pur C AVR, sau așa cum se numește uneori „Pure C”, veți reduce semnificativ greutatea codului și mai mult se va încadra în memoria microcontrolerului, ca urmare veți obține o fabrică excelentă - a făcut o placă de depanare cu capacitatea de a flash firmware prin USB.

Îmi place Arduino. Este păcat că mulți programatori experimentați de microcontrolere îl critică fără temei pentru că este prea simplificat. În principiu, doar limbajul este simplificat, dar nimeni nu te obligă să îl folosești, plus că poți să flashi microcontrolerul prin conectorul ICSP și să încarci acolo codul dorit, fără bootloadere inutile.

Pentru cei care vor să se joace cu electronica, ca un designer avansat, acesta este perfect, iar pentru programatorii experimentați, ca o placă care nu necesită asamblare, va fi și utilă!

Pentru mai multe informații despre Arduino și caracteristicile utilizării sale în diferite circuite, consultați cartea electronică - .

Baza limbajului de programare al modulului Arduino este limbajul C (cel mai probabil C++). Mai exact, acest dialect al limbii se numește Processing/Wiring. Veți găsi o prezentare generală bună a limbii în anexă. Dar vreau să vorbesc mai mult nu despre limbaj, ci despre programare.

Un program este un anumit set de comenzi care este înțeles de procesor, procesorul computerului dvs. sau procesorul microcontrolerului modulului Arduino, nu contează. Procesorul citește instrucțiunile și le execută. Orice comenzi pe care procesorul le înțelege sunt numere binare. Acestea sunt doar numere binare și nimic altceva. Efectuând operațiile aritmetice pentru care procesorul a fost conceput cândva, procesorul operează pe numere. Numerele binare. Și se dovedește că atât comenzile, cât și la ce se referă sunt doar numere binare. Ca aceasta. Dar cum sortează procesorul prin această „grămadă” de numere binare?

În primul rând, toate aceste numere binare sunt scrise în celule RAM succesive care au adrese. Când încărcați un program și acesta începe să ruleze, procesorul primește prima adresă a programului, unde trebuie scrisă comanda. Acele instrucțiuni care necesită ca procesorul să funcționeze cu numere au „semne de identificare”, de exemplu, că în următoarele două celule de memorie sunt două numere care trebuie adăugate. Și contorul, să-l numim contor de program, unde este scrisă adresa următoarei comenzi, în acest caz mărește adresa astfel încât programul să conțină următoarea comandă la această adresă. Dacă programul nu funcționează corect sau există erori, procesorul poate face o greșeală și apoi, după ce a citit un număr în loc de o comandă, procesorul face ceva complet diferit de ceea ce ar trebui să facă, iar programul „se îngheață”.

Astfel, orice program este o succesiune de numere binare. Și programarea este capacitatea de a scrie corect secvențele corecte de numere binare. Cu destul de mult timp în urmă, instrumentele speciale numite limbaje de programare au început să fie folosite pentru a scrie programe.

Cu toate acestea, orice program necesită mai întâi să înțelegeți clar ce ar trebui să facă programul și de ce este necesar. Cu cât înțelegeți mai clar acest lucru, cu atât este mai ușor să creați un program. Programele mici, deși este greu de spus care programe sunt mici și care nu, pot fi considerate ca un întreg. Programele mai complexe sunt cel mai bine împărțite în părți care pot fi tratate ca programe independente. Acest lucru face mai bună crearea acestora, mai ușor de depanat și testat.

Nu sunt pregătit să argumentez, dar cred că este mai convenabil să porniți un program cu o descriere în limbaj obișnuit. Și în acest sens, cred că programarea nu trebuie confundată cu scrierea codului programului. Când un program este descris în cuvinte obișnuite, vă este mai ușor să determinați, de exemplu, ce limbaj de programare să alegeți pentru a crea codul programului.

Cel mai apropiat lucru de a scrie un program folosind numere binare este limbajul de asamblare. Se caracterizează prin corespondența comenzilor limbajului cu comenzile binare înțelese de procesor. Dar codarea programelor în limbaj de asamblare necesită mult efort și este mai aproape de o artă decât de operațiuni formale. Limbile de nivel înalt precum BASIC sau C sunt mai universale și mai ușor de utilizat. Și de mult timp, un limbaj grafic a fost folosit pentru a scrie programe într-o formă generală, iar recent au apărut „traducători” din acest limbaj în limbajul procesoarelor.

Pe lângă limbajele de programare generale, a existat întotdeauna o anumită specializare a limbajelor de programare și au existat limbaje specializate. Aș include și limbajul de programare al modulului Arduino printre acestea din urmă.

Tot ceea ce avem nevoie pentru a spune modulului să facă ceva de care avem nevoie este organizat într-un set convenabil de comenzi. Dar mai întâi, de ce avem nevoie de la Arduino?

Modulul poate fi utilizat în diferite capacități - este inima (sau capul) robotului, este baza dispozitivului, este și un constructor convenabil pentru stăpânirea lucrului cu microcontrolere etc.

Mai sus, am folosit deja programe simple pentru a verifica conexiunea modulului la computer. Pentru unii le pot părea prea simple și, prin urmare, nu sunt interesante, dar orice programe complexe constau din fragmente mai simple, similare cu cele cu care ne-am familiarizat deja.

Să vedem ce ne poate spune cel mai simplu program „Blink an LED”.

int ledPin = 13;

pinMode(ledPin, OUTPUT);

digitalWrite(ledPin, HIGH);

digitalWrite(ledPin, LOW);

În primul rând, să ne amintim ce este un LED. În esență, aceasta este o diodă obișnuită, în care, datorită designului său, atunci când curentul curge în direcția înainte, joncțiunea începe să strălucească. Adică, pentru ca un LED să strălucească, curentul trebuie să circule prin el, ceea ce înseamnă că trebuie aplicată tensiune pe LED. Și pentru ca curentul să nu depășească valoarea admisă, un rezistor trebuie conectat în serie cu LED-ul, care se numește rezistor de limitare a curentului (a se vedea Anexa A, ieșire digitală). Tensiunea este aplicată LED-ului de către microcontrolerul care formează baza modulului Arduino. Microcontrolerul, pe lângă procesorul care execută comenzile noastre, are unul sau mai multe porturi I/O. Fără a lua în considerare dispozitivul specific al portului, să spunem asta - atunci când pinul portului funcționează ca ieșire, acesta poate fi reprezentat ca ieșirea unui microcircuit digital cu două stări, pornit și oprit (există tensiune la ieșire , nu există tensiune la ieșire).

Dar același pin de port poate funcționa și ca intrare. În acest caz, poate fi reprezentat, de exemplu, ca intrarea unui microcircuit digital - un nivel logic, ridicat sau scăzut, este aplicat intrării (a se vedea Anexa A, intrare digitală).

Cum intermitem LED-ul:

Activați pinul de ieșire a portului. Opriți ieșirea portului.

Dar procesorul este foarte rapid. Nu vom avea timp să observăm clipirea. Pentru a observa această clipire, trebuie să adăugăm pauze. Acesta este:

Activați pinul de ieșire a portului. Pauză de 1 secundă.

Opriți ieșirea portului.

Pauză de 1 secundă.

Acesta este programul nostru. Procesorul va citi prima comandă și va porni ieșirea, LED-ul se va aprinde. Apoi procesorul se va opri și va opri ieșirea, LED-ul se va stinge. Dar a clipit o singură dată.

Repetarea unui proces sau a unui set de comenzi se numește buclă în programare. Sunt utilizate diferite tipuri de cicluri. Există o buclă care rulează de un anumit număr de ori. Aceasta este o buclă pentru. Există bucle care rulează până când este îndeplinită o anumită condiție, care face parte din construcția buclei din limbaj. Și dacă condiția nu este îndeplinită niciodată, atunci bucla este executată de un număr infinit de ori. Este un ciclu nesfârșit.

Nu cred că microcontrolerele sunt folosite cu programe de tipul prezentat mai sus. Adică mai multe comenzi sunt executate o dată și controlerul nu mai funcționează. De regulă, funcționează continuu de îndată ce i se aplică tensiunea de alimentare. Aceasta înseamnă că microcontrolerul trebuie să funcționeze într-o buclă nesfârșită.

Acesta este exact ceea ce spune funcția void loop(), o buclă este o buclă, o buclă închisă. Nu există nicio condiție pentru oprirea ciclului și, prin urmare, nu există nicio condiție pentru finalizarea acestuia.

În plus, trebuie să spunem modulului Arduino ce pin de port vrem să folosim și cum vrem să fie folosit, pentru ieșire (OUTPUT) sau pentru intrare (INPUT). Acest scop este servit de funcția void setup(), care este obligatorie pentru limbajul Arduino, chiar dacă nu este folosită, și de comanda pinMode() pentru a seta modul de funcționare de ieșire.

pinMode(ledPin, OUTPUT);

Și totuși, constructul limbajului folosește variabile pentru a determina numărul de ieșire:

int ledPin = 13;

Utilizarea variabilelor este convenabilă. Dacă decideți că veți utiliza ieșirea 12 în loc de 13, veți face doar o modificare pe o singură linie. Acest lucru este valabil mai ales în programele mari. Numele variabilei poate fi ales după cum doriți, dar în general trebuie să fie doar caractere, iar numărul de caractere este adesea limitat. Dacă setați incorect numele variabilei, cred că compilatorul vă va corecta.

Funcția digitalWrite(ledPin, HIGH) setează pinul specificat la o stare ridicată, adică pornește pinul.

Și întârzierea (1000), așa cum ați înțeles deja, înseamnă o pauză de 1000 de milisecunde sau 1 secundă.

Rămâne să înțelegem ce înseamnă prefixe precum int și void. Orice valoare, orice variabilă se află în memorie, la fel ca și comenzile programului. Numerele formate adesea din 8 biți sunt scrise în celulele de memorie. Acesta este un octet. Dar un octet este un număr de la 0 la 255. Pentru a înregistra numere mari, aveți nevoie de doi octeți sau mai mulți, adică două sau mai multe celule de memorie. Pentru a clarifica procesorului cum să găsească un număr, diferitele tipuri de numere au nume diferite. Deci un număr numit octet va ocupa o celulă, int (întreg, întreg) va lua mai mult. În plus, funcțiile utilizate în limbajele de programare returnează și numere. Pentru a determina ce tip de număr ar trebui să returneze o funcție, prefixați funcția cu acel tip de număr returnat. Dar unele funcții pot să nu returneze numere; astfel de funcții sunt precedate de notația void (vezi Anexa A, variabile).

Atât de interesant poate spune chiar și cel mai simplu program.

Sper că puteți citi despre toate acestea în anexă. Acum să facem experimente simple, folosind doar ceea ce știm deja din capacitățile limbajului. Mai întâi, să înlocuim o variabilă de tip int, care ocupă mult spațiu de memorie, cu un octet - un loc, o celulă de memorie. Să vedem ce putem face.

byte ledPin = 13;

pinMode(ledPin, OUTPUT);

digitalWrite(ledPin, HIGH);

digitalWrite(ledPin, LOW);

După compilarea și încărcarea programului în modul, nu vom observa nicio modificare în funcționarea programului. Amenda. Apoi vom schimba programul pentru a observa modificări în funcționarea acestuia.

Pentru a face acest lucru, vom înlocui numărul din funcția de întârziere (1000) cu o variabilă, numind-o my_del. Această variabilă trebuie să fie un număr întreg, adică int.

int my_del = 5000;

Nu uitați să terminați fiecare comandă cu un punct și virgulă. Faceți modificări în program, compilați-l și încărcați-l în modul. Apoi modificați variabila și recompilați și încărcați din nou:

byte my_del = 5000;

Sunt sigur că diferența va fi vizibilă.

Să facem un alt experiment cu schimbarea duratei pauzelor. Să reducem durata pauzelor, să zicem, de cinci ori. Să facem o pauză de 2 secunde, apoi să o mărim și de cinci ori. Și din nou facem o pauză de 2 secunde. O buclă care rulează un anumit număr de ori se numește buclă for și este scrisă astfel:

pentru (int i = 0; i<5; i++)

ceva care este executat într-o buclă for

Pentru a executa bucla, are nevoie de o variabilă, pentru noi este i, variabilei trebuie să i se dea o valoare inițială, pe care i-am atribuit-o. Apoi urmează condiția pentru terminarea buclei, avem i mai mic decât 5. Și intrarea i++ este o intrare tipică în limbaj C pentru creșterea unei variabile cu una. Acolade limitează setul de comenzi care pot fi executate într-o buclă for. Alte limbaje de programare pot avea diferiți delimitatori pentru evidențierea unui bloc de cod de funcție.

În interiorul buclei facem același lucru ca înainte, cu câteva modificări minore:

pentru (int i = 0; i<5; i++)

digitalWrite(ledPin, HIGH);

digitalWrite(ledPin, LOW);

my_del = my_del - 100;

Am vorbit mai sus despre modificarea înregistrării pauzei, iar schimbarea pauzei în sine se realizează prin scăderea variabilei cu 100.

Pentru a doua buclă, vom scrie același bloc de cod, dar vom crește variabila durata pauzei cu 100.

pentru (int i = 0; i<5; i++)

digitalWrite(ledPin, HIGH);

digitalWrite(ledPin, LOW);

Ați observat că înregistrarea unei scăderi a pauzei și o creștere a acesteia arată diferit. Aceasta este, de asemenea, o caracteristică a limbajului C. Deși, pentru claritate, această intrare ar fi trebuit repetată, schimbând doar semnul minus în plus. Deci obținem acest program:

int ledPin = 13;

int my_del = 1000;

pinMode(ledPin, OUTPUT);

pentru (int i = 0; i<5; i++)

digitalWrite(ledPin, HIGH);

digitalWrite(ledPin, LOW);

pentru (int i = 0; i<5; i++)

digitalWrite(ledPin, HIGH);

digitalWrite(ledPin, LOW);

Să copiem codul programului nostru în programul Arduin, să îl compilam și să îl încărcăm în modul. Modificarea duratei pauzelor este vizibilă. Și va fi și mai vizibil, încercați dacă bucla for este executată, să zicem, de 8 ori.

Ceea ce tocmai am făcut este ceea ce fac programatorii profesioniști - având un program gata făcut, acesta poate fi ușor modificat pentru a se potrivi nevoilor sau dorințelor dumneavoastră. De aceea își stochează toate programele. Ceea ce te sfatuiesc sa faci si eu.

Ce ne-a lipsit în experimentul nostru? Nu am comentat munca noastră. Pentru a adăuga un comentariu, utilizați fie o dublă bară oblică, fie o singură bară oblică, dar cu asteriscuri (vezi Anexa A). Vă sfătuiesc să faceți acest lucru singur, pentru că atunci când vă întoarceți la program după un timp, o veți înțelege mai ușor dacă există explicații despre ceea ce faceți în cutare sau cutare loc al programului. Și vă mai sfătuiesc să stocați descrierea acesteia în limbaj simplu, realizată în orice editor de text, în folderul cu fiecare program.

Cel mai simplu program „clipirea unui LED” poate servi pentru încă o duzină de experimente (chiar și cu un LED). Mi se pare că această parte a lucrării, care vine cu ce altceva se poate face într-un mod interesant, este cea mai interesantă. Dacă vă referiți la anexa în care este descris limbajul de programare, la secțiunea „controlul programului”, puteți înlocui bucla for cu un alt tip de buclă. Și încercați cum funcționează alte tipuri de cicluri.

Deși un procesor cu microcontroler, ca oricare altul, poate efectua calcule (de aceea a fost inventat), iar acesta este folosit, de exemplu, în dispozitive, cea mai tipică operație pentru un microcontroler va fi setarea portului de ieșire la un nivel ridicat sau scăzut. stare, adică „luminați LED-ul” ca reacție la evenimente externe.

Microcontrolerul învață despre evenimentele externe în principal prin starea intrărilor. Setând pinii portului la o intrare digitală, îl putem monitoriza. Dacă starea inițială a intrării este ridicată și un eveniment face ca intrarea să scadă, atunci putem face ceva ca răspuns la acel eveniment.

Cel mai simplu exemplu este un buton la intrare. Când butonul nu este apăsat, intrarea este într-o stare ridicată. Dacă apăsăm butonul, intrarea scade și putem „aprinde” LED-ul la ieșire. Data viitoare când apăsați butonul, LED-ul poate fi stins.

Acesta este din nou un exemplu de program simplu. Chiar și un începător poate considera că este neinteresant. Cu toate acestea, acest program simplu poate găsi și aplicații destul de utile. Voi da doar un exemplu: după apăsarea butonului, nu vom aprinde LED-ul, ci vom clipi (într-un anumit fel). Și să luăm un LED cu radiație infraroșie. Ca rezultat, vom obține un panou de control. Acesta este un program atât de simplu.

Există diferențe în lista de exemple în diferite versiuni ale programului. Dar puteți consulta manualul de limbă din anexă, care are un exemplu și diagramă de program (în secțiunea de exemple numită „anexă”) pentru lucrul cu intrare. Voi copia programul:

int ledPin = 13;

pinMode(ledPin, OUTPUT);

pinMode(inPin, INPUT);

dacă (digitalRead(inPin) == HIGH)

digitalWrite(ledPin, HIGH);

digitalWrite(ledPin, LOW);

Și, după cum puteți vedea, obținem un program complet nou prin modificarea celui vechi. Acum LED-ul va clipi numai atunci când este apăsat butonul care este conectat la pinul 2. Pinul 2 este conectat la firul comun (masă, GND) printr-un rezistor de 10 kOhm. Butonul este conectat la un capăt la tensiunea de alimentare +5V, iar la celălalt capăt la pinul 2.

În program întâlnim un nou construct de limbaj dacă din secțiunea de control al programului. Se citește astfel: dacă condiția (închisă între paranteze) este îndeplinită, atunci blocul de program cuprins între acolade este executat. Rețineți că în condiția (digitalRead(inPin) == HIGH) egalitatea intrării cu starea ridicată se face folosind două semne egale! Foarte des, în grabă, acest lucru este uitat, iar starea se dovedește a fi incorectă.

Programul poate fi copiat și încărcat în modulul Arduino. Cu toate acestea, pentru a verifica funcționarea programului, va trebui să faceți unele modificări în designul modulului. Totuși, acest lucru depinde de tipul de modul. Modulul original are prize pentru conectarea la carduri de expansiune. În acest caz, puteți introduce fire solide adecvate în locurile necesare din conector. Modulul meu are contacte blade pentru conectarea la plăcile de expansiune. Pot fie să caut un conector potrivit, fie, care este mai ieftin, să folosesc o priză potrivită pentru cip într-un pachet DIP.

A doua întrebare este cum să găsiți pinii modulului care sunt utilizați în program?

Poza pe care am făcut-o de pe site-ul: http://robocraft.ru/ vă va ajuta să vă dați seama.

Orez. 4.1. Locația și scopul controlerului și pinii modulului Arduino

Toate pinurile de pe modulul meu CraftDuino sunt etichetate, așa că găsirea pinului potrivit este ușoară. Puteți conecta un buton și o rezistență și puteți verifica funcționarea programului. Apropo, pe site-ul RoboCraft menționat mai sus, întregul proces este afișat în imagini (dar programul nu folosește exact aceleași concluzii!). te sfatuiesc sa te uiti.

Multe microcontrolere includ dispozitive hardware suplimentare. Deci Atmega168, pe baza căruia este asamblat modulul Arduino, are un UART, o unitate încorporată pentru comunicarea cu alte dispozitive folosind schimbul de date în serie. De exemplu, cu un computer printr-un port COM. Sau cu un alt microcontroler folosind blocul său UART încorporat. Există și un convertor analog-digital. Și un model de modulare a lățimii pulsului.

Utilizarea acestuia din urmă este ilustrată de un program pe care îl voi copia și de pe site-ul RoboCraft. Dar programul poate fi preluat și din aplicație. Și poate că este în exemplele programului Arduino.

// Fading LED by BARRAGAN

valoare int = 0; // variabilă pentru a stoca valoarea dorită

int ledpin = 9; // LED-ul conectat la pinul digital 9

// Nu este nevoie să apelați funcția pinMode

pentru(valoare = 0; valoare<= 255; value+=5) // постепенно зажигаем светодиод

analogWrite(ledpin, valoare); // valoare de ieșire (de la 0 la 255)

întârziere (30); // aștept 🙂

pentru(valoare = 255; valoare >=0; valoare-=5) // stinge treptat LED-ul

analogWrite(ledpin, valoare);

Dacă în programul anterior funcția digitalRead(inPin), citirea intrării digitale, era nouă pentru noi, atunci în acest program funcția analogWrite(ledpin, value) este nouă pentru noi, deși parametrii acestei funcții sunt variabile deja familiare nouă. . Vom vorbi despre utilizarea intrării analogice, folosind un ADC (convertor analog-digital), mai târziu. Acum să revenim la problemele generale de programare.

Programarea este ceva ce poate face toată lumea, dar va fi nevoie de timp pentru a stăpâni atât programarea, cât și orice limbaj de programare. Astăzi există o serie de programe care vă ajută să stăpâniți programarea. Și unul dintre ele este direct legat de modulul Arduino. Se numește Scratch pentru Arduino sau S4A pe scurt. Puteți găsi și descărca acest program de la: http://seaside.citilab.eu/scratch/arduino. Nu știu exact cum este tradus numele programului, dar „a începe de la zero” este tradus ca „începe de la zero”.

Site-ul web al proiectului S4A are versiuni pentru Windows și Linux, dar pentru sistemul de operare din urmă programul este gata de instalat în versiunea de distribuție Debian. Nu vreau să spun că nu poate fi folosit cu alte distribuții Linux, dar mai întâi vom vedea cum să lucrăm cu modulul Arduino în Windows.

După instalarea programului în mod obișnuit, puteți configura interfața în limba rusă folosind comutatorul de limbă.

Orez. 4.2. Comutator de limbă a interfeței programului

Prima pictogramă din bara de instrumente, când este făcută clic, afișează toate limbile posibile ale interfeței programului. Limba rusa poate fi gasita in sectiunea...

Orez. 4.3. Lista limbilor de utilizat în interfața programului

... marcat ca „mai mult...”.

Dacă nu faceți nimic, rămâne inscripția din fereastra din dreapta „Tabla de căutare...”, dar modulul nu este găsit. Pentru a conecta modulul Arduino la programul S4A, trebuie să descărcați altceva de pe site-ul proiectului.

Orez. 4.4. Fișier de încărcat în modulul Arduino pentru S4A

Acest fișier nu este altceva decât un program pentru Arduino (Sketch). Adică, un fișier text care poate fi copiat în editorul Arduino, compilat și încărcat în modul. După ce părăsiți programul Arduino, puteți rula programul S4A și modulul este acum localizat.

Orez. 4.5. Conectarea modulului la program

Intrările analogice ale modulului nu sunt conectate, nici intrările digitale, astfel încât valorile afișate pentru modul se schimbă constant în mod aleatoriu.

Din punct de vedere istoric, partea de software Arduino a constat dintr-un mediu software integrat (IDE) care vă permitea să scrieți, să compilați și să încărcați codul scris pe hardware. Mediul ArduinoIDE și limbajul Wiring în sine se bazează în principal pe Procesare și indirect pe C/C++. De fapt, Arduino IDE este un mare amestec, nu pentru distracție, ci pentru comoditate.

Chiar și extern șiArduinoIDE șiProcesarea sunt similare


În ce constă programul (schița)?
Fiecare program, oricât de complex ar părea, constă din seturi separate blocuri cod, care este notat prin acolade (). Un program minim necesită doar 2 blocuri: setare și buclă. Prezența lor este obligatorie în orice program C++ pentru Arduino, altfel s-ar putea să primești o eroare în etapa de compilare.
void setup() ( ) void loop() ( )
În funcția setup() apar setările inițiale ale variabilelor și ale registrelor. După finalizarea setup() , controlul trece la funcția loop(), care este o buclă infinită scrisă în corp (între ( ) ). Aceste comenzi sunt cele care efectuează toate acțiunile algoritmice ale controlerului.

Hardware"Buna ziua, lume! - LED intermitent.
Ceea ce începe prima cunoaștere cu Arduino la interfața software și hardware este LED-ul care clipește.


Mai întâi trebuie să completați programul minim. Pentru Arduino (de exemplu UNO), conectăm un LED la pinul 12 și GND (culoarea LED-ului în sine este aleasă din preferințele personale).

Void setup() ( pinMode(12, OUTPUT); ) void loop() ( digitalWrite(12, HIGH); delay(100); digitalWrite(12, LOW); delay(900); )
Faceți Ctrl+C -> Ctrl+V, compilați, încărcați, controlați. Vedem un spectacol de lumini care nu durează mai mult de o secundă. Să ne dăm seama de ce se întâmplă asta.

Am adăugat câteva la blocurile goale anterior expresii . Au fost plasate între bretele ale funcțiilor de configurare și buclă.
Fiecare expresie este o instrucțiune pentru procesor. Expresiile dintr-un bloc sunt executate una după alta, strict în ordine, fără pauze sau comutare. Adică, dacă vorbim despre un anumit bloc de cod, acesta poate fi citit de sus în jos pentru a înțelege ce se face.

Ce se întâmplă între{ } ?
După cum știți, pinii Arduino pot funcționa atât ca ieșire, cât și ca intrare. Când vrem să controlăm ceva, trebuie să transferăm pinul de control în starea de ieșire. Acest lucru se face prin expresie în funcțieînființat:
pinMode(12, OUTPUT); În această situație, expresia se realizează apel de funcție . În pinMode, pinul specificat de număr este setat la modul specificat (INPUT sau OUTPUT). Ce pin și despre ce mod vorbim sunt indicate în paranteze, separate prin virgule. În cazul nostru, dorim ca al 12-lea pin să acționeze ca ieșire. OUTPUT înseamnă ieșire, INPUT înseamnă intrare. Sunt apelate valori de calificare, cum ar fi 12 și OUTPUT argumente ale funcției . Câte argumente are o funcție depinde de natura funcției și de voința creatorului ei. Funcțiile nu pot avea deloc argumente, așa cum este cazul setup și loop.

În continuare trecem la blocul buclei, în ordinea:
-apelați funcția încorporată digitalWrite. Este conceput pentru a aplica un zero logic (LOW, 0 volți) sau unul logic (HIGH, 5 volți) unui pin dat. Două argumente sunt transmise funcției digitalWrite: numărul de pin și valoarea logică.
- apelați funcția de întârziere. Aceasta, din nou, este o funcție încorporată care face ca procesorul să „adormiți” pentru un anumit timp. Este nevoie de un singur argument: timpul în milisecunde pentru a dormi. În cazul nostru este de 100 ms. Imediat ce expiră cei 100 ms, procesorul se trezește și trece imediat la următoarea expresie.
- apelați funcția încorporată digitalWrite. Doar că de această dată al doilea argument este LOW. Adică setăm un zero logic pe al 12-lea pin -> aplicăm 0 volți -> stingem LED-ul.
- apelarea funcției de întârziere. De data aceasta „dormim” puțin mai mult – 900 ms.

De îndată ce ultima funcție este executată, blocul buclei se termină și totul se întâmplă din nou. De fapt, condițiile prezentate în exemplu sunt destul de variabile și poți să te joci cu valorile de întârziere, să conectezi mai multe LED-uri și să faci ceva de genul unui semafor sau un fulger de poliție (totul depinde de imaginația și voința creatorului).

În loc de o concluzie, puțin despre curățenie.
De fapt, toate spațiile, întreruperile de rând, caracterele tabulatoare nu înseamnă mare lucru pentru compilator. Acolo unde există un spațiu, poate exista o întrerupere de linie și invers. De fapt, 10 spații la rând, 2 întreruperi de rând și încă 5 spații sunt echivalentul unui spațiu.


Cu ajutorul spațiului gol, puteți face un program ușor de înțeles și vizual sau, dimpotrivă, îl puteți desfigura dincolo de recunoaștere. De exemplu, exemplul de program poate fi modificat astfel:

void setup() ( pinMode(12, OUTPUT); ) void loop () ( digitalWrite(12,HIGH); delay(100); digitalWrite(12,LOW); delay(900); )

Pentru a preveni pe cineva să sângereze din ochi în timpul citirii, puteți urma câteva reguli simple:


1. Întotdeauna, la începutul unui nou bloc între( Și ) crește indentarea. De obicei sunt folosite 2 sau 4 spații. Alegeți una dintre valori și respectați-o pe tot parcursul.

Void loop() (digitalWrite(12, HIGH); întârziere(100); digitalWrite(12, LOW); întârziere(900); )
2. La fel ca în limbajul obișnuit: puneți un spațiu după virgule.

digitalWrite(12, HIGH);
3. Plasați caracterul de început de bloc (pe o linie nouă la nivelul de indentare curent sau la sfârșitul celui precedent. Și caracterul de sfârșit de bloc) pe o linie separată la nivelul de indentare curent:

void setup() ( pinMode(12, OUTPUT); ) void setup() ( pinMode(12, OUTPUT); )
4. Folosiți linii goale pentru a separa blocurile de sens:

void loop() (digitalWrite(12, HIGH); delay(100); digitalWrite(12, LOW); delay(900); digitalWrite(12, HIGH); delay(100); digitalWrite(12, LOW); delay( 900); )
5. Pentru ca copilul dumneavoastră să se bucure de lectură, există așa-zise comentarii. Acestea sunt constructe din codul programului care sunt complet ignorate de compilator și contează doar pentru persoana care le citește. Comentariile pot fi pe mai multe rânduri sau pe o singură linie:

/* acesta este un comentariu pe mai multe rânduri */ // acesta este un comentariu pe o singură linie

Această secțiune este dedicată cărților din lumea Arduino. Pentru incepatori si profesionisti.

Toate cărțile și materialele sunt prezentate doar în scop informativ; după citire, vă rugăm să cumpărați o copie digitală sau hârtie.

Programe pentru citirea cărților:

  • Cărți în format PDF: Adobe Acrobat Reader sau PDF Reader.
  • Cărți în format DJVU: sau Djvu Reader.

Enciclopedie Arduino practică

Cartea rezumă date despre principalele componente ale modelelor bazate pe platforma Arduino, care este reprezentată de cea mai populară versiune a ArduinoUNO de astăzi sau de numeroase clone similare acesteia. Cartea este un set de 33 de capitole experimentale. Fiecare experiment examinează funcționarea unei plăci Arduino cu o componentă sau modul electronic specific, de la cel mai simplu la cel mai complex, care sunt dispozitive specializate independente. Fiecare capitol oferă o listă de detalii necesare pentru realizarea experimentului în practică. Pentru fiecare experiment, este furnizată o diagramă vizuală a conexiunii pieselor în formatul mediului de dezvoltare integrat Fritzing. Oferă o reprezentare clară și precisă a cum ar trebui să arate circuitul asamblat. Următoarele oferă informații teoretice despre componenta sau modulul utilizat. Fiecare capitol conține cod de schiță (program) în limbajul Arduino încorporat cu comentarii.

Electronică. Primul tău quadcopter. Teorie și practică

Aspectele practice ale auto-producției și exploatării quadcopterelor sunt descrise în detaliu. Sunt luate în considerare toate etapele: de la selecția materialelor structurale și selecția componentelor cu minimizarea costurilor financiare până la configurarea software-ului și repararea după un accident. Se acordă atenție greșelilor pe care le fac adesea modelatorii de avioane începători. Bazele teoretice ale zborului sistemelor multi-rotor și conceptele de bază ale lucrului cu Arduino IDE sunt prezentate într-o formă accesibilă. Este oferită o scurtă descriere a proiectării și principiului de funcționare a sistemelor GPS și Glonass, precum și a surselor de alimentare moderne cu impulsuri de bord și a bateriilor litiu-polimer. Principiul de funcționare și procesul de configurare a sistemelor OSD, telemetria, canalul wireless Bluetooth și modulele populare de navigație GPS Ublox sunt descrise în detaliu. Sunt descrise proiectarea și principiile de funcționare ale senzorilor integrati și ale controlorului de zbor. Sunt oferite recomandări pentru selectarea echipamentelor FPV entry-level și este oferită o prezentare generală a programelor pentru computere și smartphone-uri utilizate la configurarea echipamentelor quadcopter.

Proiecte care utilizează controlerul Arduino (ed. a 2-a)

Cartea acoperă principalele plăci Arduino și plăcile de expansiune (scuturi) care adaugă funcționalitate plăcii principale. Limbajul și mediul de programare Arduino IDE sunt descrise în detaliu. Proiectele care utilizează controlere din familia Arduino sunt analizate cu atenție. Este vorba de proiecte din domeniul roboticii, crearea de statii meteo, smart home, vending, televiziune, internet, comunicatii wireless (bluetooth, radio control).

A doua ediție adaugă proiecte de control vocal folosind Arduino, lucrând cu benzi RGB adresabile și controlând iRobot Create pe Arduino. Sunt luate în considerare proiectele care utilizează placa Arduino Leonardo. Sunt oferite lecții pas cu pas pentru dezvoltatorii începători.

Învățarea Arduino: Instrumente și tehnici pentru vrăjitorie tehnică

Cartea este dedicată proiectării dispozitivelor electronice bazate pe platforma de microcontroler Arduino. Oferă informații de bază despre hardware și software Arduino. Sunt prezentate principiile programării în IDE-ul integrat Arduino. Arată cum să analizezi circuitele electrice, să citești descrierile tehnice și să selectezi piesele potrivite pentru propriile proiecte. Sunt date exemple de utilizare și descrieri ale diverșilor senzori, motoare electrice, servo-uri, indicatoare, interfețe de transfer de date cu fir și fără fir. Fiecare capitol listează componentele utilizate, furnizează diagrame de cablare și descrie listele de programe în detaliu. Există link-uri către site-ul de asistență pentru informații ale cărții. Materialul este axat pe utilizarea componentelor simple și ieftine pentru experimente acasă.

Pornire rapidă. Primii pași pentru a stăpâni Arduino

Rezervați ARDUINO Pornire rapidă. Primii pași pentru stăpânirea ARDUINO conține toate informațiile pentru a vă familiariza cu placa Arduino, precum și 14 experimente practice folosind diverse componente și module electronice.

Pornire rapidă cu kit-ul Arduino. Cunoștințele dobândite vor face posibilă, în viitor, să vă creați propriile proiecte și să le implementați cu ușurință.

Arduino, senzori și rețele pentru comunicarea dispozitivelor (ed. a 2-a)

Sunt luate în considerare 33 de proiecte bazate pe placa de microcontroler Arduino, care arată cum să facă dispozitive electronice capabile să facă schimb de date între ele și să răspundă la comenzi. Afișează cum să schimbați setările aparatului de aer condiționat de acasă „apelându-l” de pe smartphone; cum să-ți creezi propriile controlere de joc care interacționează prin rețea; cum să utilizați dispozitivele ZigBee, Bluetooth, infraroșu și radio obișnuite pentru a primi fără fir informații de la diverși senzori etc. Se iau în considerare limbajele de programare Arduino, Processing și PHP.

După ce ați citit cartea - „Arduino, senzori și rețele pentru conectarea dispozitivelor”, veți învăța cum să creați rețele de dispozitive inteligente care schimbă date și răspund la comenzi. Cartea este ideală pentru cei care doresc să-și pună în practică ideile creative. Nu trebuie să ai cunoștințe sau abilități tehnice speciale în domeniul electronicii.Tot ce ai nevoie pentru a începe implementarea proiectelor este o carte, idei și un kit ieftin cu un controler Arduino și câteva module de rețea și senzori.

Arduino Essentials

Arduino este un microcontroler open source construit pe o singură placă de circuit care este capabil să primească input senzorial din mediul său și să controleze obiecte fizice interactive. Este, de asemenea, un mediu de dezvoltare care vă permite să scrieți software pe placă și este programat în limbajul de programare Arduino. Arduino a devenit cea mai populară platformă de microcontrolere și astfel sunt dezvoltate sute de proiecte folosindu-l, de la niveluri de bază până la niveluri avansate.

Această carte vă va prezenta mai întâi cele mai importante modele de plăci din familia Arduino. Veți învăța apoi să configurați mediul software Arduino. Apoi, veți lucra cu intrări și ieșiri digitale și analogice, veți gestiona timpul cu precizie, veți stabili comunicații seriale cu alte dispozitive din proiectele dvs. și chiar controlați întreruperile pentru a face proiectul mai receptiv. În cele din urmă, vi se va prezenta un exemplu complet din lumea reală, utilizând toate conceptele învățate până acum în carte. Acest lucru vă va permite să vă dezvoltați propriile proiecte de microcontroler.

Cartea de bucate pentru dezvoltare Arduino

Dacă doriți să construiți proiecte de programare și electronică care interacționează cu mediul înconjurător, această carte vă va oferi zeci de rețete care să vă ghideze prin toate aplicațiile majore ale platformei Arduino. Este destinat pasionaților de programare sau electronică care doresc să combine tot ce este mai bun din ambele lumi pentru a construi proiecte interactive.

Placa de computer cu un singur cip Arduino este de dimensiuni mici, dar are o gamă largă, putând fi utilizată pentru proiecte electronice, de la robotică până la automatizarea locuinței. Cea mai populară platformă încorporată din lume, utilizatorii Arduino variază de la școlari la experți din industrie, toți încorporând-o în design-urile lor.

Arduino Development Cookbook cuprinde rețete clare și pas cu pas care vă oferă setul de instrumente de tehnici pentru a construi orice proiect Arduino, de la simplu la cel avansat. Fiecare capitol vă oferă mai multe blocuri esențiale pentru dezvoltarea Arduino, de la învățarea despre programarea butoanelor până la operarea motoarelor, gestionarea senzorilor și controlul afișajelor. Pe tot parcursul, veți găsi sfaturi și trucuri care vă vor ajuta să vă depanați problemele de dezvoltare și să vă împingeți proiectul Arduino la nivelul următor!

Schițe Arduino: instrumente și tehnici pentru programarea vrăjitoriei

Master programare Arduino cu acest ghid hands-on Arduino Sketches este un ghid practic pentru programarea microcontrolerului din ce în ce mai popular care dă viață gadgeturilor. Accesibilă iubitorilor de tehnologie la orice nivel, această carte oferă instrucțiuni de specialitate despre programarea Arduino și practică practică pentru a vă testa abilitățile. Veți găsi acoperire a diferitelor plăci Arduino, explicații detaliate ale fiecărei biblioteci standard și îndrumări pentru crearea de biblioteci de la zero, plus exemple practice care demonstrează utilizarea de zi cu zi a abilităților pe care le învățați.

Lucrați la proiecte de programare din ce în ce mai avansate și obțineți mai mult control pe măsură ce învățați despre bibliotecile specifice hardware-ului și cum să vă creați propria dvs. Profitați din plin de API-ul Arduino și aflați sfaturile și trucurile care vă vor extinde setul de abilități. Placa de dezvoltare Arduino vine cu un procesor încorporat și mufe care vă permit să atașați rapid periferice fără unelte sau lipire. Este ușor de construit, ușor de programat și nu necesită hardware specializat. Pentru pasionat, este un vis devenit realitate, mai ales că popularitatea acestui proiect open-source inspiră chiar și marile companii de tehnologie să dezvolte produse compatibile.

Proiecte Arduino și LEGO

Știm cu toții cât de minunat este LEGO și tot mai mulți oameni descoperă câte lucruri uimitoare poți face cu Arduino. În Arduino și LEGO Projects, Jon Lazar vă arată cum să combinați două dintre cele mai tari lucruri de pe planetă pentru a crea gadgeturi distractive, cum ar fi un cititor RF Magic Lantern, o cutie muzicală LEGO activată cu senzori și chiar un set de tren LEGO controlat de Arduino.

* Aflați că SNOT este de fapt cool (înseamnă că Studs Not on Top)
* Vedeți explicații detaliate și imagini despre modul în care totul se potrivește
* Aflați cum se potrivește Arduino în fiecare proiect, inclusiv codul și explicațiile

Indiferent dacă vrei să-ți impresionezi prietenii, să enervezi pisica sau doar să te relaxezi și să te bucuri de minunatia creațiilor tale, Arduino și LEGO Projects îți arată exact ceea ce ai nevoie și cum să le asociezi pe toate.

Atelier Arduino

Arduino este o platformă de microcontrolere ieftină, flexibilă, cu sursă deschisă, concepută pentru a le ușura pasionaților să folosească electronicele în proiecte de casă. Cu o gamă aproape nelimitată de suplimente de intrare și ieșire, senzori, indicatoare, afișaje, motoare și multe altele, Arduino vă oferă nenumărate modalități de a crea dispozitive care interacționează cu lumea din jurul tău.

În Arduino Workshop, veți afla cum funcționează aceste suplimente și cum să le integrați în propriile proiecte. Veți începe cu o privire de ansamblu asupra sistemului Arduino, dar veți trece rapid la acoperirea diferitelor componente și concepte electronice. Proiectele practice de-a lungul cărții întăresc ceea ce ați învățat și vă arată cum să aplicați aceste cunoștințe. Pe măsură ce înțelegerea dvs. crește, proiectele cresc în complexitate și sofisticare.

Programare C pentru Arduino

Construirea propriilor dispozitive electronice este o distracție fascinantă, iar această carte vă ajută să intrați în lumea dispozitivelor autonome, dar conectate. După o introducere în placa Arduino, vei ajunge să înveți câteva abilități pentru a te surprinde.

Calculul fizic ne permite să construim sisteme fizice interactive utilizând software și hardware pentru a percepe și a răspunde la lumea reală. Programarea C pentru Arduino vă va arăta cum să valorificați capabilități puternice, cum ar fi detectarea, feedback-urile, programarea și chiar cablarea și dezvoltarea propriilor sisteme autonome.

Programarea C pentru Arduino conține tot ce aveți nevoie pentru a începe direct cablarea și codarea propriului proiect electronic. Veți învăța C și cum să codificați mai multe tipuri de firmware pentru Arduino dvs., apoi veți trece la proiectarea unor sisteme tipice mici pentru a înțelege cum se manipulează butoanele, LED-urile, LCD-urile, modulele de rețea și multe altele.

Arduino pentru vrăjitorii începători

Această carte este despre platforma Arduino, care devine din ce în ce mai populară în fiecare zi, iar o întreagă armată de experimentatori de acasă, designeri amatori și hackeri încep să o folosească pentru a da viață atât proiectelor minunate, cât și complet nebune. Cu ajutorul Arduino, orice umanist se poate familiariza cu elementele de bază ale electronicii și programării și poate începe rapid să-și dezvolte propriile modele fără a cheltui resurse materiale și intelectuale semnificative pentru el. Arduino combină jocul și învățarea, permițându-vă să creați ceva util și interesant din impuls, imaginație și curiozitate. Această platformă împuternicește persoana creativă în domeniul electronicii, chiar dacă nu știe nimic despre asta! Experimentează și distrează-te!

Programarea plăcilor de microcontroler Arduino/Freeduino

Se are în vedere programarea plăcilor de microcontroler Arduino/Freduino. Sunt descrise structura și funcționarea microcontrolerelor, mediul de programare Arduino, instrumentele și componentele necesare pentru efectuarea experimentelor. Bazele programării plăcilor Arduino sunt discutate în detaliu: structura programului, comenzile, operatorii și funcțiile, intrarea/ieșirea datelor analogice și digitale. Prezentarea materialului este însoțită de peste 80 de exemple privind dezvoltarea diferitelor dispozitive: un releu de temperatură, un ceas de școală, un voltmetru digital, o alarmă cu senzor de mișcare, un întrerupător de iluminat stradal etc. Pentru fiecare proiect, un sunt furnizate o listă de componente necesare, o diagramă de cablare și liste de programe. Serverul FTP al editorului conține coduri sursă pentru exemple din carte, descrieri tehnice, date de referință, mediu de dezvoltare, utilități și drivere.

Proiecte Arduino și Kinect

Dacă ați făcut câteva reparații Arduino și v-ați întrebat cum ați putea încorpora Kinect-ul sau invers, atunci această carte este pentru dvs. Autorii proiectelor Arduino și Kinect vă vor arăta cum să creați 10 proiecte uimitoare și creative, de la simplu la complex. Veți afla, de asemenea, cum să încorporați Procesare în proiectul dvs. - un limbaj foarte asemănător cu limbajul Arduino.

Cele zece proiecte sunt atent concepute pentru a vă consolida abilitățile la fiecare pas. Începând cu echivalentul Arduino și Kinect al „Hello, World”, autorii vă vor ghida printr-o gamă variată de proiecte care prezintă gama uriașă de posibilități care se deschid atunci când Kinect și Arduino sunt combinate.

Monitorizare atmosferică cu Arduino

Producătorii de pe tot globul construiesc dispozitive la preț redus pentru a monitoriza mediul înconjurător și, cu acest ghid practic, la fel puteți. Prin tutoriale succinte, ilustrații și instrucțiuni clare pas cu pas, veți învăța cum să creați gadgeturi pentru a examina calitatea atmosferei noastre, folosind Arduino și mai mulți senzori ieftini.

Detectează gazele dăunătoare, particulele de praf, cum ar fi fumul și smogul, și ceața atmosferică superioară - substanțe și condiții care sunt adesea invizibile pentru simțurile tale. De asemenea, vei descoperi cum să folosești metoda științifică pentru a te ajuta să înveți și mai multe din testele tale atmosferice.

* Fiți la curent cu Arduino cu un primer rapid pentru electronice
* Construiți un senzor de gaz troposferic pentru a detecta monoxid de carbon, GPL, butan, metan, benzen și multe alte gaze
* Creați un fotometru cu LED pentru a măsura cât de mult din undele de lumină albastră, verde și roșie ale soarelui pătrund în atmosferă
* Construiți un detector de sensibilitate LED și descoperiți la ce lungimi de undă de lumină este receptiv fiecare LED din fotometrul dvs.
* Aflați cum măsurarea lungimilor de undă luminii vă permite să determinați cantitatea de vapori de apă, ozon și alte substanțe din atmosferă

Ghid de stăpânire a Arduino

Publicația este o traducere în limba rusă a unuia dintre documentele despre lucrul cu kitul ARDX (Starter Kit for Arduino), destinat experimentelor cu Arduino. Documentația descrie 12 proiecte simple care vizează cunoașterea inițială cu modulul Arduino.

Scopul principal al acestui set este de a avea un timp interesant și util. Și pe lângă asta, stăpânește o varietate de componente electronice prin asamblarea dispozitivelor mici, simple și interesante. Primiți un dispozitiv de lucru și un instrument care vă permite să înțelegeți principiul de funcționare.

Marea Enciclopedie a Electricității

Cea mai completă carte de până acum, în care vei găsi o mulțime de informații utile, începând cu elementele de bază. Cartea dezvăluie toate problemele principale pe care le puteți întâmpina atunci când lucrați cu electricitate și echipamente electrice. Descrierea tipurilor de cabluri, fire și cordoane, instalarea și repararea cablajelor electrice și multe altele.

Cartea „The Great Electrical Encyclopedia” dezvăluie toate problemele principale pe care le puteți întâmpina atunci când lucrați cu electricitate și echipamente electrice. Descrierea tipurilor de cabluri, fire și cordoane, instalarea și repararea cablajelor electrice și multe altele. Această carte va fi o referință utilă atât pentru electricianul specialist, cât și pentru meșterul casnic.

Această carte va fi o referință utilă atât pentru electricianul specialist, cât și pentru meșterul casnic.

Notebook-ul programatorului Arduino

Acest notebook ar trebui să fie considerat un ghid convenabil și ușor de utilizat pentru structura de comandă și sintaxa limbajului de programare al controlerului Arduino. Pentru a menține simplitatea, s-au făcut câteva excepții, ceea ce îmbunătățește ghidul atunci când este utilizat de către începători ca sursă suplimentară de informații - împreună cu alte site-uri web, cărți, seminarii și cursuri. Această soluție este concepută pentru a sublinia utilizarea Arduino pentru sarcini de sine stătătoare și, de exemplu, exclude utilizarea mai complexă a matricelor sau utilizarea unei conexiuni seriale.

Începând cu o descriere a structurii unui program Arduino C, acest notebook descrie sintaxa celor mai comune elemente ale limbajului și ilustrează utilizarea lor în exemple și fragmente de cod. Notebook-ul conține exemple de funcții de bază ale bibliotecii Arduino, iar apendicele oferă exemple de circuite și programe inițiale.

Interfețe analogice pentru microcontroler

Această publicație este un ghid practic pentru utilizarea diferitelor interfețe pentru conectarea dispozitivelor periferice analogice la computere, microprocesoare și microcontrolere.

Sunt dezvăluite specificul utilizării interfețelor precum I2C, SPI/Microware, SMBus, RS-232/485/422, bucla de curent 4-20 mA etc.. Se oferă o privire de ansamblu asupra unui număr mare de senzori moderni: temperatură, optici , CCD, magnetice, extensometre, etc. etc. Controlere, ADC-uri și DAC-uri, elementele lor - UVH, ION, codecuri, codificatoare sunt descrise în detaliu.

Sunt luate în considerare actuatoarele - motoare, termostate - și problemele controlului lor ca parte a sistemelor de control automat de diferite tipuri (releu, proporțional și PID). Cartea este echipată cu ilustrații care reprezintă în mod clar caracteristicile hardware și software ale utilizării elementelor de tehnologie analogică și digitală. Va fi de interes nu numai pentru radioamatorii începători, ci și pentru specialiștii cu experiență de lucru cu echipamente analogice și digitale, precum și pentru studenții colegiilor tehnice și universităților.

Ghid de utilizare a comenzilor AT pentru modemurile GSM/GPRS

Acest manual oferă o descriere detaliată a setului complet de comenzi AT pentru lucrul cu modemurile Wavecom. Comenzi AT speciale sunt date pentru lucrul cu protocoale de stivă IP implementate în software-ul în modemurile Wavecom.

Cartea se adresează dezvoltatorilor care creează aplicații software și hardware bazate pe produsele Wavecom. Manualul este recomandat și pentru inginerii responsabili de operarea sistemelor în diverse scopuri care utilizează rețele GSM ca canal de transmisie a datelor. O carte de referință excelentă pentru studenții care folosesc subiectul transmisiei de date în rețelele GSM în cursurile sau lucrările de diplomă.

Povestește-ne despre noi

Mesaj

Dacă aveți experiență de lucru cu Arduino și aveți timp pentru creativitate, vă invităm pe toți să devină autori ai articolelor publicate pe portalul nostru. Acestea pot fi fie lecții, fie povești despre experimentele dvs. cu Arduino. Descrierea diverșilor senzori și module. Sfaturi și instrucțiuni pentru începători. Scrieți și postați articolele dvs. pe .