Регулятор скорости бытового вентилятора с ПДУ и таймером выключения

Есть у меня дома вот такой вентилятор Saturn. На ножке-штативе, с тремя скоростями вращения.

Решил я его немного переделать. Во первых, сделать управление вентилятором с ИК пульта, во вторых, добавить таймер выключения. В оригинальной схеме обороты вентилятора регулируются переключением обмотки. Я же сделал схему с регулировкой скорости отсечением части полупериода сетевого напряжения. Количество скоростей можно сделать любым, я остановился на четырех.

Схема регулятора собрана на микроконтроллере ATMega48. Контроллер сканирует кнопки управления, декодирует команды от ИК пульта, управляет двигателем вентилятора и выводит информацию о скорости и времени до выключения на симисегментный индикатор

Элементы R1, C1, VD1 образуют схему начального сброса микроконтроллера. При включении питания, конденсатор С1 разряжен. На входе Reset(PC6) низкий логический уровень, что обеспечивает нормальный запуск микроконтроллера. Через резистор R1 конденсатор начинает заряжаться. Когда напряжение на С1 достигнет логической «1», произойдет запуск контроллера. При выключении питания конденсатор быстро разряжается через диод VD1.

Резисторы R2, R3 ограничивают ток фотоприемника DA1, R4 подтягивает вход PD2 к напряжению питания. Конденсатор С4 – фильтр питания фотоприемника. Сигналы, принятые фотоприемником поступают на вход PD2, на котором разрешена обработка внешнего прерывания INT0. Срабатывание прерывания настроено по изменению состояния на входе.

Кнопки управления SB1 – SB4 подключены к выводам микроконтроллера PC0 – PC3. Ножки порта настроены как вход с подтяжкой. Кроме того, на портах PC0 – PC4 разрешено прерывание PCI по изменению состояния на входе. Это позволило не производить постоянное сканирование состояния кнопок.

Резисторы R6R13 ограничивают ток светодиодов семисегментного индикатора HL1. Используется динамическая индикация, причем данные на индикатор выводятся последовательно для каждого сегмента. Таким образом, в любой момент времени включен только один светодиод и нагрузка на порт не превышает ток одного сегмента индикатора. Это позволило отказаться от транзисторных ключей в цепи катодов индикатора. В старший разряд индикатора выводится скорость вращения вентилятора, а в два младшие – время таймера выключения в минутах.

С2, С3, С5, С6 являются фильтрующими конденсаторами в цепи питания контроллера.

Резистор R5 используется в схеме детектора перехода сетевого напряжения через 0. Резистор состоит из нескольких, подключенных последовательно резисторов, мощностью 0,5 Вт.

Управление двигателем осуществляется отсеканием части полупериода сетевого напряжения. На выходе микроконтроллера (PD1) формируется импульс длительностью 1 мсек., который через резистор R14 поступает на базу транзистора VT1. Нагрузкой транзисторного ключа является маломощный симистор VS1. Элементы R17 и С7 являются снаберной цепочкой, поскольку нагрузка имеет индуктивный характер.

Питается схема от конденсаторного источника питания. Резистор R18 токоограничивающий. С8 – гасящий конденсатор. Резистор R19 обеспечивает разряд С8 при выключении питания. Диоды VD2, VD3 являются выпрямителем напряжения, а стабилитрон VD4, стабилизирует напряжение на уровне 4,7 В. Конденсаторы С9, С10 – фильтрующие.

Программа регулятора написана на си, для CodeVisionAVR. Описание работы программы смотрите в текстовом файле проекта и комментариях.

ИК пульт ДУ собран на микроконтроллере ATtiny2313.

Цепочка R1, C1 образует схему начального сброса.

Кнопки SB1SB4 подключены к выводам микроконтроллера PB0 – PB3. Ножки порта настроены как вход с подтяжкой. На этих ножках разрешено прерывание PCI по изменению состояния на входе. Это позволило не производить постоянное сканирование состояния кнопок, как и в схеме управления вентилятором.

При нажатии кнопки, на выходе микроконтроллера PB7, формируется посылка данных, модулированная частотой 36 кГц. Через резистор R2 данные поступают на транзисторный ключ VT1, нагрузкой которого является ИК светодиод VD1.

Резистор R3 ограничивает ток ИК светодиода. Конденсатор С2 – фильтру напряжения питания. Диод VD2 защищает схему от переполюсовки при неправильной установке батарей питания.

Программа пульта написана на assembler.

Файлы проекта:

Программа ИК пульта (asm)

Программа вентилятора (си)

Печатная плата (lay6)

Проект в Proteus