kategória: Kiemelt cikkek » Gyakorlati elektronika
Megtekintések száma: 67360
Megjegyzések a cikkhez: 7

Az Arduino csatlakoztatása és programozása kezdőknek

 

A mikrokontrollerek tanulmányozása bonyolultnak és érthetetlennek tűnik? Az Arudino megjelenése előtt ez tényleg nem volt könnyű, és ehhez bizonyos programozókészletre és egyéb felszerelésre volt szükség.


Mi az arduino?

Ez egyfajta elektronikus kivitelező. A projekt eredeti célja az, hogy lehetővé tegye az emberek számára az elektronikus eszközök programozásának egyszerű megtanulását, miközben minimális időt fordít az elektronikus alkatrészekre.

A legbonyolultabb áramkörök összeszerelése és a táblák összekapcsolása forrasztópáka nélkül és leválasztható csatlakozókkal, „apa” és „anya” segítségével lehetséges. Ily módon mind a mellékletek, mind a bővítőkártyák összekapcsolhatók, amelyeket az arduinisták lexikonjában egyszerűen „pajzsoknak” hívnak.

Mi az Arduino?

Mi az első Arduino tábla, amelyet újszülöttnek vásárolt?

Az alap és a legnépszerűbb tábla kerül figyelembevételre Arduino uno. Ez a díj hitelkártyára emlékeztet. Elég nagy. A legtöbb eladó pajzs tökéletes neki. A táblán vannak aljzatok a külső eszközök csatlakoztatásához.

Arduino uno

A 2017. évi hazai üzletekben ára körülbelül 4-5 dollár. A modern modellekben az Atmega328 a szíve.

Arduino uno

Az Arduino tábla képe és funkcióinak dekódolása az egyes csapokhoz, Arduino UNO pinout

A táblán lévő mikrovezérlő egy hosszú chip a DIP28 csomagban, ami azt jelenti, hogy 28 lába van.

A következő legnépszerűbb tábla majdnem kétszer olcsóbb, mint az előző - 2-3 dollár. Ez az igazgatóság Arduino nano. A tényleges táblákat ugyanaz az Atmega328 építette, funkcionálisan hasonlóak az UNO-hoz, méretbeli különbségek és az USB-hez való illesztés döntése, erről később. Egy másik különbség az, hogy az eszközök áramköri laphoz történő csatlakoztatásához dugasz, tű formájában, biztosított.

Arduino nano

Ennek a táblának a csapok (lábak) száma azonos, de megfigyelhető, hogy a mikrovezérlő egy kompaktabb TQFP32 csomagban van elkészítve, az esethez ADC6 és ADC7 kerül hozzáadásra, a másik két „extra” láb duplikálja az erőátvitelt. Mérete meglehetősen kompakt - körülbelül a hüvelykujjával a kezét.

Aruino nano pinout 

A harmadik legnépszerűbb tábla Arduino Pro Mini, nincs USB-port a számítógéphez való csatlakozáshoz, egy kicsit később megmondom, hogyan kell kommunikálni.

Arduino Nano vs Pro Mini méret összehasonlítása

Arduino Nano vs Pro Mini méret összehasonlítása

Ez a legkisebb tábla az összes figyelembe vett elemnél, különben hasonló az előző kettőhöz, és Atmega328 továbbra is a legfontosabb. Más táblákat nem veszünk figyelembe, mivel ez egy cikk kezdőknek, és a táblák összehasonlítása külön cikk témája.

Arduino Pro Mini pinout, a felső részben az USB-UART csatlakozási rajz, „GRN” tű - a mikrokontroller reset áramköréhez vezetik, más néven hívhatják, erről később meg kell tudnia.

találatok:

Ha az UNO kényelmes a prototípus készítéséhez, akkor a Nano és a Pro Mini kényelmes a projekt végleges változatához, mivel kevés helyet foglalnak el.

Arduino kezdőknek

Hogyan csatlakoztathatom az Arduino-t egy számítógéphez?

Az Arduino Uno és a Nano USB-n keresztül csatlakoznak a számítógéphez. Ugyanakkor az USB porthoz nincs hardver támogatás, itt egy szintátalakításhoz használt áramköri megoldást használnak, általában USB-soros vagy USB-UART (rs-232) néven. Ugyanakkor egy speciális Arduino rendszerbetöltőt felvillan a mikrovezérlőbe, amely lehetővé teszi a villogást ezeken a buszokon.

Az Arduino Uno-ban ezt a ligattumot USB-támaszú mikrokontrolleren - ATmega16U2 (AT16U2) - alkalmazzák. Kiderül, hogy a táblán lévő kiegészítő mikrovezérlőre van szükség a fő mikrovezérlő villogásához.

Az Arduino Nanóban ezt az FT232R chip vagy annak analóg CH340 valósítja meg. Ez nem egy mikrokontroller - egy szintátalakító, ez a tény megkönnyíti az Arduino Nano összeszerelését a kezéből a saját kezével.

Általában az illesztőprogramok automatikusan települnek, amikor az Arduino tábla csatlakoztatva van. Amikor azonban vásároltam az Arduino Nano kínai példányát, az eszközt felismerték, de nem működött, egy kerek matrica, amelyen megjelentek a kiadás dátuma, ragasztottak az átalakítóra, nem tudom, hogy ezt szándékosan végezték-e el, de lehúzás után láttam a CH340 jelölést.

Ezt megelőzően még nem találkoztam ezzel, és azt gondoltam, hogy az összes USB-UART átalakítót az FT232-re szerelték, le kellett töltenem az illesztőprogramokat, amelyeket nagyon könnyű megtalálni az „Arduino ch340 illesztőprogram” kérésére. Egy egyszerű telepítés után - működött!

Ugyanezen USB porton keresztül a mikrovezérlő is táplálható, azaz Ha egy mobiltelefonról csatlakoztatja az adapterhez, akkor a rendszer működni fog.


Mi a teendő, ha a fórumon nincs USB?

Az Arduino Pro Mini kisebb. Ezt a firmware USB-csatlakozójának és ugyanazon USB-UART-átalakító eltávolításával érjük el. Ezért külön kell megvásárolni. A CH340 legegyszerűbb átalakítója (a legolcsóbb), a CPL2102 és az FT232R, az eladás ára 1 dollár.

Vásárláskor ügyeljen arra, hogy milyen feszültségre lett kialakítva ez az adapter. A Pro mini a 3.3 és az 5 V-os verziókban kapható, az átalakítókon gyakran egy áthidalót helyeznek el a tápfeszültség átkapcsolására.

Arduino Pro Mini

A Pro Mini villogásakor, közvetlenül az indítás előtt, meg kell kattintania a RESET-re, azonban a DTR-es átalakítókban nem kell ezt megtennie, az alábbi ábrán látható csatlakozási ábra.

A firmware csatlakozási diagramja

Összekapcsolják őket a "Mama-Mama" (nő-nő) speciális terminálokkal.

Arduino kapcsolat

Valójában az összes csatlakoztatást ilyen csatlakozókkal (Dupont) lehet létrehozni, mindkettő mindkét oldalon csatlakozóaljzattal, dugókkal, és a foglalat egyik oldalán, és a másik dugóval is van.

dugó

Hogyan lehet programokat írni Arduino számára?

Vázlatokkal történő munkavégzéshez (a firmware neve az arduino nyelvén található) van egy speciális integrált környezet az Arduino IDE fejlesztéséhez, ingyenesen letölthető a hivatalos weboldalról vagy bármilyen tematikus forrásból, általában nincs probléma a telepítésével.

Program Arduino számára

Így néz ki a program felülete. Írhat programokat a kifejezetten az arduino számára kifejlesztett egyszerűsített C AVR nyelven, sőt ez egy Wiring nevű könyvtárkészlet, valamint tiszta C AVR formátumban. Használata megkönnyíti a kódot és felgyorsítja a munkáját.

Az ablak tetején található egy ismerős menü, ahol megnyithatja a fájlt, a beállításokat, kiválaszthatja a dolgozótáblát (Uno, Nano és még sok-sok más), valamint kész projektekkel nyithat meg projekteket. Az alábbiakban található egy gombkészlet a firmware-vel való munkavégzéshez, a gombok az alábbi ábrán láthatók.

Program interfész

Az ablak alján található egy olyan terület, ahol információkat jeleníthet meg a projektről, a kód állapotáról, a firmware-ről és a hibákról.


Arduino IDE programozási alapok

A kód elején deklarálnia kell a változókat és csatlakoztatnia kell további könyvtárakat, ha vannak ilyenek, ezt a következőképpen hajtják végre:

# beletartozik a biblioteka.h; // csatlakoztassa a könyvtárat a „Biblioteka.h” névvel

#define peremennaya 1234; // Nyújtsa be az 1234 értékű változót

A Define parancs lehetővé teszi a fordítónak a változó típusának kiválasztását, de manuálisan is beállíthatja, például egy egész szám vagy lebegőpontos lebegőponttal.

int led = 13; // létrehozta az „led” változót és hozzátette a „13” értéket

A program meghatározhatja a tüske állapotát 1 vagy 0-ban. 1 logikai egység, ha a 13. tüske 1, akkor a fizikai lábánál a feszültség megegyezik a mikrovezérlő tápfeszültségével (az arduino UNO és a Nano esetében - 5 V).

A digitális jelet a digitalWrite paranccsal rögzítjük (tű, érték), például:

digitalWrite (led, magas); // írja be az egységet a 13-as pin-hez (bejelentettük fent) naplóba. Unit.

Mint érthető, a portokhoz való hozzáférés a táblán lévő számozással történik, a megfelelő ábra. Íme egy példa az előző kódhoz:

digitalWrite (13, magas); // állítsa a 13-as tűt egyre

Gyakran a kívánt késleltetés funkciót a késleltetés () parancs hívja, amelynek értékét milliszekundumban állítják be, mikrosekundumot a

delayMicroseconds () Késleltetés (1000); // A mikrovezérlő 1000 ms-ot (1 másodperc) vár

A bemeneti és kimeneti portbeállításokat a void setup {} funkcióban állítják be, a következő paranccsal:

érvénytelen beállítás () {

pinMode (NOMERPORTA, OUTPUT / INPUT); // argumentumok - változó neve vagy portszáma, bemenet vagy kimenet közül lehet választani

}

Üres hurok {}


Az első Blink-program megértése

Mint egyfajta „Hello, világ” a mikrovezérlők számára, van egy LED villogó program, elemezzük annak kódját:

A pinMode paranccsal eleinte azt mondtuk a mikrovezérlőnek, hogy rendeljen hozzá egy portot egy LED-del a kimenethez.Már észrevetted, hogy a kód nem deklarálja a „LED_BUILTIN” változót, az a tény, hogy az Uno, Nano és más gyári táblákban a beépített LED csatlakozik a 13. érintkezőhöz, és be van forrasztva a táblához. Ön felhasználhatja a projektekben való jelzésre vagy a villogó programok legegyszerűbb ellenőrzésére.

Ezután azt a kimenetet, amelyre a LED meg van forrasztva, egységre állítjuk (5 V), a következő sor az MK-t várja 1 másodpercig, majd a LED_BUILTIN tűt nullára állítja, másodpercre vár, és a program körben megismétlődik, tehát amikor a LED_BUILTIN értéke 1 - a LED ( és a porthoz csatlakoztatott bármely más terhelés) bekapcsol, ha 0-nál ki van kapcsolva.

Minden működik, és minden világos? Akkor lépj tovább!



Az analóg portból kiolvasjuk az értéket, és felhasználjuk az olvasott adatokat

Az Atmega328 AVR mikrovezérlő beépített 10 bites analóg-digitális konverterrel rendelkezik. A 10 bites ADC lehetővé teszi a feszültség 0 és 5 volt közötti értékének leolvasását a jel teljes amplitúdótartományának (5 V) 1/1024 lépésben.

A világosabbá tétele érdekében fontolja meg a helyzetet, tegyük fel, hogy az analóg bemeneten a feszültség értéke 2,5 V, akkor a mikrovezérlő az "512" érintkezőről leolvassa az értéket, ha a feszültség 0 - "0", és ha 5 V - (1023). 1023 - mert a szám 0-tól megy, azaz 0, 1, 2, 3 stb. 1023-ig - összesen 1024 érték.

Így néz ki a kód, példaként a „analogInput” vázlatot használva

int sensorPin = A0;

int ledPin = 13;

int sensorValue = 0;

érvénytelen beállítás () {

pinMode (ledPin, OUTPUT);

}

void loop () {

sensorValue = analogRead (sensorPin);

digitalWrite (ledPin, HIGH);

késleltetés (sensorValue);

digitalWrite (ledPin, LOW);

késleltetés (sensorValue);

}

A potenciométer Arduino csatlakozási sémája analógia útján a központi kimenethez bármilyen analóg bemenethez csatlakoztatható

A potenciométer Arduino csatlakozási sémája analógia útján a központi kimenethez bármilyen analóg bemenethez csatlakoztatható.

Nyújtsa be a változókat:

  • Ledpin - függetlenül hozzárendel egy csapot egy beépített LED-del a kimenethez, és egyedi nevet ad;

  • sensorPin - analóg bemenet, a táblán lévő jelölésnek megfelelően beállítva: A0, A1, A2 stb .;

  • sensorValue - egy változó egész szám olvasási érték tárolására és az azzal való további munkára.

A kód így működik: az sensorValue elmenti az sensorPin (analóg olvasás parancs) által olvasott analóg értéket. - itt véget ér az analóg jellel folytatott munka, akkor minden úgy van, mint az előző példában.

Az egységet ledPin-ben írjuk, a LED kigyullad, és várjon egy ideig az sensorValue értékével, azaz 0 és 1023 milliszekundum között. Kapcsolja ki a LED-et, és várja meg újra ezt az időtartamot, miután a kód megismétlődik.

Így a potenciométer helyzetével beállíthatjuk a LED villogási frekvenciáját.


Térkép funkció Arudino számára

A szelepmozgatók nem minden funkciója (nem tudok egyet) nem támogatja az „1023” érvet, például, a szervót korlátozza a forgásszög, vagyis a szervomotor fél fordulatával (180 fok) (fél fordulattal), a funkció maximális érve „180”.

Most a szintaxisról: térkép (az általunk lefordított érték a minimális bemenet, a maximális bemenet, a minimális kimenet, a maximális kimenet).

Kódban a következőképpen néz ki:

(térkép (analogRead (pot), 0, 1023, 0, 180));

A potenciométer (analogRead (pot)) értékét leolvasjuk 0 és 1023 között, és a kimenetnél 0 és 180 közötti számokat kapunk

Érték térkép értékei:

  • 0=0;

  • 1023=180;

A gyakorlatban ezt ugyanazon szervo kód munkájára alkalmazzuk, nézzük meg a kódot az Arduino IDE-vel, ha figyelmesen elolvassa az előző szakaszokat, akkor nem igényel magyarázatot.

És a csatlakozási rajz.

Kapcsolási rajz

Következtetések Az Arduino nagyon kényelmes eszköz a mikrovezérlőkkel való munka megtanulásához. És ha tiszta C AVR-t használ, vagy amint azt néha „tiszta C” -nek hívják, akkor jelentősen csökkenteni fogja a kód súlyát, és jobban belefér a mikrovezérlő memóriájába, ennek eredményeként kiváló, gyárilag készített hibakeresési panelt fog kapni USB-firmware-vel.

Arduino kezdőknek

A szerző véleménye:

Szeretem az arduino-t. Sajnálatos, hogy sok tapasztalt mikrokontroller-programozó indokolatlanul kritizálja azt, hogy ez túl egyszerű. Alapvetően csak a nyelv egyszerűsödik, de senki sem kényszeríti arra, hogy használja, ráadásul a mikrovezérlőt villoghatja az ICSP csatlakozón keresztül, és kitöltheti a kívánt kódot anélkül, hogy szükség lenne bootloader-ekre.

Azok számára, akik elektronikával szeretnének játszani, mint fejlett konstruktor, ez tökéletes, de tapasztalt programozók számára egy olyan tábla, amely nem igényli összeszerelést, szintén hasznos!

Az Arduinóval és annak különféle sémákban való alkalmazásának további információit lásd az e-könyvben -Arduino dummies számára. Illusztrált gyakorlati útmutató.

Lásd még az i.electricianexp.com oldalon:

  • Az Arduino I / O portok olvasásának és kezelésének módszerei
  • Melyik Arduino táblát választja
  • Az AVR mikrovezérlők típusai és elrendezése
  • Mikrovezérlő távirányító: IR távirányító, Arduino, ESP8266, 433 ...
  • Analóg érzékelők csatlakoztatása Arduino-hoz, olvasási érzékelők

  •  
     
    Megjegyzések:

    # 1 írta: ElectroMAG | [Cite]

     
     

    Milyen irodalmat ajánlja a programozási kód tanulmányozásáról?

     
    Megjegyzések:

    # 2 írta: Andrew | [Cite]

     
     

    ElectroMAGUlli Sommer. Az Arduino / Freeduino mikrovezérlő testület programozása, Jeremy Bloom. Arduinót tanulmányozzuk. Szerszámok és technikák a műszaki mágia számára, John Boxell. Arduinót tanulmányozzuk. 65 csináld magad projekt. Könyvek az Arduinóról az ózonról: i.electricianexp.com/arduino_books.php

     
    Megjegyzések:

    # 3 írta: győztes | [Cite]

     
     

    Nagyon érdekes és izgalmas anyag, köszönöm!

     
    Megjegyzések:

    # 4 írta: Urál | [Cite]

     
     

    Köszönöm az információt, a "térkép" funkció nagyon hasznos volt, azon gondolkodtam, hogyan lehet megkerülni, csak kezdtem el tanulni a játékokat az Arduinón.

     
    Megjegyzések:

    # 5 írta: Dima | [Cite]

     
     

    Valami, amit nem találok a mil-std-1553b-on való megosztáshoz használt arduino pajzsokhoz, bár a kompatibilis buszok számára - halom, nagyon népszerű felület. Piszkál, ahol kereshet-vásárolhat.

    Ui a cikk dátuma nem jelenik meg - talán 10 éves és nem érdemes megjegyzéseket írni?

     
    Megjegyzések:

    # 6 írta: Eremino | [Cite]

     
     

    Hogyan készítsünk bemeneti jelismétlőt Arduino-n 4 vagy bármilyen számú kimenetre.

    Hasonlóan 4 bemeneti csatorna és 16 kimeneti csatorna között. Ebben az esetben a bemenetet minden bemeneti csatornán egyszerre bármilyen 4 kimenetre kell váltania.

     
    Megjegyzések:

    # 7 írta: Oleg | [Cite]

     
     

    Srácok, mondd meg, hol tanultál programozni? Nagyon sok információt áttekintettem, és senki sem írt egyértelműen. Itt minden információ nem kezdő kezdőnek szól, valójában sok nem egyértelmű, alulbecsülve. Sok olyan szót írtunk, amelyekről nincs szó, például a szerző azt írja, hogy elején be kell jelentenie a könyvtárat, és be kell írnia a #include biblioteka.h; // de erről a szóról nem írt semmit # belefoglalja, miért lehetséges mindezt megérteni. Már hiányzik a türelmem, senki sem tudja megmagyarázni a szokásos módon, és elmagyarázza, hogy mi lenne itt történni, ezt meg kell írni. Nos, természetesen nulla, de megpróbálom olvasni, értetlenül semmit sem látok, ami nem magyaráz túl sok felesleget. Azt is mondhatom, hogy nem vagyok hülye bolond, szinte bármilyen elektronikát megjavíthatok, vagyis barátokkal állok a fejemmel, de nem értem, mert írják azokat, akik tudják, de elfelejtették az árnyalatokat, amint maguk belemerültek.