kategorije: Izdvojeni članci » Praktična elektronika
Broj pregledavanja: 67360
Komentari na članak: 7

Povezivanje i programiranje Arduino-a za početnike

 

Čini li se proučavanje mikrokontrolera složeno i nerazumljivo? Prije pojave Arudina zaista nije bilo lako i zahtijevao je određeni set programera i druge opreme.


Što je Arduino?

Ovo je vrsta elektroničkog konstruktora. Prvobitni cilj projekta je omogućiti ljudima da lako nauče programirati elektroničke uređaje, istovremeno posvećujući minimalno vrijeme elektroničkom dijelu.

Sastavljanje najsloženijih krugova i spajanje ploča može se izvesti bez lemilice, a uz pomoć skakača s odvojivim spojevima "otac" i "majka". Na taj se način mogu povezati i privitci i kartice za proširenje, što se u leksikonu arduinista jednostavno naziva „štitnici“.

Što je Arduino?

Koji je prvi Arduino odbor kupio za novorođenče?

U obzir dolazi baza i najpopularnija ploča Arduino uno, Ova naknada nalikuje kreditnoj kartici. Prilično velika. Većina štitnika koji su u prodaji savršeni su za nju. Na ploči su utičnice za spajanje vanjskih uređaja.

Arduino uno

U domaćim trgovinama za 2017. godinu njegova cijena je oko 4-5 dolara. Na modernim modelima Atmega328 je njezino srce.

Arduino uno

Arduino dekodiranje slike i funkcije svake ploče, Arduino UNO isječak

Mikrokontroler na ovoj ploči je dugački čip u paketu DIP28, što znači da ima 28 nogu.

Sljedeća najpopularnija ploča košta gotovo dva puta jeftinije od prethodne - 2-3 dolara. Ovo je ploča Arduino nano, Stvarne ploče izrađuje isti Atmega328, funkcionalno su slične UNO-u, postoje razlike u veličinama i odgovarajućem rješenju s USB-om, o čemu više kasnije. Druga je razlika što je čep u obliku igala predviđen za spajanje uređaja na pločicu.

Arduino nano

Broj pinova (nogu) na ovoj ploči je isti, ali možete primijetiti da je mikrokontroler izrađen u kompaktnijem TQFP32 paketu, u kućištu su dodani ADC6 i ADC7, a ostale dvije "dodatne" noge duplikate sabirnicu napajanja. Njene su dimenzije prilično kompaktne - otprilike veličine palca vaše ruke.

Aruino nano pinout 

Treća najpopularnija ploča je Arduino Pro Mini, nema USB priključak za povezivanje s računalom, reći ću vam kako komunicirati malo kasnije.

Usporedba veličine Arduino Nano i Pro Mini

Usporedba veličine Arduino Nano i Pro Mini

Ovo je najmanja ploča od svih razmatranih, inače je slična prethodnim dvjema, a Atmega328 je i dalje njeno srce. Nećemo razmatrati ostale ploče, jer je ovo članak za početnike, a usporedba odbora tema je za zasebni članak.

Arduino Pro Mini pinout, u gornjem dijelu, dijagram USB-UART veze, pin "GRN" - spojen je na krug resetiranja mikrokontrolera, može se nazvati drugačije, za što ćete kasnije morati saznati.

rezultati:

Ako je UNO prikladan za prototipiranje, tada su Nano i Pro Mini prikladni za finalne verzije vašeg projekta, jer zauzimaju malo prostora.

Arduino za početnike

Kako spojiti Arduino na računalo?

Arduino Uno i Nano povezuju se s računalom putem USB-a. U isto vrijeme, ne postoji hardverska podrška za USB priključak, ovdje se koristi rješenje kruga za pretvorbu nivoa, obično nazivano USB-to-Serial ili USB-UART (rs-232). Istodobno se u mikrokontroler ubacuje poseban Arduino bootloader koji omogućuje bljeskanje na tim magistralama.

U Arduino Unou ta se ligatura implementira na mikrokontroleru s USB podrškom - ATmega16U2 (AT16U2). Ispada da je dodatni mikrokontroler na ploči potreban za bljeskanje glavnog mikrokontrolera.

U Arduino Nano-u ovo implementira FT232R čip, ili njegov analogni CH340. Ovo nije mikrokontroler - to je pretvarač razine, ova činjenica olakšava sastavljanje Arduino Nano-a od nule vlastitim rukama.

Vozači se obično instaliraju automatski kada se poveže Arduino ploča. Međutim, kad sam kupio kinesku kopiju Arduino Nano-a, uređaj je prepoznat, ali nije radio, na pretvaraču je zalijepljena okrugla naljepnica s podacima o datumu puštanja, ne znam je li to učinjeno namjerno, ali nakon što sam je ogulio vidio sam oznaku CH340.

Prije toga nisam naišao na to i mislio sam da su svi USB-UART pretvarači montirani na FT232, morao sam preuzeti upravljačke programe, vrlo ih je lako pronaći po zahtjevu „Arduino ch340 upravljačkog programa“. Nakon jednostavne instalacije - uspjelo je!

Kroz isti USB priključak može se napajati i mikrokontroler, tj. ako ga spojite na adapter s mobilnog telefona, vaš sustav će raditi.


Što trebam učiniti ako moja ploča nema USB?

Arduino Pro Mini je manji. To je postignuto uklanjanjem USB priključka za firmver i istog USB-UART pretvarača. Stoga se mora kupiti odvojeno. Najjednostavniji pretvarač na CH340 (najjeftiniji), CPL2102 i FT232R, za prodaju košta od 1 USD.

Pri kupnji obratite pažnju na koji je napon dizajniran ovaj adapter. Pro mini je dostupan u verzijama 3.3 i 5 V, na pretvaračima se često nalaze kratkospojnici za prebacivanje napajanja.

Arduino Pro Mini

Kad treperi Pro Mini, neposredno prije nego što se pokrene, morate kliknuti RESET, međutim, u pretvaračima s DTR to ne trebate raditi, spojni dijagram na slici ispod.

Dijagram povezivanja za firmver

Pridružuju im se posebni terminali "Mama-Mama" (ženska-ženska).

Arduino veza

Zapravo sve veze mogu se uspostaviti pomoću takvih terminala (Dupont), obje su na dvije strane s utičnicama, i s utikačima, i na jednoj strani utičnice, i na drugoj utikaču.

utikač

Kako napisati programe za Arduino?

Za rad sa skicama (naziv upravljačkog softvera je na jeziku arduino) postoji posebno integrirano okruženje za razvoj Arduino IDE-a, možete ga besplatno preuzeti sa službenog web mjesta ili s bilo kojeg tematskog resursa, obično nema problema s njegovom instaliranjem.

Program za Arduino

Ovako izgleda programsko sučelje. Programe možete pisati na pojednostavljenom C AVR jeziku posebno razvijenom za arduino, u stvari to je skup knjižnica zvanih Wiring, kao i u čistom C AVR. Njegova upotreba olakšava kod i ubrzava njegov rad.

Na vrhu prozora nalazi se poznati izbornik u kojem možete otvoriti datoteku, postavke, odabrati ploču s kojom radite (Uno, Nano i mnogi, mnogi drugi) te otvoriti projekte s gotovim primjerima kodova. Ispod je skup gumba za rad s firmwareom, tipke koje ćete vidjeti na donjoj slici.

Programsko sučelje

Na dnu prozora je područje za prikazivanje informacija o projektu, statusu koda, upravljačkog softvera i prisutnosti pogrešaka.


Osnove programiranja Arduino IDE

Na početku koda morate deklarirati varijable i povezati dodatne biblioteke, ako one postoje, to se vrši na sljedeći način:

#include biblioteka.h; // povezati biblioteku s nazivom "Biblioteka.h"

#define peremennaya 1234; // Proglasite varijablu vrijednošću 1234

Naredba Define omogućava prevoditelju da odabere vrstu varijable, ali možete je postaviti ručno, na primjer, cijeli broj int ili plutajući pomični zarez.

int led = 13; // stvorio varijablu "led" i dodijelio joj vrijednost "13"

Program može odrediti stanje pin-a kao 1 ili 0. 1 je logična jedinica, ako je pin 13 1, tada će napon na njegovoj fizičkoj nozi biti jednak napajanju napona mikrokontrolera (za arduino UNO i Nano - 5 V)

Digitalni signal snima se pomoću naredbe digitalWrite (pin, value), na primjer:

digitalWrite (vodio, visok); // napišite jedinicu u zapisnik 13 (to smo objavili gore). Jedinica.

Kao što možete razumjeti, pristup portovima je numeriranjem na ploči, odgovarajućoj slici. Evo primjera sličnog prethodnom kodu:

digitalWrite (13, visoko); // postavite pin 13 na jedan

Često se tražena funkcija vremenskog kašnjenja naziva naredbom delay (), čija se vrijednost postavlja u milisekundama, mikrosekunde postižu se upotrebom

delayMicroseconds () Kašnjenje (1000); // mikrokontroler će čekati 1000 ms (1 sekunda)

Postavke priključaka za ulaz i izlaz postavljene su u funkciji podešavanja praznine {} naredbom:

