Kategorijos: Teminiai straipsniai » Praktinė elektronika
Peržiūrų skaičius: 67360
Straipsnio komentarai: 7
„Arduino“ prijungimas ir programavimas pradedantiesiems
Ar mikrovaldiklių studijavimas atrodo sudėtingas ir nesuprantamas? Iki „Arudino“ pasirodymo tikrai nebuvo lengva ir tam reikėjo tam tikro programuotojų rinkinio ir kitos įrangos.
Kas yra Arduino?
Tai savotiškas elektroninis konstruktorius. Pradinis projekto tikslas yra leisti žmonėms lengvai išmokti programuoti elektroninius prietaisus, tuo pačiu skiriant kuo mažiau laiko elektroninei daliai.
Sudėtingiausias grandines ir plokščių sujungimą galima atlikti be lituoklio ir naudojant trumpiklius su nuimamomis jungtimis „tėvas“ ir „motina“. Tokiu būdu galima sujungti ir priedus, ir išplėtimo korteles, kurios arduinistų leksikoje yra tiesiog vadinamos „Skydais“.

Kokia pirmoji „Arduino“ lenta nusipirkta naujokui?
Laikoma bazė ir populiariausia lenta Arduino uno. Šis mokestis primena kreditinę kortelę. Gana didelis. Daugelis skydų, kurie yra parduodami, puikiai tinka jai. Ant plokštės yra lizdai, skirti išoriniams įrenginiams prijungti.

Vidaus parduotuvėse 2017 m. Jo kaina yra apie 4–5 dolerius. Šiuolaikiniuose modeliuose „Atmega328“ yra jos širdis.
„Arduino“ lentos vaizdas ir kiekvieno kaiščio funkcijų dekodavimas, „Arduino UNO“ pinout
Šioje plokštėje esantis mikrovaldiklis yra ilgas lustas DIP28 pakuotėje, kuris rodo, kad jis turi 28 kojas.
Kita populiariausia lenta kainuoja beveik du kartus pigiau nei ankstesnė - 2–3 doleriai. Tai yra lenta Arduino nano. Tikrosios plokštės yra pastatytos to paties „Atmega328“, funkciniu požiūriu yra panašios į JT, skiriasi dydžiai ir suderinamas sprendimas su USB, plačiau apie tai vėliau. Kitas skirtumas yra tas, kad yra įrengti kištukai, skirti prijungti įrenginius prie lentos adatų pavidalu.

Šios plokštės kaiščių (kojų) skaičius yra tas pats, tačiau galite pastebėti, kad mikrovaldiklis pagamintas kompaktiškesnėje TQFP32 pakuotėje, dėklai pridedami ADC6 ir ADC7, kitos dvi „papildomos“ kojos dubliuoja maitinimo magistralę. Jos matmenys yra gana kompaktiški - maždaug rankos nykščio dydžio.
Trečia populiariausia lenta yra „Arduino Pro Mini“, jis neturi USB prievado, skirto prisijungti prie kompiuterio, šiek tiek vėliau jums pasakysiu, kaip bendrauti.

„Arduino Nano“ ir „Pro Mini“ dydžių palyginimas
Tai mažiausia pagrindinė plokštė iš visų laikomų, kitaip ji panaši į ankstesnes dvi, o „Atmega328“ vis dar yra jos širdis. Mes nenagrinėsime kitų lentų, nes tai yra straipsnis pradedantiesiems, o lentų palyginimas yra atskiro straipsnio tema.
„Arduino Pro Mini“ pinout, viršutinėje dalyje - USB-UART jungties schema, kaištis „GRN“ - yra prijungtas prie mikrovaldiklio atstatymo grandinės, jis gali būti vadinamas kitaip, apie tai jūs turite sužinoti vėliau.
Santrauka:
Jei UNO patogu modeliuoti, tada „Nano“ ir „Pro Mini“ yra patogūs galutinėms jūsų projekto versijoms, nes jie užima mažai vietos.

Kaip prijungti Arduino prie kompiuterio?
„Arduino Uno“ ir „Nano“ jungiasi prie kompiuterio per USB. Tuo pačiu metu USB prievadas nėra palaikomas, čia naudojamas lygio konvertavimo grandinės sprendimas, paprastai vadinamas USB-to-Serial arba USB-UART (rs-232). Tuo pačiu metu į mikrovaldiklį blyksteli specialus „Arduino“ įkroviklis, kuris leidžia mirksėti šiuose autobusuose.
„Arduino Uno“ šis raištis yra įdiegtas mikrovaldiklyje su USB atrama - ATmega16U2 (AT16U2). Pasirodo, papildomas mikrovaldiklis lentoje reikalingas pagrindiniam mikrovaldikliui mirksėti.
„Arduino Nano“ tai įgyvendina „FT232R“ lustas arba jo analogas CH340. Tai nėra mikrovaldiklis - jis yra lygio keitiklis. Dėl šios priežasties „Arduino Nano“ nuo nulio surinkti savo rankomis yra paprasta.
Paprastai tvarkyklės įdiegiamos automatiškai, kai „Arduino“ plokštė yra prijungta. Tačiau kai aš nusipirkau kinietišką „Arduino Nano“ egzempliorių, prietaisas buvo atpažintas, tačiau jis neveikė, keitiklyje buvo klijuotas apvalus lipdukas su duomenimis apie išleidimo datą, nežinau, ar jis buvo padarytas tikslingai, bet jį nulupęs pamačiau žymėjimą CH340.
Prieš tai aš to nesusidūriau ir galvojau, kad visi USB-UART keitikliai buvo surinkti FT232, turėjau atsisiųsti tvarkykles, jas labai lengva rasti pagal „Arduino ch340 tvarkyklę“. Po paprasto diegimo - jis suveikė!
Per tą patį USB prievadą mikrovaldiklį taip pat galima maitinti, t. jei prijungsite jį prie adapterio iš mobiliojo telefono, jūsų sistema veiks.
Ką daryti, jei plokštėje nėra USB?
„Arduino Pro Mini“ yra mažesnis. Tai buvo pasiekta pašalinus programinės įrangos USB jungtį ir tą patį USB-UART keitiklį. Todėl jį reikia įsigyti atskirai. Paprasčiausias keitiklis CH340 (pigiausias), CPL2102 ir FT232R, parduodamas kainuoja nuo 1 USD.
Pirkdami atkreipkite dėmesį į kokią įtampą šis adapteris yra skirtas. „Pro mini“ yra 3.3 ir 5 V versijose, keitikliuose dažnai yra trumpiklis, kuris perjungia maitinimo įtampą.

Blykčiodami „Pro Mini“, prieš pat jo paleidimą, turite spustelėti RESET, tačiau keitikliuose su DTR jums to nereikia daryti, pajungimo schema pavaizduotame paveikslėlyje.

Juos jungia specialūs terminalai „Mama-Mama“ (moteris-moteris).

Tiesą sakant, visas jungtis galima atlikti naudojant tokius gnybtus (Dupont), jie yra abiejose pusėse su lizdais, ir su kištukais, ir iš vienos lizdo pusės, ir iš kitos.

Kaip parašyti programas Arduino?
Norėdami dirbti su eskizais (firminės programinės įrangos pavadinimas yra arduino kalba), yra speciali integruota aplinka, skirta kurti „Arduino IDE“, galite ją nemokamai atsisiųsti iš oficialios svetainės arba iš bet kurio teminio šaltinio, paprastai nėra problemų dėl jo įdiegimo.
Taip atrodo programos sąsaja. Galite rašyti programas supaprastinta C AVR kalba, specialiai sukurta arduino, iš tikrųjų tai yra bibliotekų, vadinamų Wiring, rinkinys, taip pat grynai C AVR. Jo naudojimas palengvina kodą ir pagreitina jo darbą.
Lango viršuje yra pažįstamas meniu, kuriame galite atidaryti failą, nustatymus, pasirinkti plokštę, kurioje dirbate („Uno“, „Nano“ ir daug, daug kitų), taip pat atidaryti projektus su paruoštų kodų pavyzdžiais. Žemiau yra mygtukų rinkinys, skirtas darbui su firmine programine įranga, klavišus, kuriuos pamatysite paveikslėlyje žemiau.

Lango apačioje yra sritis, kurioje galima pateikti informaciją apie projektą, kodo būseną, programinę-aparatinę įrangą ir klaidas.
Arduino IDE programavimo pagrindai
Kodo pradžioje turite deklaruoti kintamuosius ir prijungti papildomas bibliotekas, jei jos egzistuoja, tai daroma taip:
# įtraukti biblioteka.h; // prijunkite biblioteką pavadinimu „Biblioteka.h“
#define peremennaya 1234; // Paskelbkite kintamąjį, kurio vertė 1234
Apibrėžti komanda leidžia kompiliatoriui pasirinkti kintamojo tipą, bet jūs galite jį nustatyti rankiniu būdu, pavyzdžiui, sveikasis skaičius int arba slankiojo kablelio slankusis.
int led = 13; // sukūrė kintamąjį „led“ ir priskyrė jam reikšmę „13“
Programa gali nustatyti kaiščio būseną kaip 1 arba 0. 1 yra loginis vienetas, jei kaištis 13 yra 1, tada jo fizinės kojos įtampa bus lygi mikrovaldiklio maitinimo įtampai („arduino UNO“ ir „Nano“ - 5 V).
Skaitmeninis signalas įrašomas naudojant „digitalWrite“ komandą (kaištis, vertė), pavyzdžiui:
„digitalWrite“ (led, high); // užrašykite bloką, kad prisegtumėte 13 (mes apie tai paskelbėme aukščiau) žurnale. Vienetai.
Kaip jūs galite suprasti, prieigą prie prievadų galima numeruoti lentoje, atitinkamas paveikslas. Čia yra pavyzdys, panašus į ankstesnį kodą:
„digitalWrite“ (13, aukšta); // nustatykite 13 kaištį į vieną
Dažnai ieškoma laiko uždelsimo funkcija iškviečiama komanda „delay ()“, kurios vertė nustatoma milisekundėmis, mikrosekundės pasiekiamos naudojant
delayMicroseconds () Vėlavimas (1000); // mikrovaldiklis lauks 1000 ms (1 sekundę)
Įvesties ir išvesties prievadų parametrai nustatomi atliekant funkciją void setup {}, naudojant komandą:
negaliojanti sąranka () {
pinMode (NOMERPORTA, OUTPUT / INPUT); // argumentai - kintamasis vardas arba prievado numeris, įvestis ar išvestis, iš kurių galima pasirinkti
}
Tuščia kilpa {}
Pirmosios „Blink“ programos supratimas
Kaip savotiškas „sveiki, pasaulis“ mikrokontroleriams, yra šviesos diodų mirksėjimo programa, paanalizuokime jos kodą:
Iš pradžių, naudodamiesi „pinMode“ komanda, mes liepėme mikrovaldikliui prie išvesties priskirti prievadą su šviesos diodu.Jūs jau pastebėjote, kad kodas nedeklaruoja kintamojo „LED_BUILTIN“. Faktas yra tas, kad „Uno“, „Nano“ ir kitose gamyklos plokštėse įmontuotas šviesos diodas yra prijungtas prie 13 kaiščio ir yra lituojamas prie plokštės. Jį galite naudoti norėdami nurodyti savo projektuose arba paprasčiausiai patikrinti savo mirksinčias programas.
Toliau mes nustatome išvestį, prie kurios LED yra lituojamas, į vienovę (5 V), kita eilutė priverčia MK laukti 1 sekundę, o tada nustato LED_BUILTIN smeigtuką į nulį, laukia sekundės ir programa kartojasi ratu, taigi, kai LED_BUILTIN yra 1 - šviesos diodas ( ir bet kuri kita prie uosto prijungta apkrova) įjungiama, kai esant 0 ji išjungiama.
Ar viskas veikia ir viskas aišku? Tada judėk toliau!
Mes skaitome vertę iš analoginio prievado ir naudojame nuskaitytus duomenis
„Atmega328 AVR“ mikrovaldiklis turi įmontuotą 10 bitų analogo-skaitmeninio keitiklį. 10 bitų ADC leidžia nuskaityti įtampos vertę nuo 0 iki 5 voltų, padidinant 1/1024 viso signalo amplitudės diapazono (5 V).
Kad būtų aiškiau, atsižvelkite į situaciją, tarkime, kad analoginės įvesties įtampos vertė yra 2,5 V, tada mikrovaldiklis nuskaitys vertę iš kaiščio „512“, jei įtampa yra 0 - „0“, o jei 5 V - (1023). 1023 - nes skaičius eina nuo 0, t. 0, 1, 2, 3 ir kt. iki 1023 - iš viso 1024 vertės.
Štai kaip jis atrodo kode, kaip pavyzdį naudodamas standartinį eskizą „analogInput“
int sensorPin = A0;
int ledPin = 13;
int sensorValue = 0;
negaliojanti sąranka () {
pinMode (ledPin, OUTPUT);
}
tuščia kilpa () {
sensorValue = analogRead (sensorPin);
„digitalWrite“ (ledPin, HIGH);
vėlavimas (sensorValue);
„digitalWrite“ (ledPin, LOW);
vėlavimas (sensorValue);
}

Potenciometro prijungimo prie Arduino schema pagal analogiją yra centrinė išvestis, kurią galite prijungti prie bet kurio analoginio įėjimo.
Deklaruokite kintamuosius:
-
„Ledpin“ - savarankiškai priskirkite smeigtuką su įmontuotu šviesos diodu prie išėjimo ir duokite individualų pavadinimą;
-
sensorPin - analoginis įėjimas, nustatytas pagal žymėjimą lentoje: A0, A1, A2 ir kt .;
-
sensorValue - kintamasis, skirtas saugoti sveikąją skaitinę vertę ir toliau dirbti su ja.
Kodas veikia taip: „sensorValue“ išsaugo analoginę vertę, nuskaitytą naudojant „sensorPin“ (komanda „analogRead“). - čia darbas su analoginiu signalu baigiasi, tada viskas yra kaip ankstesniame pavyzdyje.
Rašome vienetą į ledPin, šviesos diodas įsijungia ir laukiame laiko, lygaus „sensorValue“ vertei, t. nuo 0 iki 1023 milisekundžių. Išjunkite šviesos diodą ir vėl palaukite šį laikotarpį, po kurio kodas pasikartos.
Taigi pagal potenciometro padėtį mes nustatome šviesos diodo mirksėjimo dažnį.
Žemėlapio funkcija Arudino
Ne visos pavarų funkcijos (aš nieko nežinau) palaiko „1023“ kaip argumentą, pavyzdžiui, servo aparatą riboja sukimosi kampas, tai yra, servo variklio per pusę apsisukimo (180 laipsnių) (pusė apsisukimo), maksimalus funkcijos argumentas yra „180“.
Dabar apie sintaksę: žemėlapis (vertė, kurią mes verčiame, yra mažiausia įvestis, maksimali įvestis, mažiausia išvestis, maksimali išvestis).
Pagal kodą jis atrodo taip:
(žemėlapis („analogRead“ (puodas), 0, 1023, 0, 180));
Mes skaitome potenciometro (analogRead (puodo)) vertę nuo 0 iki 1023, o išvestyje gauname skaičius nuo 0 iki 180
Vertės žemėlapio vertės:
-
0=0;
-
1023=180;
Praktiškai tai taikome to paties servo kodo darbui, pažvelkime į kodą su Arduino IDE, jei atidžiai perskaitėte ankstesnius skyrius, tada jo nereikia paaiškinti.

Ir ryšio schema.

Išvados Arduino yra labai patogus įrankis išmokti dirbti su mikrovaldikliais. Ir jei naudosite gryną C AVR arba, kaip jis kartais vadinamas „Pure C“, žymiai sumažinsite kodo svorį ir daugiau tilpsite į mikrovaldiklio atmintį, todėl gausite puikią gamykloje pagamintą derinimo lentą su USB mikroprograma.

Autoriaus nuomonė:
Man patinka arduino. Gaila, kad daugelis patyrusių mikrovaldiklių programuotojų be pagrindo kritikuoja tai, kad jis yra per daug supaprastintas. Iš esmės supaprastinta tik kalba, tačiau niekas neverčia jos naudoti, be to, galite mirksėti mikrovaldikliu per ICSP jungtį ir užpildyti norimą kodą be jokių įkrovos įkėlėjų, kurių jums nereikia.
Tiems, kurie nori žaisti su elektronika, kaip pažengusiam konstruktoriui, jis yra tobulas, tačiau patyrusiems programuotojams taip pat pravers lenta, kuriai nereikia montavimo!
Norėdami gauti daugiau informacijos apie „Arduino“ ir jo naudojimo ypatybes įvairiose schemose, skaitykite el. Knygoje -Arduino manekenėms. Iliustruotas praktinis vadovas.
Taip pat žiūrėkite tinklalapyje electro-lt.tomathouse.com
: