Коло за конверзија на PWM во напон. Како да се добие постојан напон од шип. Контролирање на осветленоста на LED со помош на PWM и Arduino

Модулација на ширина на пулсот. Опис. Апликација. (10+)

Модулација на ширина на пулсот

Еден од пристапите за намалување на загубите за греење на енергетските елементи на кола е употребата на режими на работа со префрлување. Во такви режими, елементот за напојување е или отворен, потоа има речиси нула пад на напон преку него или затворен, а потоа низ него тече нула струја. Дисипацијата на моќноста е еднаква на струјата пати напонот. Прочитајте повеќе за ова на врската. Во овој режим, можно е да се постигне ефикасност од повеќе од 80%.

За да се добие сигнал од саканата форма на излезот, прекинувачот за напојување се отвора одредено време пропорционално на саканиот излезен напон. Ова е модулација на ширина на пулсот (PWM, PWM). Следно, таков сигнал, кој се состои од импулси со различни ширини, влегува во филтер кој се состои од индуктор и кондензатор. Излезот на филтерот произведува речиси идеален сигнал со саканата форма.

Примена на модулација на ширина на пулсот (PWM)

За жал, грешките периодично се наоѓаат во статиите, тие се поправаат, написите се дополнуваат, развиваат и се подготвуваат нови. Претплатете се на вестите за да бидете информирани.

Ако нешто не е јасно, задолжително прашајте!
Поставете прашање. Дискусија за статијата. пораки.

Повеќе статии

Моќен моќен импулсен трансформатор. Пресметка. Пресметај. Онлајн. О...
Онлајн пресметка на моќен импулсен трансформатор....

Како да не се мешаат плус и минус? Заштита од обратен поларитет. Шема...
Заштитно коло од неправилен поларитет на поврзување (превртување) на полначите...

Резонантен инвертер, конвертор за засилување на напон. Принципот на...
Склопување и прилагодување на конвертор на зголемен напон. Опис на принципот на работа...

Едноставен пулсен конвертор на напон. 5 - 12 том...
Коло на едноставен конвертор на напон за напојување на оперативен засилувач....

Осцилаторно коло. Шема. Пресметка. Апликација. Резонанца. Звучен...
Пресметка и примена на осцилаторни кола. Феноменот на резонанца. Последователни ...

Коректор на фактор на моќност. Шема. Пресметка. Принцип на работа....
Коло за коректор на фактор на моќност...

Направете сам непрекинато напојување. Направете го тоа сами UPS, UPS. Синус, синусоид...
Како сами да направите непрекинато напојување? Чист синусоидален излезен напон, со...

Моќен моќен импулсен трансформатор, задави. Намотување. Направете ...
Техники за намотување на импулсен индуктор / трансформатор....


Доста често на форумот има прашања за имплементација на модулација на ширина на пулсот на уреди со микроконтролер. Јас самиот прашав многу за ова и, откако сфатив, решив да им ја олеснам работата на новодојденците во оваа област, бидејќи има многу информации на мрежата и таа е наменета за програмери од различни нивоа, а јас самиот само што го сфатив и моето сеќавање е сè уште свежо.

Бидејќи најважното нешто за мене беше употребата на PWM конкретно за контрола на осветленоста на LED диодите, токму тие ќе ги користам во примерите. Ќе го користиме саканиот ATmega8 како микроконтролер.

Прво, да се потсетиме што е PWM. Сигнал PWM е импулсен сигнал со одредена фреквенција и работен циклус:

Фреквенцијата е бројот на периоди во една секунда. Работен циклус е односот на времетраењето на пулсот со времетраењето на периодот. Можете да ги промените и двете, но за да ги контролирате LED диодите доволно е да го контролирате работниот циклус. На сликата погоре гледаме PWM сигнал со работен циклус од 50%, бидејќи времетраењето на пулсот (широчината на пулсот) е точно половина од периодот. Според тоа, ЛЕР ќе биде точно половина од времето вклучено и половина од времето исклучено. Фреквенцијата на PWM е многу висока и окото нема да забележи треперење на ЛЕР поради инертноста на нашиот вид, па ќе ни се чини дека ЛЕР свети со половина од светлината. Ако го промениме работниот циклус на 75%, тогаш светлината на LED ќе биде 3 четвртини од целосната, а графикот ќе изгледа вака:

Излегува дека можеме да ја прилагодиме осветленоста на ЛЕР од 0 до 100%. Сега ајде да зборуваме за таков параметар PWM како резолуција. Резолуцијата е бројот на градации (чекори) на прилагодување на работниот циклус, ќе разгледаме резолуција од 256 чекори.

Се чини дека ги подредивме параметрите, сега да разговараме за тоа како можеме да го добиеме овој PWM од микроконтролерот.Земаме заострено, загреано рачка за лемење и почнуваме да го измачуваме МК, истовремено прикачувајќи осцилоскоп на неговите две нозе и проверуваме дали има сигнал за работниот циклус што ни е потребен на нив. Микроконтролерите имаат хардверска поддршка за PWM и неколку канали за него, во нашиот случај 3. Одредени пинови на микроконтролерот се одговорни за издавање PWM, во нашиот случај OC2, OC1A, OC1B (15,16,17 крак во DIP пакет). За ова се користат и тајмери ​​со микроконтролер, во нашиот случај TC1, TC2. Значи, како да го конфигурирате MK да дава сигнал со потребниот циклус на работа? Сè е многу едноставно, прво да ги конфигурираме излезните краци што ни се потребни:

PORTB=0x00; DDRB=0x0E; // 0b00001110

Следно, да почнеме да ги конфигурираме тајмерите. За тајмер TC1 ни требаат два регистри: TCCR1A и TCCR1B. Отворете го листот со податоци и прочитајте како се конфигурирани овие регистри. Го конфигурирав за 8-битен PWM сигнал, што одговара на резолуција од 256 чекори:

TCCR1A=0xA1; TCCR1B=0x09;

За тајмер TC2 ќе го користиме регистарот TCCR2=0x69;. Нејзиното поставување изгледа вака:

TCCR2=0x69;

Тоа е тоа, тајмерите се конфигурирани. Работниот циклус ќе биде поставен од регистрите OCR1A, OCR1B, OCR2:

Ајде да ги поставиме потребните работни циклуси:

OCR1A=0x32; //50 чекори OCR1B=0x6A; //106 чекори OCR2=0xF0; //240 чекори

Па, да го поставиме зголемувањето и намалувањето на овие регистри во бесконечна јамка:

Додека (1) ( OCR1A++; OCR1B--; OCR2++; доцнење_ms (50); )

Првата програма за тестирање е подготвена и за CVAVR изгледа вака:

#include "mega8.h" #include "delay.h" void main(void) ( PORTB=0x00; DDRB=0x0E; // 0b00001110 TCCR1A=0xA1; TCCR1B=0x09; TCCR2=0x69; OCR1A3 /=5x чекори OCR1B=0x6A; //106 чекори OCR2=0xF0;

На пример);

  • отпорник со номинална вредност од 190...240 Ом (тука е одличен сет на отпорници со најчести вредности);
  • персонален компјутер со развојна околина Arduino IDE.
  • Инструкции за користење на PWM во Arduino

    1 Општи информацииза модулацијата на ширината на пулсот

    Дигиталните пинови на Arduino можат да излезат само две вредности: логика 0 (НИСКО) и логика 1 (ВИСОКА). Затоа се дигитални. Но, Arduino има „специјални“ пинови, кои се назначени PWM. Тие понекогаш се означени со брановидна линија „~“ или заокружени или на друг начин се разликуваат од другите. PWM се залага за Модулација на ширина на пулсотили модулација на ширина на пулсот, PWM.

    Модулиран сигнал со ширина на пулсот е импулсен сигнал со постојана фреквенција, но променлив работен циклус(односот на времетраењето на пулсот и периодот на неговото повторување). Поради фактот што повеќето физички процеси во природата имаат инерција, наглите падови на напонот од 1 до 0 ќе бидат измазнети, земајќи одредена просечна вредност. Со поставување на работниот циклус, можете да го промените просечниот напон на излезот PWM.

    Ако работниот циклус е 100%, тогаш дигиталниот излез на Arduino секогаш ќе има логичен напон од „1“ или 5 волти. Ако го поставите работниот циклус на 50%, тогаш половина од времето излезот ќе биде логичен „1“ и половина од времето - логичен „0“, а просечниот напон ќе биде 2,5 волти. И така натаму.


    Во програмата, работниот циклус е наведен не како процент, туку како број од 0 до 255. На пример, командата analogWrite(10, 64)ќе му каже на микроконтролерот да испрати сигнал со работен циклус од 25% до дигиталниот PWM излез бр. 10.

    Arduino пиновите со функција за модулација на ширина на пулсот работат на фреквенција од околу 500 Hz. Ова значи дека периодот на повторување на пулсот е околу 2 милисекунди, што се мери со зелените вертикални потези на сликата.

    Излегува дека можеме да симулираме аналоген сигнал на дигитален излез!Интересно, нели?!

    Како можеме да користиме PWM? Многу апликации! На пример, контролирајте ја осветленоста на ЛЕР, брзината на вртење на моторот, струјата на транзисторот, звукот од пиезо емитер итн...

    2 Дијаграм за демонстрацијаМодулација на ширина на пулсот во Arduino

    Да го погледнеме најосновниот пример - контролирање на осветленоста на LED со помош на PWM. Ајде да составиме класична шема.


    3 Пример за скицасо PWM

    Да ја отвориме скицата „Fade“ од примерите: Примероци на датотеки 01. Основи Fade.


    Ајде да го промениме малку и да го вчитаме во меморијата на Arduino.

    Int ledPin = 3; // декларирај пин што ја контролира светлината на ЛЕД = 0; // променлива за поставување на осветленоста int fadeAmount = 5; // чекор за промена на осветленоста празнина поставка() ( pinMode (ledPin, OUTPUT); } празнина јамка() ( analogWrite (ledPin, осветленост); // поставете ја осветленоста на осветленоста на пинот ledPin += fadeAmount; // сменете ја вредноста на осветленоста /* кога ќе ги достигнете границите 0 или 255, променете ја насоката на промената на осветленоста */ ако (осветленост == 0 || осветленост == 255) ( fadeAmount = -fadeAmount; // сменете го знакот на чекорот ) доцнење(30); // одложување за поголема видливост на ефектот }

    4 LED контрола на осветленостакористејќи PWM и Arduino

    Вклучете го напојувањето. ЛЕР постепено ја зголемува осветленоста, а потоа непречено се намалува. Симулиравме аналоген сигнал на дигиталниот излез користејќи модулација на ширина на пулсот.


    Погледнете го приложеното видео, кое јасно ја покажува промената на осветленоста на ЛЕР на поврзаниот осцилоскоп, можете да видите како се менува сигналот од Arduino.

    PWM или PWM (Модулација со ширина на пулсот) - модулација на ширина на пулсот- Овој метод е дизајниран да ја контролира големината на напонот и струјата. Дејството на PWM е да ја промени ширината на пулсот со постојана амплитуда и постојана фреквенција.

    Својствата на регулацијата на PWM се користат во пулсни конвертори, во кола за контролирање на DC мотори или осветленост на LED диоди.

    Принцип на работа на PWM

    Принципот на работа на PWM, како што покажува самото име, е да се промени ширината на импулсот на сигналот. Кога се користи методот на модулација на ширината на импулсот, фреквенцијата и амплитудата на сигналот остануваат константни. Најважниот параметар на сигналот PWM е работниот циклус, кој може да се одреди со следнава формула:

    Исто така, може да се забележи дека збирот на времето на високиот и нискиот сигнал го одредува периодот на сигналот:

    • Тон - време на високо ниво
    • Toff - време на ниско ниво
    • Т-период на сигналот

    Високото и ниското време на сигналот се прикажани на долната слика. Напонот U1 е состојба на високо ниво на сигналот, односно неговата амплитуда.

    Следната слика е пример за PWM сигнал со специфичен висок и низок временски интервал.

    Пресметка на работниот циклус на PWM

    Пресметка на работниот циклус на PWM користејќи го примерот:

    За да го пресметате процентуалниот фактор на полнење, мора да извршите слични пресметки и да го помножите резултатот за 100%:

    Како што следува од пресметката, во овој пример, сигналот (високо ниво) се карактеризира со полнење еднакво на 0,357 или на друг начин 37,5%. Факторот за полнење е апстрактна вредност.

    Важна карактеристика на модулацијата на ширината на пулсот може да биде и фреквенцијата на сигналот, која се пресметува со формулата:

    Вредноста на Т, во нашиот пример, треба да се земе во секунди за да се поклопат единиците во формулата. Бидејќи формулата за фреквенција е 1/сек, па ајде да конвертираме 800 ms во 0,8 сек.

    Благодарение на можноста за прилагодување на ширината на пулсот, можно е да се промени, на пример, просечната вредност на напонот. Сликата подолу покажува различни работни циклуси додека ја одржува истата фреквенција на сигналот и истата амплитуда.

    За да го пресметате просечниот PWM напон, треба да го знаете работниот циклус, бидејќи просечниот напон е производ на работниот циклус и амплитудата на напонот на сигналот.
    На пример, работниот циклус беше еднаков на 37,5% (0,357) и амплитудата на напонот U1 = 12V ќе го даде просечниот напон Uav:

    Во овој случај, просечниот напон на сигналот PWM е 4,5 V.

    PWM дава многу едноставна способност за намалување на напонот во опсегот од напонот на напојување U1 до 0. Ова може да се користи, на пример, за брзината на ротација на мотор со еднонасочна струја (директна струја) кој се напојува со просечна вредност на напонот.

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

    Ова може да биде биполарен или транзистор со ефект на поле. Во следните примери ќе се користи.



    Пример за контрола на LED со помош на PWM.

    Сигналот PWM се доставува до основата на транзистор VT1 преку отпорникот R1, со други зборови, транзистор VT1 се вклучува и исклучува како што се менува сигналот. Ова е слично на ситуацијата во која транзисторот може да се замени со обичен прекинувач, како што е прикажано подолу:


    Кога прекинувачот е затворен, ЛЕР се напојува преку отпорник R2 (ограничување на струјата) со напон од 12V. И кога прекинувачот е отворен, колото се прекинува и ЛЕР се гаси. Таквото префрлување со ниска фреквенција ќе резултира со .

    Меѓутоа, ако е неопходно да се контролира интензитетот на LED диодите, неопходно е да се зголеми фреквенцијата на сигналот PWM, за да се измами човечкото око. Теоретски, префрлувањето на фреквенција од 50 Hz повеќе не е невидливо за човечкото око, што резултира со ефект на намалување на осветленоста на ЛЕР.

    Колку е помал циклусот на работа, толку ЛЕР ќе биде послаб бидејќи ЛЕР ќе биде вклучен помалку време во текот на еден период.

    Може да се користи истиот принцип и слична шема. Во случај на мотор, сепак, неопходно е да се користи поголема фреквенција на префрлување (над 15-20 kHz) од две причини.

    Првиот од нив се однесува на звукот што може да го направи моторот (непријатно крцкање). Фреквенцијата од 15-20 kHz е теоретска граница на чујност на човечкото уво, така што фреквенциите над оваа граница ќе бидат нечујни.

    Второто прашање се однесува на стабилноста на моторот. При возење на моторот со нискофреквентен сигнал со низок циклус на работа, брзината на моторот ќе биде нестабилна или може да доведе до целосно запирање. Затоа, колку е поголема фреквенцијата на PWM сигналот, толку е поголема стабилноста на просечниот излезен напон. Има и помало бранување на напонот.

    Сепак, не треба премногу да ја зголемувате фреквенцијата на сигналот PWM, бидејќи при високи фреквенции транзисторот може да нема време целосно да се отвори или затвори, а контролното коло нема да работи правилно. Ова е особено точно за транзисторите со ефект на поле, каде што времето на полнење може да биде релативно долго, во зависност од дизајнот.

    Премногу висока фреквенција на сигналот PWM, исто така, предизвикува зголемување на загубите во транзисторот, бидејќи секое префрлување предизвикува загуби на енергија. При контрола на големи струи на високи фреквенции, неопходно е да се избере транзистор со голема брзина со мала отпорност на спроводливост.

    Кога контролирате, не заборавајте да користите диода за заштита на транзистор VT1 од индукциски бранови што се појавуваат кога транзисторот е исклучен. Благодарение на употребата на диода, индукцискиот пулс се испушта низ него и внатрешниот отпор на моторот, со што се заштитува транзисторот.



    Дијаграм на систем за контрола на брзината на DC мотор со заштитна диода.

    За да ги измазнете напоните на напојувањето помеѓу приклучоците на моторот, можете да поврзете мал кондензатор (100nF) паралелно со нив, што ќе го стабилизира напонот помеѓу последователните префрлувања на транзисторот. Ова исто така ќе го намали шумот предизвикан од честото префрлување на транзистор VT1.