poništavanje postave () {

pinMode (NOMERPORTA, IZLAZ / ULAZ); // argumenti - naziv varijable ili broj porta, ulaz ili izlaz za odabir

}

Void petlja {}


Razumijevanje prvog programa Blink

Kao vrsta "Pozdrav, svijet" za mikrokontrolere, postoji LED bljesak program, analizirajmo njegov kod:

U početku smo pomoću naredbe pinMode rekli mikrokontroleru da na izlazu dodijeli priključak sa LED-om.Već ste primijetili da kod ne deklarira varijablu "LED_BUILTIN", činjenica je da je u Uno, Nano i ostalim tvorničkim pločama ugrađeni LED spojen na pin 13 i lemljen na ploču. Možete ga koristiti za indikaciju u svojim projektima ili za najjednostavniju provjeru svojih treperi programa.

Zatim postavljamo izlaz na koji je LED zavaljen na jedinicu (5 V), sljedeći redak čini MK pričekavanje 1 sekundu, a zatim postavlja LED_BUILTIN pin na nulu, čeka sekundu i program se ponavlja u krugu, pa kada je LED_BUILTIN 1 - LED ( i svako drugo opterećenje spojeno na priključak) je uključeno, kad je na 0 isključeno.

Radi li sve i sve je jasno? Zatim krenite dalje!



Čitamo vrijednost s analognog ulaza i koristimo očitane podatke

Atmega328 AVR mikrokontroler ima ugrađeni 10-bitni analogno-digitalni pretvarač. 10-bitni ADC omogućava očitavanje vrijednosti napona od 0 do 5 volti, u koracima od 1/1024 cijelog raspona amplitude signala (5 V).

Da biste to pojasnili, razmotrite situaciju, pretpostavimo da je vrijednost napona na analognom ulazu 2,5 V, tada će mikrokontroler očitati vrijednost s pin "512" ako je napon 0 - "0", a ako je 5 V - (1023). 1023. - jer brojka ide od 0, tj. 0, 1, 2, 3, itd. do 1023. - ukupno 1024 vrijednosti.

Evo kako to izgleda u kodu, koristeći standardnu ​​skicu "analogInput" kao primjer

int sensorPin = A0;

int ledPin = 13;

int sensorValue = 0;

poništavanje postave () {

pinMode (ledPin, OUTPUT);

}

void petlja () {

sensorValue = analogRead (sensorPin);

digitalWrite (ledPin, HIGH);

kašnjenje (sensorValue);

digitalWrite (ledPin, LOW);

kašnjenje (sensorValue);

}

Shema povezivanja potenciometra s Arduinom, analogno, središnji izlaz koji možete spojiti na bilo koji analogni ulaz

Shema povezivanja potenciometra s Arduinom, analogno, središnji izlaz koji možete spojiti na bilo koji analogni ulaz.

Deklariranje varijabli:

  • Ledpin - neovisno dodijelite pin s ugrađenim LED-om na izlazu i navedite pojedinačno ime;

  • sensorPin - analogni ulaz, postavljen u skladu s oznakama na ploči: A0, A1, A2, itd .;

  • sensorValue - varijabla za pohranu cjelobrojne očitane vrijednosti i daljnji rad s njom.

Kôd funkcionira na sljedeći način: sensorValue sprema analognu vrijednost očitanu s sensorPin (analogRead naredba). - ovdje rad s analognim signalom završava, tada je sve kao u prethodnom primjeru.

Pišemo jedinicu u ledPin, LED se uključuje i čekamo vrijeme jednako vrijednosti sensValue, tj. od 0 do 1023 milisekundi. Isključite LED i pričekajte ponovno to razdoblje, nakon čega se kôd ponavlja.

Dakle, položajem potenciometra postavljamo treptajuću frekvenciju LED-a.


Funkcija karte za Arudino

Nisu sve funkcije pokretača (ne znam nijedne) podržavaju "1023" kao argument, na primjer, servo je ograničen kutom rotacije, tj. Polovinom okretaja (180 stupnjeva) (pola okretaja) servo-motora, maksimalni argument funkcije je "180"

Sad o sintaksi: map (vrijednost koju prevodimo je minimalni ulaz, maksimalni unos, minimalni izlaz, maksimalan izlaz).

U kodu izgleda ovako:

(karta (analogRead (pot), 0, 1023, 0, 180));

Čitamo vrijednost s potenciometra (analogRead (pot)) od 0 do 1023, a na izlazu dobivamo brojeve od 0 do 180

Vrijednosti karte:

  • 0=0;

  • 1023=180;

U praksi to primjenjujemo na rad istog servo koda, pogledajte kod s Arduino IDE, ako pažljivo pročitate prethodne odjeljke, onda to ne zahtijeva objašnjenje.

