Programare Arduino Uno pentru începători. Programarea Arduino în C pur

10.09.2019 Photoshop 3D

După ce te-ai familiarizat cu elementele de bază ale Arduino, precum și după ce ai scris un program „Hello World!”. Este timpul să vă familiarizați cu un limbaj de programare.

Structura limbajului se bazează în primul rând pe C/C++, astfel încât cei care au programat anterior în acest limbaj nu vor avea dificultăți în a stăpâni programarea Arduino. Alții ar trebui să învețe informații de bază despre comenzile de control, tipurile de date și funcții.

O mare parte din informațiile conținute aici vor fi compatibile cu orice curs C/C++, ținând cont de diferențele dintre tipurile de date, precum și de câteva instrucțiuni specifice privind programarea portului I/O.

Bazele

Câteva lucruri formale, adică cele despre care toată lumea le știe, dar uneori uită...

În Arduino IDE, ca și în C/C++, trebuie să fii conștient de cazurile de caractere. Cuvintele cheie precum if, for sunt întotdeauna scrise cu litere mici. Fiecare instrucțiune se termină cu „;”. Punctul și virgulă îi spune compilatorului care parte să interpreteze ca instrucțiune.

Parantezele (..) sunt folosite pentru a desemna blocuri de program. Le folosim pentru a constrânge corpuri de funcții (vezi mai jos), bucle și instrucțiuni condiționale.

Este o bună practică să adăugați comentarii la conținutul programului, acest lucru face codul ușor de înțeles. Comentariile pe o singură linie încep cu // (bară oblică dublă). Comentariile pe mai multe linii încep cu /* si se termina cu */

Dacă vrem să includem orice bibliotecă în programul nostru, folosim comanda include. Iată exemple de conectare a bibliotecilor:

#include // bibliotecă standard #include "svoya_biblioteka.h" // bibliotecă în directorul proiectului

Funcții în Arduino

O funcție (subrutină) este o parte separată a unui program care efectuează anumite operații. Funcțiile sunt utilizate pentru a simplifica programul principal și pentru a îmbunătăți lizibilitatea codului. Este util să folosim funcții, deoarece le putem folosi cu ușurință în multe dintre proiectele noastre.

Un curs standard de programare conține informații despre funcții care vor fi prezentate în articolele următoare. În cazul Arduino, funcțiile vor fi discutate la început deoarece chiar și cel mai simplu program trebuie să aibă două funcții speciale. Acest lucru a fost deja menționat în articolele anterioare, dar aici vom sistematiza aceste informații.

Declarație de funcție

Diagrama de declarare a funcției arată astfel:

Tastați nume_funcție(parametru) ( // instrucțiuni pentru execuție (corpul funcției) return (/* return value*/); )

tip este numele oricărui tip de date disponibil într-un anumit limbaj de programare. Vom furniza o listă de tipuri disponibile la programarea Arduino într-un articol separat.

După execuție, funcția va returna valoarea tipului declarat. Dacă funcția nu acceptă nicio valoare returnată, atunci tipul de date va fi „void”.

nume_funcție permite identificarea acestuia în mod unic. Pentru a apela (a rula) o funcție, îi dăm un nume.

parametru— parametru de apel de funcție. Parametrii nu sunt necesari, dar sunt adesea utili. Dacă scriem o funcție care nu are argumente, lăsăm parantezele goale.

În paranteze „(…)” se află corpul real al funcției sau instrucțiunii pe care dorim să o executăm. Vom oferi o descriere a instrucțiunilor specifice într-un articol separat.

Toate funcțiile care returnează o valoare se termină cu o instrucțiune return urmată de valoarea returnată. Numai funcțiile declarate cu un pointer nul ("void") nu conțin o instrucțiune return. Trebuie să știți că instrucțiunea return termină funcția, indiferent de locație.

Mai jos sunt câteva exemple de declarații de funcție.

Void f1() ( //corpul funcției) —————————————— int minus() ( //corpul funcției returnare (0); ) ———————————— ——— int plus(int a, int b) ( return (a+b); )

După cum puteți vedea din exemple, o declarație de funcție poate lua mai multe forme, în funcție de nevoile dvs.

Vă încurajăm cu tărie să învățați și să utilizați funcțiile atunci când scrieți propriile programe. De-a lungul timpului, fiecare programator își dezvoltă propria bibliotecă de funcții „pentru toate ocaziile”, ceea ce face mai ușor și mai rapid scrierea de programe noi.

Acum că știm cum să scriem propria noastră funcție, trebuie să învățăm cum să o folosim.

Apelarea unei funcții

Scriem toate funcțiile într-un singur fișier/program. Există, desigur, o soluție mai elegantă, dar vom încerca să o descriem data viitoare.

Odată ce declarăm o funcție, o putem folosi în alte funcții cu numele corespunzător și orice parametri necesari. Mai jos sunt exemple de apelare a funcțiilor pe care le-am dat mai sus:

F1(); plus(2,2); y=plus(1,5);

După cum puteți vedea în exemple, un apel de funcție se face prin specificarea numelui și a numărului necesar de parametri. Este important să apelați întotdeauna o funcție așa cum este declarată.

Dacă funcția f1() este declarată fără parametri, atunci nu se poate specifica niciun parametri la apelarea acesteia, adică. apelarea f1(0) va fi incorectă.

Funcția plus(int a, int b) necesită exact doi parametri, deci nu este posibilă apelarea cu unul sau trei parametri.

Apelarea y=plus(1,5) va executa funcția „plus” cu parametrii „1” și „5” și va stoca valoarea returnată în variabila „y”.

funcțiile setup() și loop().

Cu cunoștințe despre declararea și apelarea funcției, putem trece la funcțiile sistemului Arduino: înființat()Şi buclă(). Arduino IDE este necesar pentru a declara aceste două funcții.

setup() este o funcție care este apelată automat atunci când alimentarea este pornită sau este apăsat butonul RESET.

După cum sugerează și numele, este folosit pentru a seta valorile inițiale ale variabilelor, declarațiile de intrări și ieșiri ale sistemului, care sunt de obicei specificate în parametrii inițiali. Datorită specificității sale, această funcție nu returnează o valoare și nu este apelată cu parametri. Declarația corectă a funcției setup() este mai jos:

Void setup () ( // corpul funcției - inițializarea sistemului)

loop() este o funcție care este apelată într-o buclă infinită. De asemenea, această funcție nu returnează o valoare și nu este apelată cu parametri. Declarația corectă a funcției loop() este prezentată mai jos:

Buclă goală () ( // corpul funcției - codul programului )

După cum puteți vedea, declarația funcției loop() este identică cu declarația funcției setup(). Diferența constă în performanța acestor funcții de către microcontroler.

Vom analiza acum următorul pseudocod:

Void setup () ( on_led1 (); //porniți led1 off_led1 (); //opriți led1) void loop () ( on_led2 (); //porniți led2 off_led2 (); //opriți led2)

Există două instrucțiuni în funcția setup(): prima aprinde led1 conectat la placă (de exemplu pin 13) și a doua stinge led1.

Funcția loop() are instrucțiuni identice pentru a porni și opri LED-ul2 conectat la placă (de exemplu, pinul 12).

Ca urmare a rulării programului, led1 va clipi o dată, în timp ce led2 se va aprinde și se va stinge atâta timp cât Arduino este pornit.

Apăsarea butonului RESET va face ca ledul 1 să clipească din nou și ledul 2 să clipească din nou continuu.

Să rezumăm:

  • Funcțiile setup() și loop() sunt funcții de sistem care trebuie definite în fiecare proiect. Chiar și în situația în care nu scriem niciun cod într-una dintre ele, trebuie totuși să declarăm aceste două funcții;
  • Funcția setup() este executată o dată, loop() este executată continuu;
  • Ne creăm propriile funcții într-un singur fișier;
  • Putem apela funcțiile noastre atât din setup() și loop(), cât și din alte funcții;
  • Funcțiile noastre proprii pot fi apelate cu parametri și returnează o valoare;
  • Un apel de funcție trebuie efectuat în conformitate cu declarația sa.

28 09.2016

Te-ai gândit vreodată să-ți faci viața mai ușoară acasă? Pentru a avea lucruri care ar rezolva sarcinile de zi cu zi, de rutină pentru tine. Un dispozitiv inteligent care ar îndeplini o funcție utilă, de exemplu, uda grădina, curăța o cameră sau transporta o încărcătură. Aceste probleme pot fi rezolvate. Dar doar cumpărarea lui nu va fi suficient. Orice controler logic industrial sau cip are nevoie de un „creier” pentru a efectua o anumită secvență de acțiuni. Pentru a efectua operații în cazul nostru, limbajul de programare Arduino este potrivit.

Din acest articol veți învăța:

Salutări, prieteni! Pentru cei care nu mă cunosc, numele meu este Gridin Semyon. Puteți citi despre mine. Articolul de astăzi va fi dedicat două programe principale, fără de care nu vom mai avea mișcare și înțelegere reciprocă.

Descrierea generală a limbajelor de programare

După cum am scris mai sus, vom lua în considerare două medii de dezvoltare populare. Prin analogie cu, poate fi împărțit într-un editor grafic și un „notepad inteligent”. Acestea sunt programele Arduino IDE și FLprog.

Baza mediului de dezvoltare este Procesarea/Wiring - acesta este C++ obișnuit, completat cu funcții și diferite biblioteci. Există mai multe versiuni pentru sistemele de operare Windows, Mac OS și Linux.

Care este diferenta lor fundamentala?? Arduino IDE este un mediu de dezvoltare care descrie codul programului. Și FLprog este similar cu CFC CoDeSyS, care vă permite să desenați diagrame. Care mediu este mai bun? Ambele sunt bune și convenabile în felul lor, dar dacă doriți să vă ocupați serios de controlere, cel mai bine este să învățați limbi similare SI. Principalul lor avantaj este flexibilitatea și natura nelimitată a algoritmului. Îmi place foarte mult IDE-ul Arduino.

Descrierea Arduino IDE

Distribuția poate fi descărcată de pe site-ul oficial. Descărcați arhiva, ocupă puțin mai mult de 100 MB. Instalarea este standard, ca toate aplicațiile pentru Windows. Driverele pentru toate tipurile de plăci trebuie instalate în pachet. Și așa arată fereastra de lucru a programului.

Mediul de dezvoltare Arduino constă din:

  • editor de coduri de program;
  • zone de mesaje;
  • ferestre de ieșire a textului;
  • bare de instrumente cu butoane pentru comenzile utilizate frecvent;
  • mai multe meniuri

Setări Arduino IDE

Se numește un program scris în mediul de dezvoltare Arduinoschiţa. Schița este scrisă într-un editor de text, care are evidențierea colorată a codului de program creat. Un exemplu de program simplu în imaginea de mai jos.

Funcționalități suplimentare pot fi adăugate folosindbiblioteci,reprezentând cod conceput într-un mod special. Practic, nu este accesibil dezvoltatorului. Mediul vine de obicei cu un set standard, care poate fi completat treptat. Sunt în subdirectorbiblioteci Directorul Arduino.

Multe biblioteci vin cu exemple situate în folderexemplu.Selectarea unei biblioteci din meniu va adăuga următoarea linie la codul sursă:

Arduino

#include

#include

Aceasta este o directivă - un fel de instrucțiune, un fișier antet care descrie obiecte, funcții și constante de bibliotecă. Multe funcții au fost deja dezvoltate pentru cele mai comune sarcini. Crede-mă, asta ușurează viața programatorului.

După ce am conectat placa electronică la computer. Facem urmatoarele setari - selectam placa Arduino si portul Com prin care ne vom conecta.

Arduino

void setup() ( // inițializați pinul digital 13 ca ieșire. pinMode(13, OUTPUT); ) void loop() ( digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000) );

void setup() (

// inițializați pinul digital 13 ca ieșire.

pinMode(13, IEȘIRE);

void loop() (

digitalWrite(13, HIGH);

întârziere (1000);

digitalWrite(13, LOW);

întârziere (1000);

Deci, apropo, este convenabil să verificați funcționalitatea plăcii care a venit din magazin. Rapid și ușor.

Mai este un lucru convenabil. Se numeșteMonitorul portului serial (Monitor serial). Afișează datele trimise către platformăArduino.De obicei mă uit la ce semnale îmi dau diferiții senzori conectați la placă.

Conectarea bibliotecilor

Există diferite moduri de a adăuga funcții personalizate. Puteți conecta biblioteci în trei moduri:

  1. Folosind Library Manager
  2. Utilizarea importului ca fișier .zip
  3. Instalare manuală.

1. Folosind Library Manager.În fereastra de lucru a programului, selectați fila Schiță. După aceea, faceți clic pe butonul Conectare bibliotecă. Directorul bibliotecii se va deschide în fața noastră. Fereastra va afișa fișierele deja instalate cu o semnăturăinstalatsi cele care pot fi instalate.

2. Utilizarea importului ca fișier .zip.Adesea, pe Internet puteți găsi fișiere de bibliotecă ambalate în arhive cu extensie zip. Conține un antet fișier.h și un cod fișier.cpp. Nu este nevoie să despachetați arhiva în timpul instalării. Doar accesați meniul Schiță - Conectați biblioteca - Adăugați o bibliotecă .ZIP

3. Instalare manuală.Mai întâi, închideți programul Arduino IDE. Mai întâi ne despachetăm arhiva. Și transferăm fișierele cu extensia .h și .cpp într-un folder cu același nume ca și arhiva. Plasați folderul în directorul rădăcină.

Documentele mele\Arduino\biblioteci

Descrierea FLPprog

FLprog este un proiect gratuit de la dezvoltatori independenți care vă permite să lucrați cu blocuri funcționale sau diagrame ladder. Acest mediu este convenabil pentru oameni - nu pentru programatori. Vă permite să vedeți vizual și clar algoritmul folosind diagrame și blocuri funcționale. Puteți descărca distribuția de la site-ul oficial.

Urmaresc proiectul de destul de mult timp. Băieții se dezvoltă, adăugând constant noi funcționalități și schimbându-le pe cele vechi. Văd promisiuni în acest mediu. Deoarece îndeplinește două funcții importante:simplitate și ușurință în utilizare.

Să încercăm să creăm un proiect simplu. Vom comuta ieșirea 13 la LED.

Să creăm un nou proiect. În fereastra de sus, adăugați numărul necesar de intrări și ieșiri, setați un nume și atribuiți o intrare sau o ieșire fizică plăcii.

Scoatem elementele de care avem nevoie din arborele de obiecte și elementele de care avem nevoie pe pânza de editare. În cazul nostru, putem folosi un simplu declanșator RS pentru a-l porni și opri.

După crearea algoritmului, faceți clic pe butonul de compilare, programul oferă o schiță gata făcută în IDE.

Am analizat capacitățile și comoditatea programelor pentru dezvoltarea algoritmilor pe controlerul din seria Arduino. Există și programe care vă permit să creați diagrame structurale și imagini vizuale. Dar recomand să folosești un editor de text pentru că îți va fi mai ușor mai târziu. Spune-mi, ce mediu este cel mai convenabil pentru tine și de ce??

Pe 22 septembrie, am participat la un seminar la Krasnodar „Controle cu panou tactil OVEN SPK.” Conferința a avut loc în elegantul și frumosul hotel Bristol. A fost foarte interesant și mișto.

În prima parte a seminarului, ni sa spus despre capabilitățile și avantajele produselor OWEN. Apoi a fost o pauză de cafea cu gogoși. Am luat o grămadă de lucruri, gogoși, prăjituri și bomboane, pentru că îmi era foarte foame =)

În partea a doua a seminarului, după prânz, am fost prezentați. Ne-au spus multe despre vizualizarea Web. Această tendință începe să capete amploare. Ei bine, desigur, controlați echipamentul prin orice browser de internet. Acest lucru este foarte cool. Apropo, echipamentul în sine este în valiză.

Voi publica o serie de articole despre CoDeSyS 3.5 în viitorul apropiat. Așadar, dacă cineva este interesat, abonează-te sau vine pur și simplu în vizită. voi fi mereu bucuros!!!

Apropo, aproape că am uitat, următorul articol va fi despre placa electronică Arduino. Va fi interesant, nu-l ratați.

Ne vedem în articolele următoare.

Salutări, Gridin Semyon.

Arduino este o placă mică care este folosită pentru a crea diverse dispozitive, gadget-uri interesante și chiar platforme de calcul. Această placă se numește microcontroler, care este open source și poate fi folosit cu multe aplicații.

Aceasta este cea mai simplă și mai ieftină opțiune pentru începători, amatori și profesioniști. Procesul de programare se desfășoară în limbajul Processing/Wiring, care se învață rapid și ușor și se bazează pe limbajul C++, iar datorită acestuia este foarte ușor de realizat. Să ne uităm la ce este Arduino, cum este util pentru începători, capacitățile și caracteristicile sale.

Arduino este o platformă sau o placă de calcul care va servi drept creier pentru noile dvs. dispozitive sau gadgeturi. Pe baza acestuia, puteți crea atât dispozitive cu circuite simple, cât și proiecte complexe, care necesită multă muncă, de exemplu, roboți sau drone.

Baza proiectantului este placa de intrare-ieșire (hardware), precum și partea de software. Software-ul de proiectare bazat pe Arduino este reprezentat de un mediu de dezvoltare integrat.

În exterior, mediul în sine arată astfel:

Software-ul Arduino este proiectat în așa fel încât chiar și un utilizator începător, fără cunoștințe de programare, se poate descurca. Un factor suplimentar de succes în utilizarea unui microcontroler a fost capacitatea de a lucra cu o placă de breadboard, atunci când piesele necesare (rezistoare, diode, tranzistoare etc.) sunt conectate la controler fără a fi nevoie de lipire.

Majoritatea plăcilor Arduino sunt conectate printr-un cablu USB. O astfel de conexiune vă permite să furnizați energie plăcii și să încărcați schițe, de exemplu. mini-programe. Procesul de programare este, de asemenea, extrem de simplu. În primul rând, utilizatorul folosește editorul de cod IDE pentru a crea programul necesar, apoi este încărcat cu un singur clic în Arduino.

Cum să cumpăr Arduino?

Placa și multe părți Arduino sunt fabricate Italia, prin urmare, componentele originale sunt destul de scumpe. Dar există componente separate ale designerului sau seturilor, așa-numitele truse, care sunt produse după analogia italiană, dar la prețuri mai accesibile.

Puteți cumpăra un analog de pe piața internă sau, de exemplu, îl puteți comanda din China. Mulți oameni știu despre site-ul AliExpress, de exemplu. Dar pentru cei care încep să se cunoască cu Arduino, este mai bine să-și comande prima placă de la un magazin online rus. În timp, puteți trece la cumpărarea de plăci de circuite și piese din China. Termenul de livrare din această țară va fi de la două săptămâni la o lună și, de exemplu, costul unui kit mare nu va mai fi 60-70 de dolari.

Seturile standard includ de obicei următoarele piese:

  • panou;
  • LED-uri;
  • rezistențe;
  • baterii 9V;
  • regulatoare de tensiune;
  • butoane;
  • săritori;
  • tastatură matriceală;
  • plăci de expansiune;
  • condensatoare.

Trebuie sa stii programare?

Primii pași în lucrul cu placa Arduino încep cu programarea plăcii. Un program care este deja gata să lucreze cu o placă se numește schiță. Nu este nevoie să vă faceți griji că nu cunoașteți programarea. Procesul de creare a programelor este destul de simplu și există o mulțime de exemple de schițe pe Internet, deoarece comunitatea Arduino este foarte mare.

După ce programul este compilat, acesta este încărcat (flash) pe placă. În acest caz, Arduino are un avantaj incontestabil - în majoritatea cazurilor se folosește un cablu USB pentru programare. Imediat după încărcare, programul este gata să execute diverse comenzi.

Începătorii cu Arduino trebuie să cunoască două funcții cheie:

  • înființat()– folosit o dată când placa este pornită, folosit pentru a inițializa setările;
  • buclă()– folosit în mod constant, este etapa finală de configurare.

Exemplu de notație a funcției înființat():

Void setup() ( Serial.begin(9600); // Deschide o conexiune serială pinMode(9, INPUT); // Atribui pin 9 ca intrare pinMode (13, OUTPUT); // Atribui pin 13 ca ieșire )

Funcţie înființat() se efectuează chiar de la început și numai 1 dată imediat după pornirea sau repornirea dispozitivului.

Funcţie buclă() executat după funcția setup(). Bucla este tradusă ca buclă sau ciclu. Funcția va fi executată din nou și din nou. Așadar, microcontrolerul ATmega328 (majoritatea plăcilor Arduino conțin acest lucru) va îndeplini funcția de buclă de aproximativ 10.000 de ori pe secundă.

Veți întâlni și caracteristici suplimentare:

  • pinMode– modul de intrare și ieșire a informațiilor;
  • analogRead– vă permite să citiți tensiunea analogică emergentă la pin;
  • analogWrite– înregistrarea tensiunii analogice la pinul de ieșire;
  • digitalRead– vă permite să citiți valoarea unei ieșiri digitale;
  • digitalWrite– vă permite să setați valoarea ieșirii digitale la un nivel scăzut sau ridicat;
  • Serial.print– traduce datele proiectului în text ușor de citit.

În plus, începătorilor Arduino le va plăcea faptul că există multe biblioteci pentru plăci, care sunt colecții de funcții care vă permit să controlați placa sau modulele suplimentare. Cele mai populare includ:

  • citirea și scrierea în depozit,
  • conexiune la internet,
  • citind carduri SD,
  • control motor pas cu pas,
  • redarea textului
  • etc.

Cum se configurează Arduino?

Unul dintre principalele avantaje ale designerului este siguranța acestuia în ceea ce privește setările utilizatorului. Setările cheie care sunt potențial dăunătoare pentru Arduino sunt protejate și nu vor fi accesibile.

Prin urmare, chiar și un programator fără experiență poate experimenta și schimba în siguranță diverse opțiuni pentru a obține rezultatul dorit. Dar pentru orice eventualitate, vă recomandăm să citiți trei materiale importante despre cum să nu deteriorați placa:

Algoritmul clasic de configurare a programului Arduino arată astfel:

  • Instalare IDE, care poate fi descărcată mai jos sau de pe site-ul producătorului;
  • instalarea software-ului pe computerul pe care îl utilizați;
  • lansați fișierul Arduino;
  • introducerea programului dezvoltat în fereastra de cod și transferarea acestuia pe placă (folosind un cablu USB);
  • în secțiunea IDE trebuie să selectați tipul de constructor care va fi utilizat. Acest lucru se poate face în fereastra „instrumente” - „plăci”;
  • verificați codul și faceți clic pe „Următorul”, după care va începe descărcarea în Arduino.
Versiune Windows MacOS Linux
1.6.5 Zip
Instalator
Instalator 32 de biți
64 de biți
1.8.2 Zip
Instalator
Instalator 32 de biți
64 de biți
BRAŢ
1.8.5 Zip
Instalator
App
Instalator 32 de biți
64 de biți
BRAŢ

Să ne antrenăm mâna

Pentru a implementa cu încredere idei complexe, utilizați mediul software și Arduino, începătorii trebuie să pună mâna pe el. Pentru a face acest lucru, se recomandă să stăpâniți mai întâi sarcinile și proiectele mai ușoare.

Cel mai simplu proiect pe care îl puteți face este să faceți ca LED-ul, care este situat pe placa Arduino vizavi de port, să clipească în fiecare secundă.

Pentru a face acest lucru aveți nevoie de:

  • conectați designerul la computer,
  • deschideți programul, în secțiunea „serviciu” căutăm blocul „port serial”.
  • selectați intervalul dorit
  • după care trebuie să adăugați codul care se află în Arduino IDE în secțiunea „Exemple”.

Primele proiecte în Arduino pentru începători pot fi:

  • LED intermitent;
  • conectarea și controlul unui senzor de temperatură;
  • conectarea și controlul unui senzor de mișcare;
  • conectarea unui fotorezistor;
  • control servo drive.

Primul proiect

Acum am ajuns la primul nostru proiect. Să conectăm Arduino, LED-ul și butonul. Acest proiect este perfect pentru începători.

Schema noastră va fi astfel:

LED-ul se va aprinde după apăsarea butonului și se va stinge după următoarea apăsare. Schița sau programul pentru Arduino în sine va fi astfel:

// pinii dispozitivelor conectate int switchPin = 8; int ledPin = 11; // variabile pentru a stoca starea butonului și LED-ul boolean lastButton = LOW; curent booleanButton = LOW; boolean ledOn = fals; void setup() ( pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); ) // funcție pentru debouncing boolean debounse(boolean last) ( boolean current = digitalRead(switchPin); if (last != current) ( întârziere ( 5); curent = digitalRead (switchPin ) return current ) void loop() ( currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) ( ledOn = !ledOn; ) lastButton = currentButton ; (ledPin, ledOn);

Poate ați observat funcția de debounse, despre care nu am scris încă. Este necesar pt.

După ce ați stăpânit abilitățile inițiale de lucru cu o placă, puteți începe să implementați sarcini mai complexe și mai multe fațete. Designerul vă permite să creați o mașină RC, un elicopter controlabil, să vă creați propriul telefon, să creați un sistem etc.

Pentru a accelera dezvoltarea lucrului cu placa Arduino, vă recomandăm să începeți să faceți dispozitive din secțiunea noastră, unde procesele de creare a celor mai interesante dispozitive și gadget-uri sunt descrise pas cu pas.

" prezintă cursul de formare „Arduino pentru începători”. Seria constă din 10 lecții, precum și material suplimentar. Lecțiile includ instrucțiuni text, fotografii și videoclipuri cu instrucțiuni. În fiecare lecție veți găsi o listă de componente necesare, o listă de programe și o diagramă de conectare. Odată ce ați finalizat aceste 10 lecții de bază, veți putea trece la modele mai interesante și la construirea de roboți bazați pe Arduino. Cursul se adresează începătorilor; nu sunt necesare informații suplimentare din inginerie electrică sau robotică pentru a-l începe.

Scurte informații despre Arduino

Ce este Arduino?

Arduino (Arduino) este o platformă hardware de calcul, ale cărei componente principale sunt o placă de intrare-ieșire și un mediu de dezvoltare. Arduino poate fi folosit pentru a crea obiecte interactive de sine stătătoare sau pentru a se conecta la software care rulează pe un computer. Arduino este un computer cu o singură placă.

Cum sunt conectați Arduino și roboții?

Răspunsul este foarte simplu - Arduino este adesea folosit ca creierul robotului.

Avantajul plăcilor Arduino față de platforme similare este prețul lor relativ scăzut și distribuția aproape pe scară largă în rândul amatorilor și profesioniștilor din robotică și inginerie electrică. Odată ce intrați în Arduino, veți găsi asistență în orice limbă și oameni care vă vor răspunde la întrebări și vor discuta despre evoluțiile dvs.

Lecția 1. LED intermitent pe Arduino

În prima lecție veți învăța cum să conectați un LED la un Arduino și să îl controlați să clipească. Acesta este cel mai simplu și de bază model.

LED- un dispozitiv semiconductor care creează radiații optice atunci când un curent electric este trecut prin el în direcția înainte.

Lecția 2. Conectarea unui buton pe Arduino

În acest tutorial veți învăța cum să conectați un buton și un LED la un Arduino.

Când butonul este apăsat, LED-ul se va aprinde când butonul este apăsat, nu se va aprinde. Acesta este și modelul de bază.

Lecția 3. Conectarea unui potențiometru la Arduino

În acest tutorial veți învăța cum să conectați un potențiometru la Arduino.

Potențiometru- Asta rezistență cu rezistență reglabilă.Potențiometrele sunt folosite ca regulatori ai diferiților parametri - volumul sunetului, puterea, tensiunea etc.Aceasta este, de asemenea, una dintre schemele de bază. În modelul nostru de la rotirea butonului potențiometruluiLuminozitatea LED-ului va depinde.

Lecția 4. Controlul servo pe Arduino

În acest tutorial veți învăța cum să conectați un servo la un Arduino.

Servoeste un motor a cărui poziție a arborelui poate fi controlată prin setarea unghiului de rotație.

Servo-urile sunt folosite pentru a simula diverse mișcări mecanice ale roboților.

Lecția 5. LED-uri în trei culori pe Arduino

În acest tutorial veți învăța cum să conectați un LED tricolor la un Arduino.

LED tricolor(led rgb) - acestea sunt trei LED-uri de culori diferite într-o singură carcasă. Acestea vin fie cu o placă mică de circuit imprimat pe care sunt amplasate rezistențele, fie fără rezistențe încorporate. Lecția acoperă ambele opțiuni.

Lecția 6. Element piezo pe Arduino

În această lecție veți învăța cum să conectați un element piezo la un Arduino.

Element piezo- un convertor electromecanic care se traduce tensiune electrică în vibrația membranei. Aceste vibrații creează sunet.

În modelul nostru, frecvența sunetului poate fi reglată prin setarea parametrilor corespunzători în program.

Lecția 7. Fotorezistor pe Arduino

În această lecție a cursului nostru veți învăța cum să conectați un fotorezistor la Arduino.

Fotorezistor- un rezistor a cărui rezistență depinde de luminozitatea luminii care cade pe el.

În modelul nostru, LED-ul se aprinde numai dacă luminozitatea luminii de deasupra fotorezistorului este mai mică decât o anumită luminozitate poate fi reglată în program.

Lecția 8. Senzor de mișcare (PIR) pe Arduino. Trimiterea automată de e-mail

În această lecție a cursului nostru veți învăța cum să conectați un senzor de mișcare (PIR) la Arduino, precum și să organizați trimiterea automată de e-mail.

Senzor de mișcare (PIR)- senzor infrarosu pentru a detecta miscarea sau prezenta oamenilor sau animalelor.

În modelul nostru, atunci când primește un semnal despre mișcarea omului de la un senzor PIR, Arduino trimite o comandă către computer pentru a trimite un e-mail și scrisoarea este trimisă automat.

Lecția 9. Conectarea unui senzor de temperatură și umiditate DHT11 sau DHT22

În această lecție a noastră, veți învăța cum să conectați un senzor de temperatură și umiditate DHT11 sau DHT22 la un Arduino și, de asemenea, vă veți familiariza cu diferențele dintre caracteristicile acestora.

Senzor de temperatura si umiditate este un senzor digital compozit format dintr-un senzor capacitiv de umiditate și un termistor pentru măsurarea temperaturii.

În modelul nostru, Arduino citește citirile senzorului și afișează citirile pe ecranul computerului.

Lecția 10. Conectarea unei tastaturi matrice

În această lecție a cursului nostru, veți învăța cum să conectați o tastatură matriceală la o placă Arduino și, de asemenea, să vă familiarizați cu diverse circuite interesante.

Tastatura Matrix inventat pentru a simplifica conectarea unui număr mare de butoane. Astfel de dispozitive se găsesc peste tot - în tastaturile computerelor, calculatoare și așa mai departe.

Lecția 11. Conectarea modulului de ceas în timp real DS3231

În ultima lecție a cursului nostru, veți învăța cum să conectați un modul de ceas în timp real din familie
DS la placa Arduino și, de asemenea, familiarizați-vă cu diverse circuite interesante.

Modul de ceas în timp real- acesta este un circuit electronic destinat înregistrării datelor cronometrice (ora curentă, data, ziua săptămânii etc.), și este un sistem format dintr-o sursă autonomă de alimentare și un dispozitiv de înregistrare.

Aplicație. Cadre gata făcute și roboți Arduino


Puteți începe să învățați Arduino nu numai de pe placa în sine, ci și prin achiziționarea unui robot gata făcut, cu drepturi depline, bazat pe această placă - un robot păianjen, o mașină robot, un robot țestoasă etc. Astfel de mod Este potrivit și pentru cei care nu sunt deosebit de atrași de circuitele electrice.

Prin achiziționarea unui model de robot funcțional, de ex. de fapt, o jucărie high-tech gata făcută poate trezi interesul pentru design independent și robotică. Deschiderea platformei Arduino vă permite să faceți jucării noi din aceleași componente.

O altă opțiune este să achiziționați un cadru sau un corp de robot: o platformă pe roți sau o pistă, un umanoid, un păianjen etc. În acest caz, va trebui să faceți singur umplutura robotului.

Aplicație. Directorul mobil


– un asistent pentru dezvoltatorii de algoritmi pentru platforma Arduino, al cărui scop este acela de a oferi utilizatorului final posibilitatea de a avea un set mobil de comenzi (carte de referință).

Aplicația constă din 3 secțiuni principale:

  • Operatori;
  • Date;
  • Funcții.

De unde să cumpărați Arduino


truse Arduino

Cursul va fi actualizat cu lecții suplimentare. Urmați-ne

În viața unui dezvoltator Arduino, mai devreme sau mai târziu vine un moment în care mediul de dezvoltare standard devine aglomerat. Dacă schițele nu mai au suficientă memorie, aveți nevoie de timp real și lucrați cu întreruperi, sau doriți doar să fiți mai aproape de hardware, atunci este timpul să treceți la C. Inginerii electronici cu experiență se vor încruntă disprețuitor la mențiunea Arduino și vor trimite începătorul la un magazin de radio pentru un fier de lipit. Poate că acesta nu este cel mai rău sfat, dar nu îl vom urma încă. Dacă aruncăm IDE-ul Arduino și limbajul de cablare/procesare, rămânem cu o placă de depanare excelentă, echipată deja cu tot ce este necesar pentru funcționarea microcontrolerului. Și, important, un bootloader este deja încorporat în memoria controlerului, permițându-vă să încărcați firmware-ul fără a utiliza un programator.

Pentru a programa în C, avem nevoie de AVR GCC Toolchain.

Vom avea nevoie și de Arduino IDE instalat, deoarece... conține utilitarul avrdude, care este necesar pentru a descărca firmware-ul pe controler. CrossPack conține și avrdude, dar versiunea care vine cu el nu funcționează cu Arduino.

După ce totul este instalat, să creăm primul nostru proiect. Pentru început, să scriem Makefile. Ne va permite să evităm introducerea manuală a comenzilor lungi de fiecare dată când compilam și încărcăm firmware-ul.

#Controller instalat pe placă. Poate fi diferit, de exemplu atmega328 DEVICE = atmega168 #Clock frequency 16 MHz CLOCK = 16000000 #Avrdude launch command. Trebuie copiat din IDE-ul Arduino. AVRDUDE = /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf -carduino -P/dev/tty.usbserial-A600dAAQ -b19200 -D -p atmega168 OBIECTE = main.o COMPILE = avr-gcc -Wall -Os -DF_CPU=$(CLOCK) -mmcu=$(DEVICE) all: main .hex .c.o: $(COMPILE) -c $< -o $@ .S.o: $(COMPILE) -x assembler-with-cpp -c $< -o $@ .c.s: $(COMPILE) -S $< -o $@ flash: all $(AVRDUDE) -U flash:w:main.hex:i clean: rm -f main.hex main.elf $(OBJECTS) main.elf: $(OBJECTS) $(COMPILE) -o main.elf $(OBJECTS) main.hex: main.elf rm -f main.hex avr-objcopy -j .text -j .data -O ihex main.elf main.hex avr-size --format=avr --mcu=$(DEVICE) main.elf

În acest fișier trebuie să introducem comanda noastră pentru a lansa avrdude. Va arăta diferit pe sisteme diferite. Pentru a afla opțiunea dvs., lansați IDE-ul Arduino și bifați caseta „Afișați ieșirea verbosă în timpul încărcării” din setări.

Acum încărcăm orice schiță în Arduino și ne uităm la mesajele afișate în partea de jos a ferestrei. Găsim apelul avrdude acolo, copiem totul, cu excepția parametrului -Uflash și îl lipim în Makefile după „AVRDUDE =”.


O notă rapidă: toată indentarea din Makefile se face cu caractere tabulatoare (tasta Tab). Dacă editorul dvs. de text înlocuiește aceste caractere cu spații, comanda make va refuza construirea proiectului.

Acum să creăm un fișier principal.c- textul propriu-zis al programului nostru, în care în mod tradițional clipim LED-ul.

#include #include #define LED_PIN 5 int main() ( DDRB |= 1<< LED_PIN; while(1) { PORTB |= 1 << LED_PIN; _delay_ms(1000); PORTB &= ~(1 << LED_PIN); _delay_ms(1000); } return 0; }

Proiectul nostru este gata. Să deschidem consola în directorul nostru de proiect și să introducem comanda „make”:


După cum puteți vedea, dimensiunea firmware-ului rezultat este de numai 180 de octeți. O schiță similară Arduino ocupă 1116 octeți în memoria controlerului.

Acum să ne întoarcem la consolă și să introducem „make flash” pentru a încărca fișierul compilat în controler:


Dacă descărcarea a fost finalizată fără erori, LED-ul conectat la pinul 13 al plăcii va clipi fericit. Uneori, avrdude nu poate găsi placa sau cade din cauza unui timeout - în acest caz, răsucirea cablului USB poate ajuta. De asemenea, pentru a evita conflictele de acces la placă, nu uitați să închideți IDE-ul Arduino înainte de comanda „make flash”.

Poate că multe dintre lucrurile descrise în acest articol vor părea evidente pentru dezvoltatorii experimentați. Am încercat să descriu procesul într-un limbaj cât mai ușor de înțeles pentru un utilizator Arduino începător și să adun într-un singur loc informațiile pe care le-am putut obține din diverse surse și le-am verificat empiric. Poate că acest articol va economisi cuiva câteva ore de timp.

Succes în stăpânirea microcontrolerelor!