- Разумевање АДЦ модула:
- Кружни дијаграм:
- Програмирање вашег МСП430 за АДЦ:
- Тестирање вашег резултата!
Једна уобичајена карактеристика која се користи у скоро свакој уграђеној апликацији је АДЦ модул (аналогни у дигитални претварач). Ови аналогно-дигитални претварачи могу очитавати напон са аналогних сензора као што су сензор температуре, сензор нагиба, тренутни сензор, Флек сензор и још много тога. Дакле, у овом упутству ћемо научити како да користим АДЦ у МСП430Г2 за читање аналогних напона користећи Енергиа ИДЕ. Повезаћемо мали потенциометар на МСП плочу и напајати променљивим напоном аналогни пин, очитати напон и приказати га на серијском монитору.
Разумевање АДЦ модула:
Верујте ми, тешко да би требало 10 минута да се повежете и програмирате МСП430Г2 да чита аналогни напон. Али, проведимо неко време у разумевању АДЦ модула на МСП табли како бисмо га могли ефикасно користити у свим нашим предстојећим пројектима.
Микроконтролер је дигитални уређај, што значи да може да разуме само 1 и 0. Али у стварном свету, готово све као што су температура, влага, брзина ветра итд. Су аналогне природе. Да би ступио у интеракцију са овим аналогним променама, микроконтролер користи модул назван АДЦ. Доступно је много различитих типова АДЦ модула, онај који се користи у нашем МСП-у је САР 8-канални 10-битни АДЦ.
Сукцесивно приближавање (САР) АДЦ: САР АДЦ ради уз помоћ упоређивача и неких логичких разговора. Овај тип АДЦ користи референтни напон (који је променљив) и упоређује улазни напон са референтним напоном помоћу упоређивача, а разлика, која ће бити дигитални излаз, чува се из најзначајнијег бита (МСБ). Брзина поређења зависи од фреквенције такта (Фосц) на којој МСП ради.
10-битна резолуција: Овај АДЦ је 8-канални 10-битни АДЦ. Овде израз 8 канал подразумева да постоји 8 АДЦ пинова помоћу којих можемо мерити аналогни напон. Термин 10-бит подразумева резолуцију АДЦ-а. 10-бит значи 2 у степен десет (2 10) што је 1024. Ово је број корака узорка за наш АДЦ, па ће опсег наших вредности АДЦ бити од 0 до 1023. Вредност ће се повећати од 0 до 1023 на основу вредности напона по кораку, који се може израчунати помоћу доње формуле
Напомена: Подразумевано у Енергији референтни напон биће постављен на Вцц (~ 3в), референтни напон можете да промените помоћу опције аналогРеференце () .
Такође проверите како повезати АДЦ са другим микроконтролерима:
- Како се користи АДЦ у Ардуино Уно?
- Повезивање АДЦ0808 са 8051 микроконтролером
- Коришћење АДЦ модула ПИЦ микроконтролера
- Водич за АДЦ за Распберри Пи
Кружни дијаграм:
У нашем претходном водичу већ смо научили како повезати ЛЦД са МСП430Г2, сада ћемо додати потенциометар на МСП430 да му испоручи променљиви напон и прикаже вредност напона на ЛЦД-у. Ако нисте свесни повезивања ЛЦД-а, вратите се на горњу везу и прочитајте је, јер ћу прескочити информације како бих избегао покајање. Комплетна електрична шема пројекта дата је у наставку.
Као што видите, овде се користе два потенциометра, један се користи за подешавање контраста ЛЦД-а, док други служи за напајање променљивог напона на плочи. У том потенциометру један крајњи крај потенциометра је повезан са Вцц, а други крај је повезан са масом. Средњи клин (плава жица) повезан је са клином П1.7. Овај пин П1.7 пружаће променљиви напон од 0В (уземљење) до 3,5В (Вцц). Зато морамо програмирати пин П1.7 да очитава овај променљиви напон и приказује га на ЛЦД-у.
У Енергији морамо знати којем аналогном каналу припада пин П1.7? То се може наћи упућујући на доњу слику
На десној страни можете видети пин П1.7, овај пин припада А7 (Цханнел 7). Слично томе, можемо пронаћи одговарајући број канала и за друге пинове. За читање аналогних напона можете користити било које пинове од А0 до А7. Овде сам изабрао А7.
Програмирање вашег МСП430 за АДЦ:
Програмирање вашег МСП430 за читање аналогног напона врло је једноставно. У овом програму ће се очитати аналог вредности и израчунати напон са том вредношћу, а затим оба приказати на ЛЦД екрану. Комплетан програм се може наћи на дну ове странице, у даљем тексту ја објашњавам програм у фрагментима ће вам помоћи да боље разумете.
Почињемо са дефинисањем ЛЦД пинова. Они дефинишу на који пин МСП430 су повезани ЛЦД пинови. Можете упутити везу како бисте били сигурни да су пинови повезани
#дефине РС 2 #дефине ЕН 3 #дефине Д4 4 #дефине Д5 5 #дефине Д6 6 #дефине Д7 7
Даље, укључујемо датотеку заглавља за ЛЦД екран. Ово позива библиотеку која садржи код како МСП треба да комуницира са ЛЦД-ом. Ова библиотека ће се подразумевано инсталирати у Енергиа ИДЕ, тако да се не морате трудити да је додате. Такође се уверите да се функција Ликуид Цристал позива са именима пинова која смо управо дефинисали горе.
#инцлуде
Унутар наше функције сетуп () дали бисмо само уводну поруку која ће се приказати на ЛЦД екрану. Не улазим много дубоко јер смо већ научили како да користимо ЛЦД са МСП430Г2.
лцд.бегин (16, 2); // Користимо ЛЦД екран 16 * 2 лцд.сетЦурсор (0,0); // Поставите курсор на 1. ред лцд.принт 1. колоне ("МСП430Г2553"); // Приказује уводну поруку лцд.сетЦурсор (0, 1); // подесимо курсор на 1. колону 2. ред лцд.принт ("- ЦирцуитДигест"); // Прикажемо уводну поруку
Коначно, унутар наше функције бесконачне петље () почињемо да читамо напон напајан на пин А7. Као што смо већ разговарали, микроконтролер је дигитални уређај и не може директно очитати ниво напона. Користећи САР технику ниво напона се пресликава од 0 до 1024. Те вредности се називају АДЦ вредности, да бисте добили ову АДЦ вредност, једноставно користите следећи ред
инт вал = аналогРеад (А7); // очитавање вредности АДЦ са пина А7
Овде се функција аналогРеад () користи за очитавање аналогне вредности пина, унутар ње смо одредили А7 пошто смо на пин П1.7 повезали променљиви напон. На крају ову вредност чувамо у променљивој која се назива „ вал “. Тип ове променљиве је цео број јер ћемо у ову променљиву сачувати само вредности у распону од 0 до 1024.
Следећи корак би био израчунавање вредности напона из вредности АДЦ. Да бисмо то урадили, имамо следеће формуле
Напон = (вредност АДЦ / резолуција АДЦ) * референтни напон
У нашем случају већ знамо да је АДЦ резолуција нашег микроконтролера 1024. Вредност АДЦ се такође налази у претходном реду и чува променљиву звану вал. Референтни напон је једнак напону на коме се микроконтролер послује. Када се МСП430 одбор поверед преко УСБ кабла онда је напон 3.6В. Такође можете измерити радни напон помоћу мултиметра преко Вцц и уземљеног пина на плочи. Дакле, горња формула се уклапа у наш случај као што је приказано доле
пловни напон = (пловак (вал) / 1024) * 3,6; // формуле за претварање вредности АДЦ у напон
Можда ћете бити збуњени с линијом флоат (вал). Ово се користи за претварање променљиве „вал“ из типа података „инт“ у „облик података“. Ова конверзија је потребна, јер само ако добијемо резултат вал / 1024 у флоат-у, можемо га помножити 3.6. Ако се вредност прими у целом броју, увек ће бити 0, а резултат ће такође бити нула. Једном када израчунамо АДЦ вредност и напон, преостаје само приказивање резултата на ЛЦД екрану, што се може учинити помоћу следећих редова
лцд.сетЦурсор (0, 0); // подесимо курсор на колону 0, ред 0 лцд.принт ("АДЦ Вал:"); лцд.принт (вал); // Приказивање вредности АДЦ лцд.сетЦурсор (0, 1); // подесимо курсор на колону 0, ред 1, лцд.принт ("Волтаге:"); лцд.принт (напон); // Приказ напона
Овде смо приказали вредност АДЦ у првом реду и вредност напона у другом реду. На крају дајемо кашњење од 100 милиона секунди и очистимо ЛЦД екран. То је била вредност која ће се ажурирати на сваких 100 мил.
Тестирање вашег резултата!
Коначно, долазимо до забавног дела, који тестира наш програм и поиграва се с њим. Само направите везе како је приказано на схеми кола. За повезивање сам користио малу плочицу, а за повезивање плоче са МСП430 користио сам краткоспојне жице. Кад су везе завршене, моје је изгледало овако доле.
Затим отпремите програм који је дат у наставку на плочу МСП430 преко Енергиа ИДЕ. Морали бисте да видите уводни текст на ЛЦД-у, ако не и прилагодите контраст ЛЦД-а помоћу потенциометра док не видите јасне речи. Такође, покушајте да притиснете тастер за ресетовање. Ако ствари функционишу онако како се очекује, требало би да видите следећи екран.
Сада промените потенциометар и требало би да видите како напон приказан на ЛЦД-у варира. Проверите да ли правилно меримо напон да бисмо то урадили, користите мултиметар за мерење напона у центру ПОТ-а и земље. Напон приказан на мултиметру треба да буде близу вредности приказане на ЛЦД-у, као што је приказано на доњој слици.
То је то, научили смо како мерити аналогни напон помоћу АДЦ плоче МСП430. Сада можемо да повежемо многе аналогне сензоре са нашом плочом за читање параметара у реалном времену. Надам се да сте разумели туториал и уживали сте га учити, ако имате било каквих проблема, обратите се у одељку за коментаре испод или путем форума. Ухватимо се у другом упутству за МСП430 са још једном новом темом.