Категорије: Истакнути чланци » Практична електроника
Број прегледа: 67360
Коментари на чланак: 7

Повезивање и програмирање Ардуино-а за почетнике

 

Да ли се проучавање микроконтролера чини компликовано и неразумљиво? Прије појаве Арудина то заиста није било лако и захтијевао је одређени сет програмера и друге опреме.


Шта је Ардуино?

Ово је врста електронског конструктора. Почетни циљ пројекта је омогућити људима да лако науче како програмирати електроничке уређаје, истовремено посвећујући минимално време електронском делу.

Састављање најсложенијих кругова и спајање плоча може се извршити без лемилице, и то уз помоћ скакача са одвојивим везама "отац" и "мајка". На овај начин се могу повезати и прилози и картице за проширење, што се у лексикону ардуиниста једноставно назива „штитници“.

Шта је Ардуино?

Шта је прва Ардуино плоча купила за новорођенче?

Основна и најпопуларнија табла се сматра Ардуино уно. Ова накнада подсећа на кредитну картицу. Прилично велико. Већина штитника који се продају је савршена за њу. На плочи су утичнице за повезивање спољних уређаја.

Ардуино уно

У домаћим продавницама за 2017. годину његова цена износи око 4-5 долара. На модерним моделима Атмега328 је њено срце.

Ардуино уно

Ардуино декодирање слике плоче и функције сваког пина, Ардуино УНО пиноут

Микроконтролер на овој плочи је дугачки чип у ДИП28 пакету, што указује да има 28 ногу.

Следећа најпопуларнија табла кошта скоро два пута јефтиније од претходне - 2-3 долара. Ово је плоча Ардуино нано. Стварне плоче гради исти Атмега328, функционално су сличне УНО-у, постоје разлике у величинама и одговарајуће решење са УСБ-ом, више о томе касније. Друга разлика је у томе што су предвиђени утикачи за спајање уређаја на плочу, у облику игала.

Ардуино нано

Број пинова (ногу) на овој плочи је исти, али можете приметити да је микроконтролер направљен у компактнијем ТКФП32 пакету, АДЦ6 и АДЦ7 су додани у футроли, док остале две „додатне“ ноге дуплирају магистралу. Њене димензије су прилично компактне - отприлике величине палца ваше руке.

Аруино нано пиноут 

Трећа најпопуларнија табла је Ардуино Про Мини, нема УСБ прикључак за повезивање са рачунаром, рећи ћу вам како да комуницирате нешто касније.

Поређење величине Ардуино Нано и Про Мини

Поређење величине Ардуино Нано и Про Мини

Ово је најмања матична плоча од свих разматраних, иначе је слична претходној две, а Атмега328 је и даље њено срце. Нећемо разматрати остале плоче, јер је ово чланак за почетнике, а поређење одбора је тема посебног чланка.

Ардуино Про Мини пиноут, у горњем делу, дијаграм УСБ-УАРТ везе, пин "ГРН" - прикључен је на круг ресетовања микроконтролера, може се назвати другачије, за што ћете касније морати да сазнате.

Резиме:

Ако је УНО погодан за израду прототипа, онда су Нано и Про Мини прикладни за финалне верзије вашег пројекта, јер заузимају мало простора.

Ардуино за почетнике

Како повезати Ардуино са рачунаром?

Ардуино Уно и Нано повезују се с рачунаром преко УСБ-а. У исто време, нема хардверске подршке за УСБ порт, овде се користи решење конверзије нивоа, обично називано УСБ-то-Сериал или УСБ-УАРТ (рс-232). Истовремено се у микроконтролер убацује посебан Ардуино боотлоадер који омогућава блиц на овим магистралама.

У Ардуино Уно-у, ова лигатура је имплементирана на микроконтролеру са УСБ подршком - АТмега16У2 (АТ16У2). Испада да је додатни микроконтролер на плочи потребан за бљескање главног микроконтролера.

У Ардуино Нано-у ово имплементира ФТ232Р чип, или његов аналогни ЦХ340. Ово није микроконтролер - то је претварач нивоа, ова чињеница олакшава састављање Ардуино Нано-а од нуле властитим рукама.

Обично се управљачки програми аутоматски инсталирају када се повеже Ардуино плоча. Међутим, када сам купио кинеску копију Ардуино Нано-а, уређај је препознат, али није радио, на претварачу је залепљена округла налепница са подацима о датуму пуштања, не знам да ли је то намерно направљено, али након што сам је огулио видео сам ознаку ЦХ340.

Прије тога се с тим нисам сусрео и мислио сам да су сви УСБ-УАРТ претварачи монтирани на ФТ232, морао сам преузети управљачке програме, лако их је пронаћи по захтјеву „Ардуино цх340 управљачког програма“. Након једноставне инсталације - функционисало је!

Кроз исти УСБ порт може се напајати и микроконтролер, тј. ако га повежете са адаптером са мобилног телефона, ваш систем ће радити.


Шта да радим ако моја плоча нема УСБ?

Ардуино Про Мини је мањи. То је постигнуто уклањањем УСБ прикључка за фирмвер и истог УСБ-УАРТ конвертера. Стога се мора купити засебно. Најједноставнији конвертор на ЦХ340 (најјефтинији), ЦПЛ2102 и ФТ232Р, за продају кошта од 1 УСД.

Приликом куповине обратите пажњу на који је напон дизајниран овај адаптер. Про мини је доступан у верзијама 3.3 и 5 В, на претварачима се често налазе скакачи за промену напајања.

Ардуино Про Мини

Када трепери Про Мини, непосредно пре него што се покрене, морате кликнути РЕСЕТ, међутим, у претварачима с ДТР то не требате чинити, дијаграм повезивања на слици испод.

Дијаграм везе за фирмвер

Њима се придружују посебни терминали "Мама-Мама" (женска-женска).

Ардуино конекција

Заправо, све везе могу се успоставити помоћу таквих терминала (Дупонт), обје су са двије стране утичницама, и утикачима, и на једној страни утичнице, и на другој утикачу.

Прикључак

Како написати програме за Ардуино?

За рад са скицама (назив управљачког софтвера је на језику ардуино-а) постоји посебно интегрисано окружење за развој Ардуино ИДЕ-а, можете га бесплатно преузети са званичне веб странице или са било којег тематског ресурса, обично нема проблема са његовом инсталирањем.

Програм за Ардуино

Овако изгледа програмско сучеље. Програме можете писати на поједностављеном Ц АВР језику посебно развијеном за ардуино, у ствари то је скуп библиотека званих Виринг, као и у чистом Ц АВР. Његова употреба олакшава код и убрзава његов рад.

На врху прозора се налази познати мени у којем можете отворити датотеку, подешавања, одабрати плочу са којом радите (Уно, Нано и многи, многи други), као и отворити пројекте са готовим примерима кода. Испод је сет дугмади за рад са фирмвером, тастери које ћете видети на доњој слици.

Програмски интерфејс

На дну прозора је подручје за приказивање информација о пројекту, статусу кода, управљачког софтвера и присуству грешака.


Основе програмирања Ардуино ИДЕ

На почетку кода морате декларирати променљиве и повезати додатне библиотеке, ако оне постоје, то се ради на следећи начин:

#инцлуде библиотека.х; // повезати библиотеку са називом „Библиотека.х“

#дефине переменнаиа 1234; // Прогласите променљиву вредност 1234

Наредба Дефине омогућава компајлеру да одабере тип променљиве, али можете је поставити ручно, на пример, цео инт или флоат са помичном тачком.

инт лед = 13; // створио променљиву „лед“ и доделио јој вредност „13“

Програм може одредити стање пин-а као 1 или 0. 1 је логична јединица, ако је пин 13 1, тада ће напон на његовој физичкој нози бити једнак напону напајања микроконтролера (за ардуино УНО и Нано - 5 В)

Дигитални сигнал се снима помоћу команде дигиталВрите (пин, вредност), на пример:

дигиталВрите (лед, висок); // напишите јединицу у записник 13 (објавили смо горе). Јединице.

Као што можете разумјети, приступ портовима је нумерирањем на плочи, одговарајућом сликом. Ево примера сличног претходном коду:

дигиталВрите (13, високо); // поставите пин 13 на један

Често се тражена функција временског кашњења назива наредбом делаи (), чија се вредност поставља у милисекундама, микросекунде се постижу употребом

делаиМицросецондс () Кашњење (1000); // микроконтролер ће чекати 1000 мс (1 секунда)

Подешавања улаза и излаза се подешавају у функцији подешавања празнине {}, помоћу команде:

воид сетуп () {

пинМоде (НОМЕРПОРТА, ИЗЛАЗ / УЛАЗ); // аргументи - име променљиве или број порта, улаз или излаз за избор

}

Воид петља {}


Разумевање првог програма Блинк

Као врста „Здраво, свет“ за микроконтролере, постоји ЛЕД бљескалица програм, анализирајмо његов код:

У почетку смо помоћу команде пинМоде рекли микроконтролеру да на излазу додијели порт са ЛЕД-ом.Већ сте приметили да код не декларише променљиву „ЛЕД_БУИЛТИН“, чињеница је да је у Уно, Нано и другим фабричким плочама уграђени ЛЕД повезан на пин 13 и лемљен на плочу. Можете га користити за индикацију у својим пројектима или за најједноставнију проверу ваших трепери програма.

Затим постављамо излаз на који је ЛЕД лемљен до јединства (5 В), следећи ред чини да МК причека 1 секунду, а затим постави пин ЛЕД_БУИЛТИН на нулу, причека секунду и програм се понови у кругу, па када је ЛЕД_БУИЛТИН 1 - ЛЕД ( и свако друго оптерећење прикључено на порт) је укључено, када је на 0 искључено.

Да ли све ради и да ли је све јасно? Онда крени даље!



Читамо вриједност с аналогног порта и користимо очитане податке

Атмега328 АВР микроконтролер има уграђен 10-битни аналогно-дигитални претварач. 10-битни АДЦ омогућава очитавање напонске вредности од 0 до 5 волти, у корацима од 1/1024 целокупног распона амплитуде сигнала (5 В).

Да би било јасније, размотрите ситуацију, претпоставимо да је вредност напона на аналогном улазу 2,5 В, тада ће микроконтролер очитати вредност са пин "512" ако је напон 0 - "0", а ако је 5 В - (1023). 1023. - јер бројање креће од 0, тј. 0, 1, 2, 3, итд. до 1023. - укупно 1024 вредности.

Ево како то изгледа у коду, користећи стандардну скицу "аналогИнпут" као пример

инт сенсорПин = А0;

инт ледПин = 13;

инт сенсорВалуе = 0;

воид сетуп () {

пинМоде (ледПин, ОУТПУТ);

}

воид лооп () {

сенсорВалуе = аналогРеад (сенсорПин);

дигиталВрите (ледПин, ХИГХ);

кашњење (сенсорВалуе);

дигиталВрите (ледПин, ЛОВ);

кашњење (сенсорВалуе);

}

Шема повезивања потенциометра на Ардуино, по аналогији, централни излаз на који можете да се повежете на било који аналогни улаз

Шема повезивања потенциометра за Ардуино, по аналогији, централни излаз на који можете да се повежете на било који аналогни улаз.

Декларирање променљивих:

  • Ледпин - независно доделите пин излазном уграђеном ЛЕД-у на излазу и наведите појединачно име;

  • сенсорПин - аналогни улаз, подешен према ознакама на плочи: А0, А1, А2, итд .;

  • сенсорВалуе - променљива за смештање целе вредности читања и даљи рад с њом.

Код ради овако: сенсорВалуе спрема аналогну вриједност очитану са сенсорПин (аналогРеад наредба). - овде се рад са аналогним сигналом завршава, тада је све као у претходном примеру.

Јединицу пишемо у ледПин, ЛЕД се укључује и чекамо вријеме једнако вриједности сенсВалуе, тј. од 0 до 1023 милисекунди. Искључите ЛЕД и причекајте поново овај период, након чега се код понавља.

Дакле, позицијом потенциометра поставили смо трептајућу фреквенцију ЛЕД-а.


Функција мапе за Арудино

Нису све функције покретача (не знам ниједну) подржавају „1023“ као аргумент, на пример, серво погон је ограничен углом ротације, то је за пола обртаја (180 степени) (пола обртаја) сервомотора, а максимални аргумент функције је „180“

Сада о синтакси: мап (вредност коју преводимо је минимални унос, максимални унос, минимални излаз, максималан излаз).

У коду изгледа овако:

(мапа (аналогРеад (пот), 0, 1023, 0, 180));

Читамо вриједност с потенциометра (аналогРеад (пот)) од 0 до 1023, а на излазу добивамо бројеве од 0 до 180

Вредности мапе вредности:

  • 0=0;

  • 1023=180;

У пракси то примењујемо на код истог серво-а, погледајте код са Ардуино ИДЕ, ако пажљиво прочитате претходне одељке, онда то не захтева објашњење.

И дијаграм везе.

Дијаграм ожичења

Закључци Ардуино је веома згодан алат за учење рада са микроконтролерима. А ако користите чисти Ц АВР, или како се то понекад назива „Пуре Ц“, значајно ћете смањити тежину кода и више се уградити у меморију микроконтролера, као резултат, добит ћете одличну фабрички направљену плочу за отклањање грешака са УСБ фирмваре-ом.

Ардуино за почетнике

Мишљење аутора:

Волим ардуино. Штета је што многи искусни програмери микроконтролера критикују критику да је превише поједностављена. У принципу, само је језик поједностављен, али нико вас не приморава да га употребљавате, а ви можете и да микроконтролер пребаците преко ИЦСП конектора и попуните жељени код без икаквих програма за покретање система који вам нису потребни.

За оне који се желе играти с електроником, као напредни конструктор је савршен, али за искусне програмере плоча која не захтијева монтажу такође ће бити корисна!

За више информација о Ардуино-у и карактеристикама његове употребе у разним шемама погледајте е-књигу -Ардуино за лутке. Илустровани практични водич.

Погледајте и на електрохомепро.цом:

  • Методе за читање и управљање Ардуино И / О портовима
  • Коју Ардуино плочу да изаберете
  • Врсте и распоред АВР микроконтролера
  • Даљински управљач микроконтролера: ИР даљинац, Ардуино, ЕСП8266, 433 ...
  • Спајање аналогних сензора на Ардуино, очитавање сензора

  •  
     
    Коментари:

    # 1 написао: Елецтромаг | [цитат]

     
     

    Коју литературу о проучавању програмског кода препоручујете?

     
    Коментари:

    # 2 написао: Андреи | [цитат]

     
     

    ЕлецтромагУлли Соммер. Програмирање плоче микроконтролера Ардуино / Фреедуино, аутор Јереми Блоом. Ми проучавамо Ардуино. Алати и технике за техничку магију, Јохн Бокелл. Ми проучавамо Ардуино. 65 уради сам пројеката. Књиге о Ардуину о озону: елецтрохомепро.цом/ардуино_боокс.пхп

     
    Коментари:

    # 3 написао: Вицтор | [цитат]

     
     

    Веома занимљив и узбудљив материјал, хвала!

     
    Коментари:

    # 4 је написао / ла: Урал | [цитат]

     
     

    Хвала на информацијама, функција "мапе" била је веома корисна, питала сам се како да се снађем, тек што сам почела да учим играчке на Ардуину.

     
    Коментари:

    # 5 написао: Дима | [цитат]

     
     

    Нешто не налазим за ардуино штитнике за дељење на мил-стд-1553б, мада за компјутерске аутобусе - хрпе, врло популарно сучеље. Покуцајте где можете да претражите-купите.

    п.с. датум чланка се не приказује - можда има 10 година и већ не би требала писати коментаре?

     
    Коментари:

    # 6 написао: Еремино | [цитат]

     
     

    Како направити репетиторе улазног сигнала на Ардуино за 4 или било који број излаза.

    Слично је и са 4 улазна канала до 16 излазних канала. У том случају требате пребацити улаз на било која 4 излаза истовремено на сваком улазном каналу.

     
    Коментари:

    # 7 написао: Олег | [цитат]

     
     

    Људи, реците ми, где сте научили да програмирате? Прегледао сам пуно информација и нико није јасно написао. Овде све информације нису за почетнике, много тога није јасно, подцјењивачки. Написано је пуно речи о којима није ни једна реч, на пример, аутор пише, на почетку је потребно да декларишете библиотеку и унесете #инцлуде библиотека.х; // али о овој речи није написао ништа # укључиво зашто је могуће све то разумети. Већ ми недостаје стрпљења, нико не може објаснити на нормалан начин, и објаснити шта би се овде десило, потребно је ово написати. Па, наравно да је нула, али покушавам да прочитам, не видим ништа неразумљиво, што не објашњава много сувишног. И могу рећи да нисам глупа будала, могу да поправим готово било коју електронику, тј. Да сам пријатељ са главом, али не разумем то јер их пишу они који знају, али су заборавили на нијансе.