ПредишенСледващото

PWM - импулсния
PWM - импулсния (т.е. същите като PWM)

Какво е PWM и защо е необходимо?

Защо ми е необходим софтуер PWM?

Тогава, какво е AVR (Atmega) 1-2 PWM канали, които често липсват за това, което е необходимо.

Да предположим, че имаме три (3) LED и яркостта на всяка от тях, което искаме да бъде контролиран индивидуално. Вграден таймер PWM канали не са достатъчни. И като цяло, може да имаме някакъв специален контрол, ние искаме да продължим да всички от тях. Ето защо ние сме ги засадите в обичайния подножието (фута в Пример PORTC 3,4,5) и контрол на софтуера.

Resistor за изчисляване на LED:

Захранване: 5V. на напрежението в индикаторът може да се разглежда като 1.5V. Текущ на светодиод трябва да бъде не повече от 20 mA (някои твърдят, че е необходимо да се 15 mA, но ми харесва толкова по-ярко).
Според закона на Ом: I = U / R, R = U / I = (5-1.5) /0.02=175 ома. Поставя резистори R1, R2 и R2 - 220 ома.

Най-простият вариант - вечен цикъл. Вариант прекъсване ще бъде по-късно (по-долу), сега разгледаме един прост пример, за да разбере същността.

На първо място е необходимо да се определят две неща: колко често ще започне да мига светодиода, вие не може да го видите да мига, а втората, колко нива на яркост може да бъде LED.

Чрез яркост нива позволяват да бъде 256. 0 - изключи напълно, 255 - напълно активирана (т.е., PWM канал е логично един цялото време, т.е. работен цикъл = 100%.

Въпреки това, сега се пържат ви обърка.

Долната линия е, че ние PLUS диод верига tyknut за директна храна и минус минава през резистор към крака (където резистора - не е важно, важно е, че на крака MK). Поради това, свети, когато върху крака на MK ниско ниво, т.е. нула, т.е. MK prokinut вътре крак, за да GND, т.е. на земята. Това означава, че в действителност 0 и 1 в PWM трябва да бъде обърнат. Т.е. дългосрочен сигнал ще бъде 0 по отношение на един, ярка на LED.

И така, нивата на яркост на 256.

Какви мига въпрос? Долната линия е, че ако трябва да се прилага по отношение на PWM сигнал на много много диоди и го направи последователно за всеки, след като е необходимо изходния сигнал на първия диод да се върне на сигнала до заключението, че е за такова време, че:

  1. време, за да се образува пълен PWM сигнал,
  2. по-малко от 1/25 от секундата, в противен случай тя ще бъде забележим мига LED,
  3. между сегменти на PWM сигнал не е забележими паузи в производството на PWM, т.е. така че не е било изопачено на PWM сигнал.

Ето един пример за изкривяване на PWM сигнал:

Всички ще се има предвид, но в действителност ние сме тук, това няма значение, защото ние ще имаме една много проста гладка мигач и тя ще се промени само яркостта, т.е. ще бъде много време, а задачата е толкова прост, че да не се яде от време на генериране на PWM сигнал.

И така, ето изходния код (за AVR студио, т.е. ССЗ):

Как работи програмата

Има време контра сегменти - scancount. Максималната стойност на този брояч - е броят на нивата на яркост минус 1. Всяка обрат цикъл се увеличава с единица, след това преминава над и 255 отново става 0. Във всеки цикъл въртене настройка сигнал се появява за всеки LED. Ако броячът е по-малка или равна на нивото на яркост, изключване на диод. Ако броячът е по-малко от нивото на яркост, определена за диода - които включват този диод. И всеки цикъл. Например, ако нивото на яркост е 0, на гишето винаги ще бъде равна или по-голяма от нула и диода винаги ще бъде изключен. Ако нивото на яркост на 255, броячът ще бъде по-малка от тази стойност 254-255 оборотомер и ще изгори почти с пълна сила. Ако яркостта е настроена на 50, първи циркулационен 50 диод е включен, а останалите 206 оборота в минута - изключване, т.е. то ще бъде представено на текущата 50/256 на максимум.

Следната програма е контролирането на нивото на яркост на диода, че е някакъв вид демонстрация. Всеки път, когато плота е залято с яркостта на всички диоди се добавят 1, но ако яркостта става повече от 128, то се връща на 0. В общи линии, ако не беше тази проверка, след това, след като достигна до 255 в нивото на яркост се отприщва на нула, но опитът е показал, че след излъчването на 128 се разраства толкова бързо, можем да предположим, че стойността на 128 е почти максимално. И това полученият ефект е по-динамична и е въведен този тест.

Ние също трябва да е наясно, че зависимостта на яркостта на тока в светодиод не е линейна. Т.е. 128 не се удвоява димер от 255 и не два пъти по-ярко от 64.

Колко се завърти целия цикъл на всички диоди, ние сме на голям интерес, тъй като е ясно, че в участъка на 1MHz (което е върху него работи за мен MC), тя ще бъде достатъчно бързо, за окото не вижда излъчване.

изграждане снимка:

Програмирано PWM (PWM)

Кликнете върху снимката за уголемяване

Домейн Цена: 1,5 милиона рубли.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!