Kategorijas: Piedāvātie raksti » Praktiskā elektronika
Skatījumu skaits: 67360
Komentāri par rakstu: 7

Arduino savienošana un programmēšana iesācējiem

 

Vai mikrokontrolieru izpēte šķiet sarežģīta un nesaprotama? Pirms Arudino parādīšanās tas patiešām nebija viegls un prasīja noteiktu programmētāju un cita aprīkojuma komplektu.


Kas ir Arduino?

Tas ir sava veida elektroniskais konstruktors. Sākotnējais projekta mērķis ir ļaut cilvēkiem viegli iemācīties programmēt elektroniskās ierīces, vienlaikus minimāli veltot laiku elektroniskajai daļai.

Sarežģītāko shēmu montāžu un dēļu savienošanu var veikt bez lodāmura un ar džemperiem ar atvienojamiem savienojumiem “tēvs” un “māte”. Tādā veidā var savienot gan pielikumus, gan paplašināšanas kartes, kuras arduinistu leksikā vienkārši sauc par “vairogiem”.

Kas ir Arduino?

Kāda ir pirmā Arduino plāksne, kas tiek nopirkta iesācējam?

Tiek apsvērta pamatne un populārākā plāksne Arduino uno. Šī maksa atgādina kredītkarti. Diezgan liels. Lielākā daļa vairogu, kas ir pārdošanā, viņai ir lieliski piemēroti. Uz tāfeles ir ligzdas ārējo ierīču pievienošanai.

Arduino uno

Vietējos veikalos 2017. gadā tā cena ir aptuveni 4-5 dolāri. Mūsdienu modeļos Atmega328 ir viņas sirds.

Arduino uno

Arduino tāfeles attēls un katras tapas dekodēšana, Arduino UNO pinout

Šīs plates mikrokontrollers ir gara mikroshēma DIP28 paketē, kas nozīmē, ka tai ir 28 kājas.

Nākamais populārākais dēlis maksā gandrīz divas reizes lētāk nekā iepriekšējais - 2-3 dolāri. Šī ir valde Arduino nano. Faktiskās plāksnes ir veidojis tas pats Atmega328, tās ir funkcionāli līdzīgas UNO, pastāv atšķirības lielumos un atbilstošs risinājums ar USB, vairāk par to vēlāk. Vēl viena atšķirība ir tā, ka ierīču savienošanai ar shēmas plati ir paredzēts spraudnis adatu formā.

Arduino nano

Šīs plates tapu (kāju) skaits ir vienāds, taču jūs varat novērot, ka mikrokontrolleris ir izgatavots kompaktākā TQFP32 paketē, lietai ir pievienoti ADC6 un ADC7, pārējās divas “papildu” kājas dublē strāvas kopni. Tās izmēri ir diezgan kompakti - apmēram jūsu rokas īkšķa lielumā.

Aruino nano pinout 

Trešais populārākais dēlis ir Arduino Pro Mini, tam nav USB pieslēgvietas, lai izveidotu savienojumu ar datoru, es jums pastāstīšu, kā sazināties nedaudz vēlāk.

Arduino Nano vs Pro Mini izmēru salīdzinājums

Arduino Nano vs Pro Mini izmēru salīdzinājums

Šī ir mazākā mātesplate no visām apskatītajām, pretējā gadījumā tā ir līdzīga iepriekšējām divām, un Atmega328 joprojām ir tās sirds. Mēs neapsvērsim citus dēļus, jo šis ir raksts iesācējiem, un dēļu salīdzināšana ir atsevišķa raksta tēma.

Arduino Pro Mini pinout, augšējā daļā - USB-UART savienojuma shēma, tapa “GRN” - ir savienota ar mikrokontrollera atiestatīšanas ķēdi, to var saukt citādi, par kuru jums tas jānoskaidro vēlāk.

Kopsavilkums:

Ja UNO ir ērti prototipu veidošanai, tad Nano un Pro Mini ir ērti jūsu projekta galīgajām versijām, jo ​​tie aizņem maz vietas.

Arduino iesācējiem

Kā savienot Arduino ar datoru?

Arduino Uno un Nano izveido savienojumu ar datoru, izmantojot USB. Tajā pašā laikā USB portam nav aparatūras atbalsta, šeit tiek izmantots līmeņa pārveidošanas shēmas risinājums, ko parasti sauc par USB-to-Serial vai USB-UART (rs-232). Tajā pašā laikā mikrokontrollerī tiek iesprausts īpašs Arduino sāknēšanas iekrāvējs, kas šajos autobusos ļauj mirgot.

Arduino Uno šī ligatūra tiek realizēta uz mikrokontrollera ar USB atbalstu - ATmega16U2 (AT16U2). Izrādās, ka galvenā mikrokontrollera mirgošanai nepieciešams papildu mikrokontrollers uz tāfeles.

Arduino Nano to īsteno FT232R mikroshēma vai tā analogs CH340. Tas nav mikrokontrollers - tas ir līmeņa pārveidotājs, šis fakts ļauj ērti montēt Arduino Nano no nulles ar savām rokām.

Parasti draiveri tiek instalēti automātiski, kad ir pievienota Arduino plate. Tomēr, kad nopirku Arduino Nano ķīniešu eksemplāru, ierīce tika atpazīta, bet tā nedarbojās, pārveidotājā tika uzlīmēta apaļa uzlīme ar datiem par izlaišanas datumu, es nezinu, vai tas tika darīts ar nolūku, bet pēc tās nomizošanas es ieraudzīju marķējumu CH340.

Pirms tam es ar to nesaskāros un domāju, ka visi USB-UART pārveidotāji ir samontēti uz FT232, man vajadzēja lejupielādēt draiverus, tos ir ļoti viegli atrast pēc “Arduino ch340 draivera” pieprasījuma. Pēc vienkāršas instalēšanas - tas strādāja!

Izmantojot to pašu USB portu, mikrokontrolleru var arī darbināt, t.i. ja jūs to savienosit ar adapteri no mobilā tālruņa, jūsu sistēma darbosies.


Kas jādara, ja manā panelī nav USB?

Arduino Pro Mini ir mazāks. Tas tika panākts, noņemot programmaparatūras USB savienotāju un to pašu USB-UART pārveidotāju. Tāpēc tas jāiegādājas atsevišķi. Vienkāršākais CH340 (lētākais), CPL2102 un FT232R pārveidotājs, pārdošanas cena ir no 1 USD.

Pērkot, pievērsiet uzmanību tam, kādam spriegumam šis adapteris ir paredzēts. Pro mini ir pieejams versijās 3.3 un 5 V, pārveidotājos bieži atrodas pāreja, lai pārslēgtu barošanas spriegumu.

Arduino Pro Mini

Mirgojot Pro Mini, tieši pirms tā palaišanas jums jānoklikšķina uz RESET, tomēr pārveidotājos ar DTR jums tas nav jādara, savienojuma shēma parādīta zemāk redzamajā attēlā.

Programmaparatūras savienojuma shēma

Viņiem pievieno īpašus termināļus "Mama-Mama" (sieviete-sieviete).

Arduino savienojums

Faktiski visus savienojumus var izveidot, izmantojot šādus spailes (Dupont), tie ir abās pusēs gan ar kontaktligzdām, gan ar spraudņiem, gan kontaktligzdas vienā pusē, gan otrā spraudnī.

Kontaktdakša

Kā rakstīt programmas Arduino?

Lai strādātu ar skicēm (programmaparatūras nosaukums ir arduino valodā), ir īpaša integrēta vide Arduino IDE izstrādei, jūs varat to bez maksas lejupielādēt no oficiālās vietnes vai no jebkura tematiskā resursa, parasti ar tā instalēšanu nav problēmu.

Programma Arduino

Šādi izskatās programmas interfeiss. Jūs varat rakstīt programmas vienkāršotā C AVR valodā, kas īpaši izstrādāta arduino, patiesībā tas ir bibliotēku komplekts ar nosaukumu Wiring, kā arī tīrā C AVR. Tā lietošana atvieglo kodu un paātrina tā darbu.

Loga augšpusē ir pazīstama izvēlne, kurā varat atvērt failu, iestatījumus, atlasīt tāfeli, ar kuru strādājat (Uno, Nano un daudzi, daudzi citi), kā arī atvērt projektus ar gatavu kodu piemēriem. Zemāk ir pogu komplekts darbam ar programmaparatūru, taustiņi, kurus redzēsit attēlā zemāk.

Programmas saskarne

Loga apakšā ir apgabals informācijas parādīšanai par projektu, koda statusu, programmaparatūru un kļūdu klātbūtni.


Arduino IDE programmēšanas pamati

Koda sākumā jums jādeklarē mainīgie un jāpievieno papildu bibliotēkas, ja tādas pastāv, tas tiek darīts šādi:

# iekļaut biblioteka.h; // savienojiet bibliotēku ar nosaukumu “Biblioteka.h”

#define peremennaya 1234; // Deklarējiet mainīgo ar vērtību 1234

Komanda Define ļauj kompilatoram izvēlēties mainīgā veidu, bet jūs to varat iestatīt manuāli, piemēram, vesels skaitlis int vai peldoša komata pludiņš.

int led = 13; // izveidoja mainīgo “led” un piešķīra tam vērtību “13”

Programma var noteikt tapas stāvokli kā 1 vai 0. 1 ir loģiska vienība, ja pin 13 ir 1, tad tās fiziskās kājas spriegums būs vienāds ar mikrokontrollera barošanas spriegumu (arduino UNO un Nano - 5 V).

Digitālais signāls tiek ierakstīts, izmantojot komandu digitalWrite (tapa, vērtība), piemēram:

digitalWrite (vadīts, augsts); // uzrakstiet vienību, lai piespiestu 13 (mēs to paziņojām iepriekš) žurnālā. Vienības.

Kā jūs varat saprast, piekļuvei ostām ir jābūt ar numuriem uz tāfeles, atbilstošais skaitlis. Šis ir piemērs, kas līdzīgs iepriekšējam kodam:

digitalWrite (13, augsts); // iestatiet 13. tapu uz vienu

Bieži vien pieprasīto laika kavēšanās funkciju izsauc komanda kavēšanās (), kuras vērtība tiek iestatīta milisekundēs, mikrosekundi tiek sasniegti, izmantojot

kavēšanāsMicroseconds () Kavēšanās (1000); // mikrokontrollers gaidīs 1000 ms (1 sekundi)

Porta iestatījumi ievadei un izvadei tiek iestatīti funkcijā void setup {}, izmantojot komandu:

Nederīga iestatīšana () {

pinMode (NOMERPORTA, OUTPUT / INPUT); // argumenti - mainīgais nosaukums vai porta numurs, ievade vai izvade, no kuras izvēlēties

}

Nederīga cilpa {}


Pirmās Blink programmas izpratne

Kā sava veida “sveiki, pasaule” mikrokontrolieriem ir LED mirgošanas programma, analizēsim tās kodu:

Sākumā ar komandu pinMode mēs mikrokontrolleram teicām, lai izejai būtu piestiprināts ports ar LED.Jūs jau esat pamanījis, ka kods nedeklarē mainīgo “LED_BUILTIN”, fakts ir tāds, ka Uno, Nano un citās rūpnīcas plāksnēs iebūvētais LED ir savienots ar 13. tapu un ir pielodēts pie tāfeles. Jūs to varat izmantot norādei savos projektos vai vienkāršākai mirgojošo programmu pārbaudei.

Tālāk mēs iestatām izeju, kurai LED ir pielodēts, līdz vienotībai (5 V), nākamā rinda liek MK gaidīt 1 sekundi un pēc tam LED_BUILTIN tapu uz nulli, nogaida sekundi un programma atkārtojas aplī, tāpēc, kad LED_BUILTIN ir 1 - gaismas diode ( un jebkura cita ar portu savienota krava) tiek ieslēgta, kad pie 0 tiek izslēgta.

Vai viss darbojas un vai viss ir skaidrs? Tad pārejiet tālāk!



Mēs nolasām vērtību no analogā porta un izmantojam nolasītos datus

Atmega328 AVR mikrokontrolleram ir iebūvēts 10 bitu pārveidotājs no analogā uz ciparu. 10 bitu ADC ļauj nolasīt sprieguma vērtību no 0 līdz 5 voltiem ar soli 1/1024 no visa signāla amplitūdas diapazona (5 V).

Lai tas būtu skaidrāks, apsveriet situāciju, pieņemsim, ka sprieguma vērtība pie analogās ieejas ir 2,5 V, tad mikrokontrollers nolasa vērtību no tapas "512", ja spriegums ir 0 - "0" un ja 5 V - (1023). 1023 - jo skaits iet no 0, t.i. 0, 1, 2, 3 utt. līdz 1023 - kopā 1024 vērtības.

Kā tas izskatās kodā, kā piemēru izmantojot standarta skici “analogInput”

int sensorsPin = A0;

int ledPin = 13;

int sensorsValue = 0;

Nederīga iestatīšana () {

pinMode (ledPin, OUTPUT);

}

tukšs cilpa () {

sensorValue = analogRead (sensorPin);

digitalWrite (ledPin, HIGH);

kavēšanās (sensorValue);

digitalWrite (ledPin, LOW);

kavēšanās (sensorValue);

}

Potenciometra pieslēguma shēma Arduino pēc analoģijas ir centrālā izeja, kuru var savienot ar jebkuru analogo ieeju

Potenciometra pieslēguma shēma Arduino pēc analoģijas ir centrālā izeja, kuru var savienot ar jebkuru analogo ieeju.

Deklarēt mainīgos:

  • Ledpin - patstāvīgi piešķir izejai tapu ar iebūvētu gaismas diodi un piešķir individuālu nosaukumu;

  • sensorsPin - analogā ieeja, kas attiecīgi iestatīta atbilstoši marķējumam uz tāfeles: A0, A1, A2 utt .;

  • sensorValue - mainīgais vesela skaitļa nolasīšanas vērtības saglabāšanai un turpmākam darbam ar to.

Kods darbojas šādi: sensorValue saglabā analogo vērtību, kas nolasīta ar sensorPin (komanda analogRead). - šeit darbs ar analogo signālu beidzas, tad viss ir kā iepriekšējā piemērā.

Mēs uzrakstām vienību ledPin, LED iedegas un jāgaida laiks, kas vienāds ar sensorValue vērtību, t.i. no 0 līdz 1023 milisekundēm. Izslēdziet gaismas diodi un pagaidiet vēlreiz šo laika periodu, pēc kura kods atkārtojas.

Tādējādi ar potenciometra novietojumu mēs iestatām gaismas diodes mirgošanas frekvenci.


Arudino kartes funkcija

Ne visas izpildmehānismu funkcijas (es nezinu nevienu) atbalsta “1023” kā argumentu, piemēram, servo ierobežo griešanās leņķis, tas ir, servodzinēja puse apgriezienu (180 grādi) (puse apgriezienu), funkcijas maksimālais arguments ir “180”.

Tagad par sintakse: karte (vērtība, kuru mēs tulkojam, ir minimālā ieeja, maksimālā ieeja, minimālā izeja, maksimālā izvade).

Kodā tas izskatās šādi:

(karte (analogRead (pods), 0, 1023, 0, 180));

Mēs nolasām potenciometra (analogRead (pot)) vērtību no 0 līdz 1023, un izejā mēs iegūstam skaitļus no 0 līdz 180

Vērtību kartes vērtības:

  • 0=0;

  • 1023=180;

Praksē mēs to piemērojam viena un tā paša servo koda darbībai, apskatiet kodu ar Arduino IDE, ja uzmanīgi izlasāt iepriekšējās sadaļas, tas neprasa skaidrojumu.

Un savienojuma shēma.

Elektroinstalācijas shēma

Secinājumi Arduino ir ļoti ērts rīks, lai iemācītos strādāt ar mikrokontrolleriem. Un, ja jūs izmantojat tīru C AVR vai, kā to dažreiz sauc par “Pure C”, jūs ievērojami samazināsit koda svaru un vairāk ievietosities mikrokontrollera atmiņā, kā rezultātā jūs iegūsit izcilu rūpnīcā izgatavotu atkļūdošanas plati ar USB programmaparatūru.

Arduino iesācējiem

Autora viedoklis:

Man patīk arduino. Žēl, ka daudzi pieredzējuši mikrokontrolleru programmētāji to nepamatoti kritizē, ka tas ir pārāk vienkāršots. Principā tiek vienkāršota tikai valoda, bet neviens neliek to izmantot, kā arī jūs varat mirgot mikrokontrolleru caur ICSP savienotāju un aizpildīt vēlamo kodu bez bootloader, kas jums nav nepieciešams.

Tiem, kas vēlas spēlēt ar elektroniku, kā progresīvam konstruktoram, tas ir lieliski piemērots, taču pieredzējušiem programmētājiem noderēs arī tāfele, kurai nav nepieciešama montāža!

Lai iegūtu papildinformāciju par Arduino un tā izmantošanas iespējām dažādās shēmās, skatiet e-grāmatu -Arduino manekeniem. Ilustrēts praktiskais ceļvedis.

Skatīt arī vietnē e.imadeself.com:

  • Arduino nolasīšanas un kontroles metodes I / O portiem
  • Kuru Arduino dēli izvēlēties
  • AVR mikrokontrolleru veidi un izvietojums
  • Mikrokontrolleru tālvadības pults: IR tālvadības pults, Arduino, ESP8266, 433 ...
  • Analogo sensoru pievienošana Arduino, lasīšanas sensori

  •  
     
    Komentāri:

    # 1 rakstīja: Elektromagna | [citāts]

     
     

    Kādu literatūru par programmēšanas koda studēšanu jūs iesakāt?

     
    Komentāri:

    # 2 rakstīja: Andrejs | [citāts]

     
     

    ElektromagnaUlli Sommers. Arduino / Freeduino mikrokontrolleru padomes programmēšana, Džeremijs Blūms. Mēs studējam Arduino. Rīki un paņēmieni tehniskajai maģijai, Džons Boksels. Mēs studējam Arduino. 65 projekti, ko dari pats. Grāmatas par Arduino par ozonu: e.imadeself.com/arduino_books.php

     
    Komentāri:

    # 3 rakstīja: Viktors | [citāts]

     
     

    Ļoti interesants un aizraujošs materiāls, paldies!

     
    Komentāri:

    # 4 rakstīja: Urāls | [citāts]

     
     

    Paldies par informāciju, funkcija "karte" bija ļoti parocīga, es prātoju, kā apbraukt, tikai sāku mācīties rotaļlietas vietnē Arduino.

     
    Komentāri:

    # 5 rakstīja: Dima | [citāts]

     
     

    Kaut ko neatrodu arduino vairogiem, lai tos koplietotu vietnē mil-std-1553b, kaut arī kompjūteru autobusiem - kaudzēm, ļoti populāra saskarne. Kule kur var meklēt-pirkt.

    p.s. raksta datums netiek rādīts - varbūt viņai ir 10 gadu un viņai jau nevajadzētu rakstīt komentārus?

     
    Komentāri:

    # 6 rakstīja: Eremino | [citāts]

     
     

    Kā veikt ieejas signāla atkārtotāju uz Arduino 4 vai jebkuram skaitam izeju.

    Līdzīgi ir ar 4 ieejas kanāliem līdz 16 izejas kanāliem. Šajā gadījumā katrā ieejas kanālā vienlaicīgi jāpārslēdz ieeja uz 4 izejām.

     
    Komentāri:

    # 7 rakstīja: Oļegs | [citāts]

     
     

    Puiši, sakiet man, kur jūs iemācījāties programmēt? Es pārskatīju daudz informācijas, un neviens skaidri neuzrakstīja. Šeit visa informācija nav paredzēta iesācējiem, tiešām daudz kas nav skaidrs, nepietiekams novērtējums. Ir uzrakstīts ļoti daudz vārdu, par kuriem nav vārdu, piemēram, autors raksta sākumā jums ir jāpaziņo par bibliotēku un jāievada #include biblioteka.h; // bet par šo vārdu viņš neko nerakstīja # iekļaujiet kāpēc ir iespējams to visu saprast. Man jau trūkst pacietības, neviens nevar izskaidrot normāli un izskaidrot, tāpēc, kas šeit notiktu, tas ir jāraksta. Nu, protams, tas ir nulle, bet es cenšos lasīt, neko nesaprotamu neredzu, kas neizskaidro daudz lieku. Un es varu teikt, ka es neesmu stulbs muļķis, es varu salabot gandrīz jebkuru elektroniku, tas ir, es draudzējos ar galvu, bet es to nesaprotu, jo viņi raksta tos, kas zina, bet aizmirsa par niansēm, jo ​​paši to iedziļinājās.