categorii: Articole prezentate » Electronică practică
Numar de vizualizari: 67360
Comentarii la articol: 7

Conectarea și programarea Arduino pentru începători

 

Studiul microcontrolerelor pare complicat și de neînțeles? Înainte de apariția lui Arudino, nu era cu adevărat ușor și era nevoie de un anumit set de programatori și alte echipamente.


Ce este un Arduino?

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

Asamblarea celor mai complicate circuite și conectarea plăcilor se pot efectua fără fier de lipit, și cu ajutorul saltelor cu conexiuni detașabile „tată” și „mamă”. În acest fel, atât fișierele atașate, cât și cardurile de expansiune pot fi conectate, care în lexiconul arduinistilor sunt numite pur și simplu „Scuturi”.

Ce este Arduino?

Care este primul consiliu Arduino care a cumpărat pentru un începător?

Este considerat baza de bază și cel mai popular Arduino uno. Această taxă seamănă cu un card de credit. Destul de mare. Majoritatea scuturilor care sunt la vânzare sunt perfecte pentru ea. Pe placă există prize pentru conectarea dispozitivelor externe.

Arduino uno

În magazinele interne pentru 2017, prețul său este de aproximativ 4-5 dolari. La modelele moderne, Atmega328 este inima ei.

Arduino uno

Imaginea plăcii Arduino și decodarea funcției fiecărui pin, Arduino UNO pinout

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

Următorul consiliu cel mai popular costă de aproape două ori mai ieftin decât precedentul - 2-3 dolari. Acesta este tabloul Arduino nano. Plăcile reale sunt construite de același Atmega328, sunt similare funcțional cu UNO, există diferențe de dimensiuni și o soluție de potrivire cu USB, mai multe despre acest lucru mai târziu. O altă diferență este că un dop, sub formă de ace, este prevăzut pentru conectarea dispozitivelor la placa de circuit.

Arduino nano

Numărul de pini (picioare) ale acestei plăci este același, dar puteți observa că microcontrolerul este realizat într-un pachet TQFP32 mai compact, ADC6 și ADC7 sunt adăugate în carcasă, celelalte două picioare „în plus” dublează magistrala de alimentare. Dimensiunile sale sunt destul de compacte - cam de dimensiunea degetului mare al mâinii tale.

Aruino nano pinout 

Al treilea consiliu cel mai popular este Arduino Pro Mini, nu are un port USB pentru conectarea la un computer, vă voi spune cum să comunicați puțin mai târziu.

Arduino Nano vs Pro Mini Dimensiune Comparatie

Arduino Nano vs Pro Mini Dimensiune Comparatie

Acesta este cel mai mic tablou dintre toate considerate, în caz contrar, este similar cu cele două anterioare, iar Atmega328 este încă inima sa. Nu vom lua în considerare alte planșe, deoarece acesta este un articol pentru începători, iar compararea plăcilor este subiectul unui articol separat.

Pinza Arduino Pro Mini, în partea superioară, diagrama de conexiune USB-UART, pinul „GRN” - este conectată la circuitul de resetare al microcontrolerului, acesta poate fi apelat diferit, pentru care trebuie să aflați mai târziu.

rezultate:

Dacă UNO este convenabil pentru prototipare, atunci Nano și Pro Mini sunt convenabile pentru versiunile finale ale proiectului dvs., deoarece ocupă puțin spațiu.

Arduino pentru începători

Cum să conectați Arduino la un computer?

Arduino Uno și Nano se conectează la un computer prin USB. În același timp, nu există suport hardware pentru portul USB, aici se folosește o soluție de circuit de conversie de nivel, de obicei numită USB-to-Serial sau USB-UART (rs-232). În același timp, un încărcător Arduino special este aprins în microcontroler, care permite intermiterea pe aceste autobuze.

În Arduino Uno, această ligatură este implementată pe un microcontroler cu suport USB - ATmega16U2 (AT16U2). Se dovedește că microcontrolerul suplimentar de pe placă este necesar pentru intermiterea microcontrolerului principal.

În Arduino Nano, acest lucru este implementat de cipul FT232R sau de analogul său CH340. Acesta nu este un microcontroller - este un convertor de nivel, acest fapt face ușor să asamblați Arduino Nano de la zero cu propriile mâini.

De obicei, driverele sunt instalate automat atunci când placa Arduino este conectată. Cu toate acestea, când am cumpărat o copie chineză a lui Arduino Nano, dispozitivul a fost recunoscut, dar nu a funcționat, un sticker rotund cu date despre data lansării a fost lipit pe convertor, nu știu dacă a fost făcut în mod intenționat, dar după ce l-am decojit am văzut marcajul CH340.

Înainte de asta, nu mai întâlnisem acest lucru și credeam că toate convertizoarele USB-UART erau asamblate pe FT232, trebuia să descarc drivere, ele sunt foarte ușor de găsit la cererea „șoferului Arduino ch340”. După o simplă instalare - a funcționat!

Prin același port USB, microcontrolerul poate fi alimentat, adică. dacă îl conectați la adaptor de la un telefon mobil, sistemul dvs. va funcționa.


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

Arduino Pro Mini este mai mic. Acest lucru a fost obținut prin eliminarea conectorului USB pentru firmware și același convertor USB-UART. Prin urmare, trebuie achiziționat separat. Cel mai simplu convertor de pe CH340 (cel mai ieftin), CPL2102 și FT232R, pentru vânzare costă de la 1 USD.

Când cumpărați, acordați atenție la ce tensiune este proiectat acest adaptor. Pro mini este disponibil în versiunile 3.3 și 5 V, un jumper este adesea localizat pe convertizoare pentru a comuta tensiunea de alimentare.

Arduino Pro Mini

Când se aprinde intermitentul Pro Mini, chiar înainte de începerea acestuia, trebuie să faceți clic pe RESET, totuși, în convertizoarele cu DTR nu trebuie să faceți acest lucru, diagrama de conexiune din figura de mai jos.

Schema de conectare pentru firmware

Acestora li se alătură terminalele speciale „Mama-Mama” (femeie-femeie).

Conexiune Arduino

De fapt, toate conexiunile pot fi realizate folosind astfel de terminale (Dupont), sunt ambele pe două părți cu prize, și cu mufe, și pe o parte a soclului, și pe cealaltă mufă.

dop

Cum se scrie programe pentru Arduino?

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

Program pentru Arduino

Așa arată interfața programului. Puteți scrie programe într-un limbaj simplificat C AVR dezvoltat special pentru arduino, de fapt este un set de biblioteci numit Cabluri, precum și în pur AV C. Folosirea acestuia facilitează codul și accelerează activitatea acestuia.

În partea de sus a ferestrei există un meniu familiar, unde puteți deschide fișierul, setările, selectați placa cu care lucrați (Uno, Nano și mulți, mulți alții) și puteți deschide, de asemenea, proiecte cu exemple de cod pregătite. Mai jos este un set de butoane pentru lucrul cu firmware-ul, tastele pe care le veți vedea în figura de mai jos.

Interfață de program

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


Bazele programării IDE Arduino

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

#include biblioteka.h; // conectați biblioteca cu numele „Biblioteka.h”

#define peremennaya 1234; // Declarați o variabilă cu o valoare de 1234

Comanda Definire permite compilatorului să aleagă tipul de variabilă, dar o puteți seta manual, de exemplu, un int întreg, sau un float cu punct flotant.

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 piciorul său fizic va egala tensiunea de alimentare a microcontrolerului (pentru arduino UNO și Nano - 5 V)

Semnalul digital este înregistrat folosind comanda digitalWrite (pin, valoare), de exemplu:

digitalWrite (led, mare); // scrieți unitatea în pinul 13 (am anunțat-o mai sus) jurnal. Unitate.

După cum puteți înțelege, accesul la porturi se face prin numerotarea pe bord, cifra corespunzătoare. Iată un exemplu similar codului anterior:

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

Adesea, funcția de căutare întârziere este apelată de comanda delay (), a cărei valoare este setată în milisecunde, microsecundele se obțin folosind

delayMicroseconds () Întârziere (1000); // microcontrolerul va aștepta 1000 ms (1 secundă)

Setările portului pentru intrare și ieșire sunt setate în funcția void setup {}, cu comanda:

void setup () {

pinMode (NOMERPORTA, OUTPUT / INPUT); // argumente - nume variabil sau număr de port, intrare sau ieșire din care să alegeți

}

Bucla vid {}


Înțelegerea primului program Blink

Ca un fel de „Bună ziua, lume” pentru microcontrolere, există un program LED care luminează intermitent, să analizăm codul acestuia:

La început, cu comanda pinMode, am spus microcontrolerului să atribuie un port cu LED la ieșire.Ați observat deja că codul nu declară variabila „LED_BUILTIN”, fapt este că în Uno, Nano și alte placi din fabrică, LED-ul încorporat este conectat la pinul 13 și este vândut plăcii. Poate fi folosit de tine pentru indicarea în proiectele tale sau pentru cea mai simplă verificare a programelor intermitente.

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

Funcționează totul și totul este clar? Atunci mergeți mai departe!



Citim valoarea din portul analog și folosim datele citite

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

Pentru a clarifica, luați în considerare situația, să presupunem că valoarea tensiunii la intrarea analogică este 2,5 V, atunci microcontrolerul va citi valoarea din pinul "512" dacă tensiunea este 0 - "0" și dacă 5 V - (1023). 1023 - pentru că numărul este de la 0, adică. 0, 1, 2, 3 etc. până la 1023 - un total de 1024 valori.

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

int senzorPin = A0;

int ledPin = 13;

int sensorValue = 0;

void setup () {

pinMode (ledPin, OUTPUT);

}

void loop () {

sensorValue = analogRead (sensorPin);

digitalWrite (ledPin, HIGH);

întârziere (senzorValue);

digitalWrite (ledPin, LOW);

întârziere (senzorValue);

}

Schema de conectare a potențiometrului la Arduino, prin analogie, la ieșirea centrală pe care o puteți conecta la orice intrare analogică

Schema de conectare a potențiometrului la Arduino, prin analogie, la ieșirea centrală pe care o puteți conecta la orice intrare analogică.

Declarați variabilele:

  • Ledpin - alocați în mod independent un pin cu un LED încorporat la ieșire și dați un nume individual;

  • sensorPin - intrare analogică, setată corespunzător marcajului de pe placă: A0, A1, A2, etc;

  • sensorValue - o variabilă pentru stocarea unei valori de citire întregi și lucrul suplimentar cu aceasta.

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

Scriem unitatea în ledPin, ledul se aprinde și așteptăm un timp egal cu valoarea senzoruluiValue, adică. de la 0 la 1023 milisecunde. Opriți ledul și așteptați din nou această perioadă de timp, după care se repetă codul.

Astfel, prin poziția potențiometrului, am setat frecvența de intermitere a LED-ului.


Funcția hărții pentru Arudino

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

Acum despre sintaxa: hartă (valoarea pe care o traducem este 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 ale hărții valorice:

  • 0=0;

  • 1023=180;

În practică, aplicăm acest lucru la lucrările aceluiași cod servo, aruncăm o privire la codul cu Arduino IDE, dacă citiți cu atenție secțiunile anterioare, atunci nu necesită explicații.

Și diagrama de conexiune.

Schema de cablare

Concluzii Arduino este un instrument foarte convenabil pentru învățarea modului de lucru cu microcontrolere. Și dacă utilizați AVR pur C, sau cum este numit uneori „Pure C”, veți reduce semnificativ greutatea codului și veți încadra mai mult în memoria microcontrolerului, ca rezultat, veți obține o placă de debugging excelentă fabricată cu firmware USB.

Arduino pentru începători

Opinia autorului:

Îmi place arduino. Păcat că mulți programatori cu microcontrolere experimentate o critică în mod nejustificat, că este prea simplificat. În principiu, doar limba este simplificată, dar nimeni nu te obligă să o folosești, în plus poți bloca microcontrolerul prin conectorul ICSP și să completezi codul dorit fără niciun încărcător de care nu ai nevoie.

Pentru cei care doresc să se joace cu electronica, ca un constructor avansat, este perfect, dar pentru programatorii cu experiență, va fi utilă și o placă care nu necesită montaj!

Pentru mai multe informații despre Arduino și caracteristicile utilizării sale în diferite scheme, consultați cartea electronică -Arduino pentru manechine. Ghid practic ilustrat.

Consultați și la i.electricianexp.com:

  • Metode de citire și gestionare a porturilor I / O Arduino
  • Ce bord Arduino să aleagă
  • Tipuri și aranjament de microcontrolere AVR
  • Telecomandă cu microcontroler: Telecomandă IR, Arduino, ESP8266, 433 ...
  • Conectarea senzorilor analogici la Arduino, citirea senzorilor

  •  
     
    Comentarii:

    # 1 a scris: ELECTROMAG | [Cite]

     
     

    Ce literatură privind studierea codului de programare recomandați?

     
    Comentarii:

    # 2 a scris: Andrew | [Cite]

     
     

    ELECTROMAGUlli Sommer. Arduino / Freeduino Microcontroller Board Programming, de Jeremy Bloom. Studiem Arduino. Instrumente și tehnici pentru tehnica magie, John Boxell. Studiem Arduino. 65 proiecte do-it-yourself. Cărți despre Arduino pe ozon: i.electricianexp.com/arduino_books.php

     
    Comentarii:

    # 3 a scris: biruitor | [Cite]

     
     

    Material foarte interesant și interesant, mulțumesc!

     
    Comentarii:

    # 4 a scris: Ural | [Cite]

     
     

    Mulțumesc pentru informații, funcția „hartă” a fost foarte la îndemână, m-am întrebat cum să ocolesc, începând doar să învăț jucării pe Arduino.

     
    Comentarii:

    # 5 a scris: Dima | [Cite]

     
     

    Ceva ce nu găsesc pentru scuturi arduino pentru partajarea pe mil-std-1553b, deși pentru autobuze comp - heaps, o interfață foarte populară. Pocați unde puteți căuta-cumpăra.

    P.S. data articolului nu este afișată - poate are 10 ani și nu ar trebui să scrie deja comentarii?

     
    Comentarii:

    # 6 a scris: EREMINO | [Cite]

     
     

    Cum se face un repetor de semnal de intrare pe Arduino pentru 4 sau orice număr de ieșiri.

    În mod similar, faceți cu 4 canale de intrare la 16 canale de ieșire. În acest caz, trebuie să comutați intrarea la orice 4 ieșiri simultan pe fiecare canal de intrare.

     
    Comentarii:

    # 7 a scris: Oleg | [Cite]

     
     

    Băieți, spuneți-mi, unde ați învățat să programați? Am revizuit o mulțime de informații și nimeni nu a scris clar. Aici, toate informațiile nu sunt pentru un începător, într-adevăr multe nu sunt clare, subestimări. S-au scris o mulțime de cuvinte despre care nu există un cuvânt, de exemplu, autorul scrie la început, trebuie să anunțați biblioteca și să introduceți #include biblioteka.h; // dar despre acest cuvânt nu a scris nimic #inclus de ce este posibil să înțelegem toate acestea. Îmi lipsește deja răbdare, nimeni nu poate explica în mod normal și explică ce se va întâmpla aici este necesar să scriem asta. Ei bine, bineînțeles că este zero, dar încerc să citesc, nu văd nimic de neînțeles, ceea ce nu explică prea mult de prisos. Și pot spune că nu sunt un prost prost, pot repara aproape orice electronică, adică sunt prieteni cu capul meu, dar nu o înțeleg pentru că ei scriu cei care știu, dar au uitat de nuanțele pe care le-au profitat ei înșiși.