- Потребне компоненте и подешавање хардвера
- Кружни дијаграм Нувотон Н76Е003 за очитавање аналогног напона
- Информације о ГПИО и аналогним пиновима у Н76Е003
- Информације о АДЦ периферној јединици у Н76Е003
- Програмирање Н76Е003 за АДЦ
- Трептање кода и излаза
Аналогно-дигитални претварач (АДЦ) је најчешће коришћена хардверска карактеристика микроконтролера. Узима аналогни напон и претвара га у дигиталну вредност. Будући да су микроконтролери дигитални уређаји и раде са бинарном цифром 1 и 0, он не може директно да обрађује аналогне податке. Дакле, АДЦ се користи за примање аналогног напона и његово претварање у његову еквивалентну дигиталну вредност коју микроконтролер може да разуме. Ако желите више о аналогно-дигиталном претварачу (АДЦ), можете да погледате чланак који је повезан.
У електроници су доступни различити сензори који пружају аналогни излаз, попут сензора за гас МК, сензора убрзања АДКСЛ335 итд. Дакле, помоћу аналогног у дигитални претварач, ти сензори могу бити повезани са јединицом микроконтролера. Такође можете погледати и друге туторијале наведене у наставку за употребу АДЦ-а са другим микроконтролерима.
- Како се користи АДЦ у Ардуино Уно?
- Повезивање АДЦ0808 са 8051 микроконтролером
- Коришћење АДЦ модула ПИЦ микроконтролера
- Водич за АДЦ за Распберри Пи
- Како се користи АДЦ у МСП430Г2 - Мерење аналогног напона
- Како се користи АДЦ у СТМ32Ф103Ц8
У овом упутству користићемо уграђену АДЦ периферну јединицу микроконтролера Н76Е003, па хајде да проценимо какву врсту хардверског подешавања требамо за ову апликацију.
Потребне компоненте и подешавање хардвера
Да бисмо користили АДЦ на Н76Е003, користићемо делилац напона помоћу потенциометра и очитавамо напон у распону од 0В-5,0В. Напон ће бити приказан на ЛЦД-у са карактером 16к2, ако сте нови са ЛЦД-ом и Н76Е003, можете да проверите како да повежете ЛЦД са Нувотон Н76Е003. Стога је главна компонента која је потребна за овај пројекат ЛЦД 16к2 карактера. За овај пројекат користићемо доње компоненте -
- Карактер ЛЦД 16к2
- 1к отпорник
- 50к потенциометар или трим пот
- Мало Бергових жица
- Мало прикључних жица
- Бреадбоард
Да не спомињем, осим горе наведених компоненти, потребан нам је развојни одбор заснован на микроконтролеру Н76Е003, као и Ну-Линк програмер. Такође је потребна додатна јединица напајања од 5 В, јер ЛЦД црпи довољно струје коју програмер није могао да пружи.
Кружни дијаграм Нувотон Н76Е003 за очитавање аналогног напона
Као што видимо на шеми, порт П0 се користи за везу повезану са ЛЦД-ом. Крајње лево приказана је веза са програмским интерфејсом. Потенциометар делује као делитељ напона и то се препознаје преко аналогног улаза 0 (АН0).
Информације о ГПИО и аналогним пиновима у Н76Е003
Слика испод илуструје ГПИО пинове доступне на јединици микроконтролера Н76Е003АТ20. Међутим, од 20 пинова, за везу повезану са ЛЦД-ом, користи се порт П0 (П0.0, П0.1, П0.2, П0.4, П0.5, П0.6 и П0.7). Аналогне иглице су означене ЦРВЕНОМ бојом.
Као што видимо, порт П0 има максимално аналогних пинова, али они се користе за ЛЦД комуникацију. Дакле, П3.0 и П1.7 су доступни као аналогни улазни пинови АИН1 и АИН0. Како овај пројекат захтева само један аналогни пин, за овај пројекат се користи П1.7 који је аналогни улазни канал 0.
Информације о АДЦ периферној јединици у Н76Е003
Н76Е003 пружа 12-битни САР АДЦ. Врло је добра карактеристика Н76Е003 што има врло добру резолуцију АДЦ-а. АДЦ има 8-каналне улазе у појединачном режиму. Повезивање АДЦ-а је прилично једноставно и једноставно.
Први корак је одабир улаза АДЦ канала. У микроконтролеру Н76Е003 доступни су 8-канални улази. Након одабира АДЦ улаза или И / О пинова, сви пинови морају бити подешени за правац у коду. Сви пинови који се користе за аналогни улаз су улазни пинови микроконтролера, тако да сви пинови морају бити постављени као режим само за улаз (висока импеданса). Они се могу подесити помоћу регистра ПкМ1 и ПкМ2. Ова два регистра постављају И / О режиме где к представља број порта (на пример, Порт П1.0 регистар ће бити П1М1 и П1М2, за П3.0 то ће бити П3М1 и П3М2 итд.) Конфигурација може види се на доњој слици-
Конфигурацију АДЦ-а врше два регистра АДЦЦОН0 и АДЦЦОН1. Опис регистра АДЦЦОН0 је приказан испод.
Прва 4 бита регистра од бита 0 до бита 3 користе се за подешавање избора АДЦ канала. Будући да користимо канал АИН0, избор ће бити 0000 за ова четири бита.
Шести и седми бит су најважнији. АДЦС је потребан да постави 1 за покретање АДЦ конверзије, а АДЦФ ће пружити информације о успешној АДЦ конверзији. За покретање АДЦ конверзије фирмвер га треба поставити на 0. Следећи регистар је АДЦЦОН1-
Регистар АДЦЦОН1 углавном се користи за АДЦ конверзију коју покрећу спољни извори. Међутим, за нормалне операције повезане са анкетирањем, првобитни АДЦЕН је потребан да постави 1 за укључивање АДЦ кола.
Даље, улаз АДЦ канала треба контролисати у регистру АИНДИДС где се дигитални улази могу одспојити.
Н означава бит канала (на пример, каналом АИН0 мораће се управљати помоћу првог бита П17ДИДС из АИНДИДС регистра). Дигитални улаз треба да буде омогућен, иначе ће читати као 0. Све су то основна подешавања АДЦ-а. Сада се може започети брисање АДЦФ-а и подешавање АДЦС-а, АДЦ конверзија. Претворена вредност ће бити доступна у следећим регистрима-
И
Оба регистра су 8-битна. Како АДЦ пружа 12-битне податке, АДЦРХ се користи као пун (8-битни), а АДЦРЛ као половина (4-битни).
Програмирање Н76Е003 за АДЦ
Кодирање одређеног модула сваки пут је ужурбан посао, па је тако обезбеђена једноставна, али моћна ЛЦД библиотека која ће бити врло корисна за ЛЦД повезивање 16к2 карактера са Н76Е003. ЛЦД библиотека 16к2 доступна је у нашем Гитхуб спремишту, које можете преузети са доње везе.
Преузмите ЛЦД библиотеку 16к2 за Нувотон Н76Е003
Молимо вас да имате библиотеку (клонирањем или преузимањем) и само укључите датотеке лцд.ц и ЛЦД.х у свој пројекат Кеил Н76Е003 ради лакше интеграције ЛЦД- а 16к2 у жељену апликацију или пројекат. Библиотека ће пружити следеће корисне функције повезане са приказом -
- Иницијализујте ЛЦД.
- Пошаљите команду на ЛЦД.
- Пишите на ЛЦД.
- Ставите низ у ЛЦД (16 знакова).
- Одштампајте знак слањем хексадецималне вредности.
- Померите дугачке поруке са више од 16 знакова.
- Штампајте целобројне бројеве директно на ЛЦД.
Кодирање за АДЦ је једноставно. У функцији подешавања Енабле_АДЦ_АИН0; користи се за подешавање АДЦ-а за АИН0 улаз. Ово је дефинисано у датотеци.
#дефине Енабле_АДЦ_АИН0 АДЦЦОН0 & = 0кФ0; П17_Инпут_Моде; АИНДИДС = 0к00; АИНДИДС- = СЕТ_БИТ0; АДЦЦОН1- = СЕТ_БИТ0 // П17
Дакле, горња линија поставља пин као улаз и конфигурише АДЦЦОН0, АДЦЦОН1 регистар као и АИНДИДС регистар. Следећа функција ће очитати АДЦ из АДЦРХ и АДЦРЛ регистра, али са 12-битном резолуцијом.
унсигнед инт АДЦ_реад (воид) { регистер унсигнед инт адц_валуе = 0к0000; цлр_АДЦФ; сет_АДЦС; док (АДЦФ == 0); адц_валуе = АДЦРХ; адц_валуе << = 4; адц_валуе - = АДЦРЛ; ретурн адц_валуе; }
Бит се помера улево 4 пута и затим додаје променљивој података. У главној функцији, АДЦ чита податке и штампа се директно на екрану. Међутим, напон се такође претвара помоћу односа или односа између напона подељеног са вредношћу бита.
12-битни АДЦ ће пружити 4095 бит на 5.0В улазу. Тако се дели 5.0В / 4095 = 0.0012210012210012В
Дакле, 1 цифра промена битова биће једнака променама у 0,001В (приближно). То се ради у главној функцији приказаној доле.
воид маин (воид) { инт адц_дата; подесити(); лцд_цом (0к01); вхиле (1) { лцд_цом (0к01); лцд_цом (0к80); лцд_путс ("АДЦ подаци:"); адц_дата = АДЦ_реад (); лцд_принт_нумбер (адц_дата); напон = адц_дата * бит_то_волтаге_ратио; спринтф (стр_волтаге, "Волт:% 0.2фВ", напон); лцд_цом (0кЦ0); лцд_путс (стр_волтаге); Тимер0_Делаи1мс (500); } }
Подаци се претварају из вредности бита у напон и помоћу функције спринтф излаз се претвара у низ и шаље на ЛЦД.
Трептање кода и излаза
Код је вратио 0 упозорења и 0 грешака, а Кеил га је трептао помоћу подразумеване методе треперења, доњу трепћућу поруку можете видети. Ако су вам Кеил или Нувотон непознати, погледајте почетне кораке са микроконтролером Нувотон да бисте разумели основе и начин отпремања кода.
Ребуилд започео: Пројекат: тајмер Ребуилд циљ "Таргет 1 ' монтажу СТАРТУП.А51… компајлирате маин.ц… компајлирате лцд.ц… компајлирате Делаи.ц… повезивање… програм величина: подаци = 101,3 кдата = 0 цоде = 4162 стварање хексадецималне датотеке из „. \ Објецтс \ тимер"… ". \ Објецтс \ тимер" - 0 Грешке, 0 Упозорења. Време израде протекло: 00:00:02 Учитајте "Г: \\ н76Е003 \\ Дисплаи \\ Објекти \\ тајмер" Фласх Ерасе Готово. Фласх писање готово: програмирано 4162 бајта. Фласх Верифи Готово: верификовано 4162 бајта. Фласх Лоад је завршен у 11:56:04
На доњој слици је приказан хардвер повезан у извор напајања помоћу једносмерног адаптера, а на екрану је приказан излазни напон подешен потенциометром с десне стране.
Ако окренемо потенциометар, напон дат АДЦ пину такође ће се променити и можемо приметити АДЦ вредност и аналогни напон приказане на ЛЦД-у. Можете погледати видео у наставку за комплетну радну демонстрацију овог водича.
Надам се да вам се свидео чланак и научили сте нешто корисно, ако имате питања, оставите их у одељку за коментаре испод или можете користити наше форуме за постављање других техничких питања.