I dijagram veze.

Dijagram ožičenja

Zaključci Arduino je vrlo zgodan alat za učenje rada s mikrokontrolerima. A ako koristite čisti C AVR ili kako se to ponekad naziva "Pure C", značajno ćete smanjiti težinu koda i više se uklopiti u memoriju mikrokontrolera, kao rezultat, dobit ćete odličnu tvornički napravljenu ploču za uklanjanje pogrešaka s USB firmwareom.

Arduino za početnike

Mišljenje autora:

Volim arduino. Šteta je što ga mnogi iskusni programeri mikrokontrolera nerazumno kritiziraju, da je previše pojednostavljen. U principu, samo je jezik pojednostavljen, ali nitko vas ne prisiljava da ga upotrebljavate, plus možete mikrokontroler prebaciti preko ICSP priključka i popuniti željeni kod bez ikakvih programskih pokretača koji vam nisu potrebni.

Za one koji se žele igrati s elektronikom, kao napredni konstruktor savršen je, ali za iskusne programere ploča koja ne zahtijeva montažu također će biti korisna!

Za više informacija o Arduinu i značajkama njegove uporabe u raznim shemama pogledajte e-knjigu -Arduino za lutke. Ilustrirani praktični vodič.

Pogledajte također na elektrohomepro.com:

  • Metode za čitanje i upravljanje Arduino I / O portovima
  • Koju Arduino ploču odabrati
  • Vrste i raspored AVR mikrokontrolera
  • Daljinski upravljač mikrokontrolera: IR daljinski, Arduino, ESP8266, 433 ...
  • Spajanje analognih senzora na Arduino, očitavanje senzora

  •  
     
    komentari:

    # 1 napisao: elektromagnet | [Cite]

     
     

    Koju literaturu o proučavanju programskog koda preporučujete?

     
    komentari:

    # 2 napisao: Andrija | [Cite]

     
     

    elektromagnetUlli Sommer. Programiranje ploče mikrokontrolera Arduino / Freeduino, autor Jeremy Bloom. Mi proučavamo Arduino. Alati i tehnike za tehničku magiju, John Boxell. Mi proučavamo Arduino. 65 uradi sam. Knjige o Arduinu o ozonu: i.electricianexp.com/arduino_books.php

     
    komentari:

    # 3 napisao: pobjednik | [Cite]

     
     

    Vrlo zanimljiv i uzbudljiv materijal, hvala!

     
    komentari:

    # 4 napisao: Ural | [Cite]

     
     

    Zahvaljujem na informacijama, funkcija "karte" bila je vrlo korisna, pitala sam se kako se snaći, tek sam počela učiti igračke na Arduinu.

     
    komentari:

    # 5 napisao: Dima | [Cite]

     
     

    Nešto ne nalazim za arduino štitnike za dijeljenje na mil-std-1553b, iako je za kompjuterske autobuse - hrpe, vrlo popularno sučelje. Pokucajte gdje možete pretraživati-kupiti.

    postskriptum datum članka se ne prikazuje - možda ima 10 godina i ne vrijedi pisati komentare?

     
    komentari:

    # 6 napisao: Eremino | [Cite]

     
     

    Kako napraviti repetitore ulaznog signala na Arduino za 4 ili bilo koji broj izlaza.

    Slično je učiniti i s 4 ulazna kanala na 16 izlaznih kanala. U tom slučaju trebate prebaciti ulaz na bilo koja 4 izlaza istovremeno na svakom ulaznom kanalu.

     
    komentari:

    # 7 napisao: Oleg | [Cite]

     
     

    Ljudi, recite mi, gdje ste naučili programirati? Pregledao sam puno informacija i nitko nije jasno napisao. Ovdje sve informacije nisu za početnike, stvarno puno toga nije jasno, podcjenjivački. Napisano je puno riječi o kojima nije riječ, primjerice, autor piše, na početku trebate deklarirati knjižnicu i upisati #include biblioteka.h; // ali o ovoj riječi nije napisao ništa # uključujući zašto je sve to moguće razumjeti. Već mi nedostaje strpljenja, nitko ne može objasniti na normalan način i objasniti, pa što bi se ovdje dogodilo, ovo je potrebno napisati. Pa, naravno da je nula, ali pokušavam čitati, ne vidim ništa nerazumljivo, što ne objašnjava mnogo suvišnog. I mogu reći da nisam glupa budala, mogu popraviti gotovo svaku elektroniku, to jest, prijatelji su mi glave, ali ne razumijem to jer pišu oni koji znaju, ali su zaboravili na nijanse dok su se sami udubili u nju.