ШИМ на микроконтроллере Attiny13

Все о ШИМ на микроконтроллере Attiny13. Узнайте, как управлять светодиодом с помощью широтно-импульсной модуляции (ШИМ) и прошивки для ATtiny13.

ШИМ — широтно-импульсная модуляция (или по англ. PWM). У микроконтроллера ATtiny13 есть два ШИМ выхода OC0A и OC0B от таймера 0. ШИМ выход OC0A на 5 ножке микроконтроллера Attiny13, а OC0B на 6 ножке. В данном примере светодиод подключённый к ШИМ выходу OC0B будет плавно загораться и гаснуть.

Вот схема устройства:

ШИМ на микроконтроллере Attiny13

Для сборки устройства понадобится:

ШИМ на микроконтроллере Attiny13

1.Микроконтроллер Attiny13 (с любыми индексом)
2. Панелька DIP8
3. Любой светодиод
4. Резистор 4,7k (можно от 2,2кОм до 20кОм)
5. Резистор 150ом

Питание для устройства должно быть от 3 до 5 вольт. Для питания устройства я использовал «литьевую таблетку» на 3 вольта.

Прошивка для устройства написана в среде BASCOM-AVR.

Вот исходник прошивки:

$regfile = «attiny13.dat»
$hwstack = 8
$swstack = 16
$framesize = 16
Config Portb.1 = Output
Config Timer0 = Pwm , Prescale = 8 , Compare B Pwm = Clear Down
Start Timer0
Do
Do
Waitms 10
Incr Pwm0b
Loop Until Pwm0b = 255
Do
Waitms 10
Decr Pwm0b
Loop Until Pwm0b = 0
Loop
End

В канал ШИМ можно записать значение от 0 до 255.

Вот упрощенный вариант кода управления ШИМ:

$regfile = «attiny13.dat»
Config Portb.1 = Output
Config Timer0 = Pwm , Prescale = 8 , Compare B Pwm = Clear Down
Start Timer0
Pwm0b = 255
End

В данном случае в ШИМ канал OC0B мы запишем число 255. То есть светодиод будет гореть постоянно.

Записать значение в ШИМ канал можно так:
(ШИМ канал) = (Значение от 0 до 255)

Вот такое устройство получилось у меня:

ШИМ на микроконтроллере Attiny13

Микроконтроллер прошивал программой PonyProg2000.

Вот картинка установки фьюз битов:

ШИМ на микроконтроллере Attiny13

Ниже вы можете скачать прошивку, исходник, печатную плату, проект в Proteus


Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *