ШІМ на мікроконтролері Attiny13
ШИМ - широтно-імпульсна модуляція (або англ. PWM). У мікроконтролера ATtiny13 є два ШИМ виходи OC0A та OC0B від таймера 0. ШИМ вихід OC0A на 5 ніжці мікроконтролера Attiny13, а OC0B на 6 ніжці. У цьому прикладі світлодіод, підключений до ШИМ виходу OC0B, буде плавно загорятися і гаснути.
Ось схема пристрою:
Для зборки пристрою знадобиться:
1. Мікроконтролер Attiny13 (з будь-яким індексом)
2. Панелька DIP8
3. Будь-який світлодіод
4. Резистор 4,7k (можна від 2,2kОм до 20kОм)
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)
Ось таке пристрій вийшло у мене:
Мікроконтролер прошивав програмою PonyProg2000.
Ось картинка установки фьюзів:
Нижче ви можете скачати прошивку, вихідний код, друковану плату, проект в Proteus
Прикреплені файли:
- t13pwm.rar (23 Кб)