- Шта је ПВМ сигнал?
- Како претворити ПВМ сигнал у аналогни напон?
- Кружни дијаграм:
- Програмирање МСП за ПВМ сигнал:
- Контрола осветљености ЛЕД-а помоћу ПВМ-а:
Овај водич је део серије водича за МСП430Г2 ЛаунцхПад у којима учимо да користимо МСП430Г2 ЛаунцхПад компаније Текас Инструментс. До сада смо научили основе плоче и покрили како читати аналогни напон, повезати ЛЦД са МСП430Г2 итд. Сада настављамо са следећим кораком учења о ПВМ-у у МСП430Г2. То ћемо урадити контролишући осветљеност ЛЕД-а променом потенциометра. Дакле, потенциометар ће бити причвршћен на аналогни пин МСП430 да би очитао његов аналогни напон, па је препоручљиво знати да прођете кроз АДЦ упутство пре него што наставите.
Шта је ПВМ сигнал?
Модулација ширине импулса (ПВМ) је дигитални сигнал који се најчешће користи у управљачким круговима. Овај сигнал је постављен на високу (3,3 в) и ниску (0 в) у унапред дефинисаном времену и брзини. Време током којег сигнал остаје висок назива се „он тиме“, а време током којег сигнал остаје низак се назива „време искључења“. Постоје два важна параметра за ПВМ о којима се говори у наставку:
Радни циклус ПВМ:
Проценат времена у којем ПВМ сигнал остаје ВИСОК (на време) назива се радни циклус. Ако је сигнал увек УКЉУЧЕН, он је у 100% радном циклусу, а ако је увек искључен, то је 0% радног циклуса.
Радни циклус = Вријеме УКЉУЧЕЊА / (Вријеме УКЉУЧИВАЊА + Вријеме искључивања)
Учесталост ПВМ-а:
Учесталост ПВМ сигнала одређује колико брзо ПВМ завршава један период. Један период је комплетан УКЉУЧЕН и ИСКЉУЧЕН ПВМ сигналом као што је приказано на горњој слици. У нашем упутству фреквенција ће бити 500Хз, јер је то подразумевана вредност постављена од стране Енергиа ИДЕ.
Постоји мноштво апликација за ПВМ сигнале у реалном времену, али да бисте добили идеју, ПВМ сигнал се може користити за управљање серво моторима, а такође се може претворити у аналогни напон који може контролисати осветљеност осветљености ЛЕД диоде. Научимо мало о томе како се то може учинити.
Ево неколико примера ПВМ-а са другим микроконтролером:
- Генерисање ПВМ-а помоћу ПИЦ микроконтролера са МПЛАБ и КСЦ8
- Управљање серво мотором са Распберри Пи
- Ардуино заснован ЛЕД затамњивач који користи ПВМ
Овде погледајте све пројекте повезане са ПВМ-ом.
Како претворити ПВМ сигнал у аналогни напон?
За ПВМ сигнале на аналогни напон можемо користити коло звано РЦ филтер. Ово је једноставно и најчешће коришћено коло за ову сврху. Коло само укључује отпорник и кондензатор у серији као што је приказано у доњем колу.
Дакле, оно што се у основи дешава овде је да се, када је ПВМ сигнал висок, кондензатор пуни кроз отпорник и када ПВМ сигнал падне, кондензатор се празни кроз ускладиштено пуњење. Тако ћемо на излазу увек имати константан напон који ће бити пропорционалан радном циклусу ПВМ.
На графикону приказаном горе, онај у жутој боји је ПВМ сигнал, а плави у боји је излазни аналогни напон. Као што видите, излазни талас неће бити чисти ДЦ, али би требао добро радити за нашу апликацију. Ако су вам потребни чисти једносмерни таласи за другу врсту примене, требали бисте дизајнирати склопни круг.
Кружни дијаграм:
Шема кола је прилично једноставна; само има потенциометар и отпорник и кондензатор који чине РЦ коло и сам Лед. Потенциометар се користи за обезбеђивање аналогног напона на основу којег се може контролисати радни циклус ПВМ сигнала. Излаз лонца повезан је на пин П1.0 који може читати аналогне напоне. Затим морамо произвести ПВМ сигнал, што се може урадити помоћу пина П1.2, овај ПВМ сигнал се затим шаље у круг РЦ филтера да претвори ПВМ сигнал у аналогни напон који се затим даје ЛЕД-у.
Веома је важно схватити да не могу сви пинови на МСП плочи читати аналогни напон или генерирати ПВМ пинове. Конкретни клинови који могу обављати одређене задатке приказани су на доњој слици. Увек користите ово као смерницу за одабир пинова за програмирање.
Саставите комплетан круг као што је приказано горе, можете користити плочу за једрење и неколико жица за краткоспојнике и лако успоставити везе. Једном када су везе завршене, моја плоча је изгледала као што је приказано доле.
Програмирање МСП за ПВМ сигнал:
Када је хардвер спреман, можемо почети са нашим програмирањем. Прва ствар у програму је да пријавимо игле које ћемо користити. Овде ћемо користити пин број 4 (П1.2) као наш излазни пин јер он има могућност генерисања ПВМ-а. Тако креирамо променљиву и додељујемо име пин-а тако да је лако позвати се на њега касније у програму. Комплетан програм дат је на крају.
инт ПВМпин = 4; // Користимо 4. пин на МСП модулу као ПВМ пин
Затим смо дошли у подешавање функцију. Шта год код није написано неће извршити само једном, овде изјављујемо да користимо ове 4 тх пин као излазни пин од ПВМ је излаз функционалност. Имајте на уму да смо овде користили променљиву ПВМпин уместо броја 4, тако да код изгледа смисленије
воид сетуп () { пинМоде (ПВМпин, ИЗЛАЗ); // ПЕМпин је постављен као Оутптут }
Коначно смо се у петљи функцију. Шта год овде написали, извршава се изнова и изнова. У овом програму морамо очитати аналогни напон и генерирати ПВМ сигнал у складу с тим, што се мора поновити изнова и изнова. Дакле, прво почнимо са читањем аналогног напона са пина А0 пошто смо на њега прикључили потенциометар.
Овде читамо вредност помоћу функције АаналогРеад , ова функција ће вратити вредност од 0-1024 на основу вредности напона примењеног на пин. Затим ову вредност чувамо у променљивој која се назива „вал“, као што је приказано доле
инт вал = аналогРеад (А0); // очитавање вредности АДЦ са пина А0
Морамо претворити вредности од 0 до 1024 из АДЦ-а у вредности од 0 до 255 да бисмо је добили у функцији ПВМ. Зашто бисмо ово претворили? То ћу рећи укратко, али за сада само запамтите да морамо извршити конверзију. Да га претвори у један систем вредности у другом сету од вредности Енергија има карту функцију сличну Ардуино. Дакле, претварамо вредности 0-1204 у 0-255 и враћамо их у променљиву „вал“.
вал = мапа (вал , 0, 1023, 0, 255); // АДЦ ће дати вредност 0-1023 претворити у 0-255
Сада имамо променљиву вредност 0-255 на основу положаја потенциометра. Све што треба да урадимо је да користимо ову вредност на ПВМ пину, што се може учинити помоћу следећег реда.
аналогВрите (ПВМпин, вал); // Запиши ту вредност у ПВМ пин.
Вратимо се питању зашто је 0-255 записано у ПВМ пин. Ова вредност 0-255 одређује радни циклус ПВМ сигнала. На пример, ако је вредност сигнала 0, то значи да је радни циклус 0%, за 127 је 50%, а за 255 100%, баш као што је приказано и објашњено на врху овог чланка.
Контрола осветљености ЛЕД-а помоћу ПВМ-а:
Једном када сте схватили хардвер и код, време је да се мало позабавите радом кола. Отпремите код на плочу МСП430Г2 и окрените дугме потенциометра. Како окрећете дугме, напон на пину 2 ће варирати, што ће читати микроконтролер, а према напону ће се ПВМ сигнали генерисати на пину 4. Што је већи напон, то ће бити већи радни циклус и обрнуто.
Овај ПВМ сигнал се затим претвара у аналогни напон да би засијао ЛЕД. Осветљености ЛЕД је директно пропорционална ПВМ сигнала радног циклуса. Осим ЛЕД диоде на плочи за плочу, можете приметити и смд ЛЕД (црвену боју) која мења своју осветљеност слично ЛЕД плочи. Ово је ЛЕД диода такође је повезана на исти пин, али нема РЦ мрежу па заправо трепери врло брзо. Даску можете протрести у мрачној соби да бисте проверили њену треперавост. Комплетан рад се такође може видети на видео снимку испод.
То је за сада све, научили смо како да користимо ПВМ сигнале на плочи МСП430Г2, у следећем упутству научићемо како је лако управљати серво мотором користећи исте ПВМ сигнале. Ако сумњате, објавите их у одељку за коментаре испод или на форумима ради техничке помоћи.