kategória: Najlepšie články » Praktická elektronika
Počet zobrazení: 67360
Komentáre k článku: 7
Pripojenie a programovanie Arduino pre začiatočníkov
Zdá sa, že štúdium mikrokontrolérov je komplikované a nepochopiteľné? Pred objavením sa Arudina to nebolo ľahké a vyžadovalo si určitú skupinu programátorov a ďalšieho vybavenia.
Čo je Arduino?
Je to akýsi elektronický konštruktér. Prvotným cieľom projektu je umožniť ľuďom ľahko sa naučiť, ako programovať elektronické zariadenia, pričom elektronickej časti venuje minimálny čas.
Montáž najkomplikovanejších obvodov a spojenie dosiek je možné vykonať bez spájkovačky a pomocou prepojok s odnímateľnými spojmi „otec“ a „matka“. Týmto spôsobom je možné pripojiť aj prílohy a rozširujúce karty, ktoré sa v lexikóne arduinistov jednoducho nazývajú „štíty“.

Aká je prvá doska Arduino, ktorá sa dá kúpiť pre nováčika?
Do úvahy sa berie základná a najobľúbenejšia doska Arduino uno, Tento poplatok sa podobá kreditnej karte. Dosť veľké. Väčšina štítov, ktoré sa predávajú, je pre ňu ideálna. Na doske sú zásuvky pre pripojenie externých zariadení.

V domácich obchodoch na rok 2017 je jeho cena asi 4-5 dolárov. Na moderných modeloch je Atmega328 jej srdcom.
Obrázok dosky Arduino a dekódovanie funkcií každého kolíka, vývod Arduino UNO
Mikrokontrolér na tejto doske je dlhý čip v balení DIP28, čo znamená, že má 28 nôh.
Najpopulárnejšia doska stojí takmer dvakrát lacnejšie ako tá predchádzajúca - 2 - 3 doláre. Toto je tabuľka Arduino nano, Skutočné dosky sú vyrobené z rovnakého Atmega328, sú funkčne podobné UNO, existujú rozdiely vo veľkosti a porovnávacie riešenie s USB, viac o tom neskôr. Ďalším rozdielom je to, že je usporiadaná zástrčka vo forme ihiel na pripojenie zariadení k doske plošných spojov.

Počet kolíkov (nôh) tejto dosky je rovnaký, ale môžete si všimnúť, že mikrokontrolér je vyrobený v kompaktnejšom balení TQFP32, v prípade sú pridané ADC6 a ADC7, ďalšie dve „extra“ nohy duplikujú napájaciu zbernicu. Jeho rozmery sú dosť kompaktné - približne o veľkosti palca ruky.
Treťou najobľúbenejšou doskou je Arduino Pro Mini, nemá port USB na pripojenie k počítaču, neskôr vám poviem, ako komunikovať.

Arduino Nano vs Pro Mini Porovnanie veľkosti
Toto je najmenšia základná doska zo všetkých uvažovaných, inak je podobná ako u predchádzajúcich dvoch a Atmega328 je stále jej srdcom. Nebudeme brať do úvahy iné tabule, pretože toto je článok pre začiatočníkov a porovnanie dosiek je témou samostatného článku.
Arduino Pro Mini pinout, v hornej časti je schéma zapojenia USB-UART, kolík „GRN“ - zapojená do resetovacieho obvodu mikrokontroléra, môže sa nazývať inak, pre čo je potrebné to zistiť neskôr.
výsledky:
Ak je UNO vhodné na prototypovanie, potom sú Nano a Pro Mini vhodné pre finálne verzie vášho projektu, pretože zaberajú málo miesta.

Ako pripojiť Arduino k počítaču?
Arduino Uno a Nano sa pripájajú k počítaču prostredníctvom USB. Súčasne neexistuje hardvérová podpora pre port USB, používa sa tu riešenie na úrovni konverzného obvodu, zvyčajne nazývané USB-na-sériové alebo USB-UART (rs-232). Súčasne je do mikrokontroléra blikaný špeciálny zavádzač Arduino, ktorý umožňuje blikanie týchto autobusov.
V Arduino Uno je táto ligatúra implementovaná na mikrokontroléri s podporou USB - ATmega16U2 (AT16U2). Ukazuje sa, že na zablikanie hlavného mikrokontroléra je potrebný ďalší mikrokontrolér na doske.
V Arduino Nano je to implementované čipom FT232R alebo jeho analógom CH340. Toto nie je mikrokontrolér - je to prevodník úrovní, táto skutočnosť uľahčuje zostavenie Arduino Nano od nuly vlastnými rukami.
Ovládače sa zvyčajne inštalujú automaticky, keď je pripojená doska Arduino. Keď som si však kúpil čínsku kópiu Arduino Nano, zariadenie bolo rozpoznané, ale nefungovalo to, na prevodník bola nalepená okrúhla nálepka s údajmi o dátume vydania, neviem, či sa to stalo zámerne, ale po odlepení som videl označenie CH340.
Predtým som sa s tým nestretol a myslel som si, že všetky prevodníky USB-UART boli zostavené na FT232, musel som stiahnuť ovládače, ktoré sa dajú veľmi ľahko nájsť na základe žiadosti o ovládač „Arduino ch340“. Po jednoduchej inštalácii - fungovalo to!
Prostredníctvom toho istého portu USB môže byť mikropočítač napájaný, t.j. ak ho pripojíte k adaptéru z mobilného telefónu, váš systém bude fungovať.
Čo mám robiť, ak moja doska nemá USB?
Arduino Pro Mini je menší. Dosiahlo sa to odstránením konektora USB pre firmvér a rovnakého prevodníka USB-UART. Preto sa musí zakúpiť samostatne. Najjednoduchší prevodník na CH340 (najlacnejšie), CPL2102 a FT232R, na predaj od 1 USD.
Pri nákupe dbajte na to, pre aké napätie je tento adaptér určený. Pro mini je k dispozícii vo verziách 3.3 a 5 V, na konvertoroch sa často nachádza prepojka na prepínanie napájacieho napätia.

Pri blikaní Pro Mini, tesne pred jeho spustením, musíte kliknúť na RESET, avšak v prevodníkoch s DTR to nemusíte robiť, schéma pripojenia na obrázku nižšie.

Sú spojené špeciálnymi terminálmi „Mama-Mama“ (žena-žena).

V skutočnosti môžu byť všetky pripojenia uskutočnené pomocou takýchto terminálov (Dupont), obidve sú na oboch stranách so zásuvkami a so zástrčkami a na jednej strane zásuvky a na druhej zástrčke.

Ako písať programy pre Arduino?
Ak chcete pracovať s náčrtmi (názov firmvéru je v jazyku arduino), existuje špeciálne integrované prostredie pre vývoj Arduino IDE, môžete si ho zadarmo stiahnuť z oficiálnej webovej stránky alebo z ľubovoľného tematického zdroja, obvykle nie sú problémy s jeho inštaláciou.
Takto vyzerá rozhranie programu. Môžete písať programy v zjednodušenom jazyku C AVR špeciálne vyvinutom pre arduino, v skutočnosti je to súbor knižníc s názvom Wiring, ako aj v čistom C AVR. Jeho použitie uľahčuje kód a urýchľuje jeho prácu.
V hornej časti okna sa nachádza známe menu, v ktorom môžete otvoriť súbor, nastavenia, vybrať dosku, s ktorou pracujete (Uno, Nano a mnoho ďalších), a tiež otvoriť projekty s príkladmi pripraveného kódu. Nižšie je sada tlačidiel na prácu s firmvérom, klávesy, ktoré uvidíte na obrázku nižšie.

V dolnej časti okna sa nachádza oblasť na zobrazenie informácií o projekte, stave kódu, firmvéru a prítomnosti chýb.
Základy programovania Arduino IDE
Na začiatku kódu musíte deklarovať premenné a pripojiť ďalšie knižnice, ak existujú, je to takto:
#include biblioteka.h; // prepojte knižnicu s názvom „Biblioteka.h“
#definovaná peremennaya 1234; // Vyhlásiť premennú s hodnotou 1234
Príkaz Definovať umožňuje kompilátoru zvoliť typ premennej, ale môžete ju nastaviť ručne, napríklad int celé číslo alebo plávajúce číslo s pohyblivou rádovou čiarkou.
int led = 13; // vytvoril premennú „led“ a priradil jej hodnotu „13“
Program môže určiť stav kolíka, pretože 1 alebo 0,1 je logická jednotka, ak je kolík 13 1, potom sa napätie na jeho fyzickej vetve rovná napájaciemu napätiu mikrokontroléra (pre arduino UNO a Nano - 5 V)
Digitálny signál sa zaznamenáva pomocou príkazu digitalWrite (pin, value), napríklad:
digitalWrite (led, high); // napíš jednotku do protokolu 13 (oznámili sme to vyššie) log. Unit.
Ako môžete pochopiť, prístup k portom je očíslovaním na tabuli, zodpovedajúcim číslom. Tu je príklad podobný predchádzajúcemu kódu:
digitalWrite (13, vysoký); // nastavte kolík 13 na jeden
Požadovanú funkciu časového oneskorenia často vyvoláva príkaz delay (), ktorého hodnota je nastavená v milisekundách, mikrosekundy sa dosahujú pomocou
delayMicroseconds () Oneskorenie (1000); // mikrokontrolér bude čakať 1 000 ms (1 s)
Nastavenia portu pre vstup a výstup sa nastavujú vo funkcii void setup {} príkazom:
neplatné nastavenie () {
pinMode (NOMERPORTA, OUTPUT / INPUT); // argumenty - názov premennej alebo číslo portu, vstup alebo výstup na výber
}
Prázdna slučka {}
Pochopenie prvého programu Blink
Ako druh „Ahoj, svet“ pre mikrokontroléry existuje program blikania LED diód, analyzujme jeho kód:
Na začiatku sme príkazom pinMode povedali mikrokontroléru, aby k výstupu priradil port s LED diódou.Už ste si všimli, že kód nevyhlásil premennú „LED_BUILTIN“, faktom je, že v Uno, Nano a ďalších doskách z továrne je zabudovaná LED pripojená na pin 13 a je pripájaná k doske. Môžete ho použiť na indikáciu vo svojich projektoch alebo na najjednoduchšiu kontrolu blikajúcich programov.
Ďalej nastavíme výstup, na ktorý sa LED pripája k jednote (5 V), ďalší riadok spôsobí, že MK čaká 1 sekundu, potom nastaví pin LED_BUILTIN na nulu, čaká sekundu a program sa opakuje v kruhu, takže keď LED_BUILTIN je 1 - LED ( a akékoľvek ďalšie zaťaženie pripojené k portu) je zapnuté, keď je pri 0 vypnuté.
Funguje všetko a všetko je jasné? Potom choďte ďalej!
Hodnotu načítame z analógového portu a použijeme načítané údaje
Mikrokontrolér Atmega328 AVR má zabudovaný 10-bitový analógovo-digitálny prevodník. 10-bitový ADC vám umožňuje odčítať hodnotu napätia od 0 do 5 voltov v krokoch po 1/1024 z celého rozsahu amplitúdy signálu (5 V).
Aby sa to objasnilo, zvážte situáciu, predpokladajte, že hodnota napätia na analógovom vstupe je 2,5 V, potom mikroprocesor načíta hodnotu z kolíka "512", ak je napätie 0 - "0", a ak 5 V - (1023). 1023 - pretože počet sa pohybuje od 0, t. 0, 1, 2, 3 atď. až do 1023 - celkom 1024 hodnôt.
Takto vyzerá v kóde ako príklad štandardná skica „analogInput“
int sensorPin = A0;
int ledPin = 13;
int sensorValue = 0;
neplatné nastavenie () {
pinMode (ledPin, OUTPUT);
}
void loop () {
sensorValue = analogRead (sensorPin);
digitalWrite (ledPin, HIGH);
oneskorenie (hodnota senzora);
digitalWrite (ledPin, LOW);
oneskorenie (hodnota senzora);
}

Schéma pripojenia potenciometra k Arduino analogicky k centrálnemu výstupu, ktorý sa dá pripojiť k akémukoľvek analógovému vstupu.
Deklarované premenné:
-
Ledpin - k výstupu nezávisle priraďte pin so vstavanou LED diódou a uveďte individuálne meno;
-
- analógový vstup, nastavený podľa označenia na doske: A0, A1, A2 atď .;
-
sensorValue - premenná na ukladanie celočíselnej hodnoty čítania a ďalšiu prácu s ňou.
Kód funguje takto: senzorValue uloží analógovú hodnotu načítanú pomocou SensorPin (príkaz analogRead). - tu končí práca s analógovým signálom, potom je všetko ako v predchádzajúcom príklade.
Jednotku zapíšeme do ledPin, LED sa rozsvieti a čaká sa na čas rovnajúci sa hodnote valueValue, t. od 0 do 1023 milisekúnd. Vypnite LED a počkajte znova, kým sa kód zopakuje.
Preto sme pomocou polohy potenciometra nastavili frekvenciu blikania LED.
Funkcia máp pre Arudino
Nie všetky funkcie pre servopohony (neviem), podporujú argument „1023“, napríklad argument, napríklad, servo je obmedzené uhlom natočenia, to znamená o polovicu otáčky (180 stupňov) (polovica otáčky) servomotora, maximálny argument funkcie je „180“
Teraz o syntaxi: map (hodnota, ktorú prekladáme, je minimálny vstup, maximálny vstup, minimálny výstup, maximálny výstup).
V kóde vyzerá takto:
(mapa (analogRead (pot), 0, 1023, 0, 180));
Odčítame hodnotu z potenciometra (analogRead (pot)) od 0 do 1023 a na výstupe dostávame čísla od 0 do 180
Hodnoty mapy:
-
0=0;
-
1023=180;
V praxi to aplikujeme na prácu toho istého servo kódu, pozrite si kód pomocou Arduino IDE, ak ste si pozorne prečítali predchádzajúce oddiely, nevyžaduje sa vysvetlenie.

A schéma pripojenia.

Závery Arduino je veľmi praktický nástroj na naučenie sa pracovať s mikrokontrolérmi. A ak používate čistý C AVR, alebo ako sa to niekedy nazýva „Pure C“, výrazne znížite hmotnosť kódu a lepšie sa zmestíte do pamäte mikrokontroléra. Výsledkom bude vynikajúca výrobná doska na ladenie s firmvérom USB.

Názor autora:
Páči sa mi arduino. Je škoda, že mnohí skúsení programátori mikrokontrolérov ju neprimerane kritizujú, že sú príliš zjednodušené. V zásade je zjednodušený iba jazyk, ale nikto vás nenúti používať ho, a navyše môžete bleskovo prepnúť mikrokontrolér cez konektor ICSP a vyplniť požadovaný kód bez akýchkoľvek zavádzačov, ktoré nepotrebujete.
Pre tých, ktorí chcú hrať s elektronikou ako pokročilý konštruktér, je to perfektné, ale pre skúsených programátorov bude užitočná aj doska, ktorá nevyžaduje montáž!
Viac informácií o Arduino a vlastnostiach jeho použitia v rôznych schémach nájdete v elektronickej knihe -Arduino pre figuríny. Ilustrovaný praktický sprievodca.
Pozri tiež na electro-sk.tomathouse.com
: