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“.

Kas yra Arduino?

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.

Arduino uno

Vidaus parduotuvėse 2017 m. Jo kaina yra apie 4–5 dolerius. Šiuolaikiniuose modeliuose „Atmega328“ yra jos širdis.

Arduino uno

„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.

Arduino nano

Š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.

Aruino nano pinout 

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

„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.

„Arduino“ pradedantiesiems

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ą.

„Arduino Pro Mini“

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.

Programinės aparatinės įrangos prijungimo schema

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

„Arduino“ jungtis

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.

Kištukas

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.

Programa „Arduino“

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.

Programos sąsaja

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 centrinis išėjimas, kurį galite prijungti prie bet kurio analoginio įėjimo

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.

Elektros 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.

„Arduino“ pradedantiesiems

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 i.electricianexp.com:

  • „Arduino“ I / O prievadų skaitymo ir valdymo metodai
  • Kurią Arduino plokštę pasirinkti
  • AVR mikrovaldiklių tipai ir išdėstymas
  • Mikrovaldiklio nuotolinio valdymo pultas: IR nuotolinio valdymo pultas, „Arduino“, ESP8266, 433 ...
  • Analoginių jutiklių prijungimas prie Arduino, skaitymo jutikliai

  •  
     
    Komentarai:

    # 1 rašė: Elektromagneta | [citata]

     
     

    Kokią literatūrą apie programavimo kodo studijas patariate?

     
    Komentarai:

    # 2 rašė: Andrejus | [citata]

     
     

    ElektromagnetaUlli Sommer. „Arduino / Freeduino“ mikrovaldiklio valdybos programavimas, autorius Jeremy Bloom. Mes mokomės Arduino. Techninės magijos įrankiai ir metodai, Johnas Boxelis. Mes mokomės Arduino. 65 „pasidaryk pats“ projektas. Knygos apie Arduino apie ozoną: i.electricianexp.com/arduino_books.php

     
    Komentarai:

    # 3 rašė: Viktoras | [citata]

     
     

    Labai įdomi ir jaudinanti medžiaga, ačiū!

     
    Komentarai:

    # 4 rašė: Uralas | [citata]

     
     

    Ačiū už informaciją, „žemėlapio“ funkcija buvo labai patogi, mąsčiau, kaip apeiti, tik pradėjau mokytis žaislų Arduino mieste.

     
    Komentarai:

    # 5 rašė: Dima | [citata]

     
     

    Kažko, ko nerandu „arduino“ skydams, skirtiems dalintis „mil-std-1553b“, nors komp. Autobusams - krūvos, labai populiari sąsaja. Kišti ten, kur galite ieškoti ir nusipirkti.

    p.s. straipsnio data nerodoma - galbūt jai yra 10 metų ir neverta rašyti komentarų?

     
    Komentarai:

    # 6 rašė: Eremino | [citata]

     
     

    Kaip padaryti įvesties signalo kartotuvą „Arduino“ 4 ar bet kuriam išėjimų skaičiui.

    Panašiai yra ir su 4 įvesties kanalais iki 16 išvesties kanalų. Tokiu atveju įvestį turite perjungti į 4 išėjimus vienu metu kiekviename įvesties kanale.

     
    Komentarai:

    # 7 rašė: Olegas | [citata]

     
     

    Vaikinai, sakykite, kur išmokote programuoti? Peržiūrėjau daug informacijos ir niekas aiškiai neparašė. Čia visa informacija nėra skirta pradedančiajam, tikrai daug kas nėra aiški, nepakankamai įvertinta. Parašyta daugybė žodžių, apie kuriuos nė vienas žodis, pavyzdžiui, rašo autorius, pradžioje reikia deklaruoti biblioteką ir įvesti #include biblioteka.h; // bet apie šį žodį jis nieko neparašė # įtraukite, kodėl visa tai įmanoma suprasti. Man jau trūksta kantrybės, niekas negali paaiškinti įprastu būdu ir paaiškinti, kas čia nutiks, reikia tai parašyti. Na, žinoma, tai nulis, bet aš bandau skaityti, nesuprantu nieko nesuprantamo, daug nereikalingo, nepaaiškinančio. Ir aš galiu pasakyti, kad nesu kvailas kvailys, galiu taisyti beveik bet kokią elektroniką, tai yra, draugauju su galva, bet to nesuprantu, nes juos rašo tie, kurie žino, bet pamiršo apie niuansus.