Двоична ъглова модулация – алтернатива на софтуерната ШИМ
Здравейте любители на микроконтролерите!
Лирично въведениеСлед като публикувах отворения си проект за DRL с полунажежаема жичка за обществено гледане, много въпроси заваляха в лично съобщение. Освен това повечето от въпросите не бяха за самия проект, а за определени проблеми при програмирането на AVR контролери. Тук бих искал да отбележа, че мнозина просто нямат търпението да постигнат целите си. Самият аз, може да се каже, едва започвам да се опитвам в този въпрос. Но за мен е по-лесно, аз съм педантичен и търпелив човек: изучавам документацията, след това разглеждам примери на други, след това го опитвам на практика. Ако стигна до задънена улица или се отегчавам, тогава го оставям настрана и след това се връщам.А сега се върнах към първия си незавършен проект и реших да напиша малки статии по тесни теми за начинаещи по пътя. Мисля, че ще бъде интересно.
И така, обратно към първия ми проект, лампа за настроение. Първоначално исках да повторя готовия занаят на Atmega8 с инфрачервен сензор (IR LED + IR приемник) за превключване на режимите. Не можах правилно да отстраня грешки в сензора. Сега тази идея изпадна в немилост. Въпреки това, няколко таванни лампи от Ikea, мощни RGB светодиоди лежат наоколо и от време на време жена ми ме упреква с тях :) Като цяло беше решено да се направи занаят на Attiny13A. Достатъчно е за такова нещо, въпреки че когато започнах, не мислех, че е осъществимо. По моя идея лампата ще има и капацитивен сензор и няколко режима. Да видим какво можем да вмъкнем в този MC.
Защото Аз съм привърженик на софтуера с отворен код, след което паралелно реших да премина към компилатора GCC-AVR - целият код ще бъде под него. Преди това писах в CodeVisionAVR. сега от време на времеИзползвам неговия генератор на код, когато ме мързи да чета таблици с данни.
Двоична модулацияИ така, какво е двоична модулация (BM)? Мнозина са запознати с широчинно-импулсната модулация (наричана по-нататък ШИМ), която се поддържа от много микроконтролери в хардуера. Ще се опитам да обясня значението на BM на пръстите в сравнение с PWM. Имам предвид, че читателят с ШИМ е познат или познат. Ще разгледаме 8-битовите PWM и BM. Ако за 30% PWM ще изглежда така:

В BM кодирането е в битове на двоично число. Всеки бит отговаря за своята продължителност.

За по-голяма яснота ще вземем числото 85 - в двоична система е 01010101 и това е около 33%. Така че BM в този случай ще изглежда така: