
Во время последнего ремонта квартиры я задумался об улучшении бытового уровня. Одним из осуществленных удобств был таймер для вытяжки в санузле. С одной стороны, это повысило комфорт, поскольку устройство само отключало вентилятор, с другой – положительно сказалось на экономии электричества. Далее изложено описание и реализация таймера. Его легко приспособить для кратковременного включения любой силовой нагрузки мощностью до 1 кВт.
Бытовой вытяжной вентилятор работает от сети переменного тока 230 Вольт и содержит двигатель мощностью 15 … 60 Вт. Поэтому при разработке таймера было решено использовать в качестве коммутирующего элемента симистор BT134. Он выдерживает постоянный ток до 4 Ампер и для такой нагрузки может работать без радиатора.
Управляющая часть выполнена на дешевом 8-выводном микроконтроллере. Это позволяет модифицировать программу под свои конкретные нужды. Например, добавить датчик влажности или изменить режим работы и отсчитываемый временной интервал.
В данном варианте реализованы два режима работы. После нажатия на кнопку таймер включает вентилятор и переходит в 1 режим, сигнализируя зеленым свечением светодиода. По истечении заданного времени (5 минут) вытяжка выключается. Если во время работы 1 режима повторно нажать кнопку, таймер перейдет во 2 режим, включив красный светодиод. В этом режиме вентилятор работает непрерывно, до очередного нажатия кнопки.
Схема электрическая принципиальная:

Источник питания выполнен на микросхеме LNK302 производства Power Integrations. Благодаря этому, получившийся ИП малогабаритен, с высоким КПД и малым числом деталей. В микросхеме реализованы все основные защиты: от КЗ, от обрыва обратной связи, от выбросов на входе, от перегрева. Подробно останавливаться на нем не буду, поскольку всю необходимую информацию, при желании, можно найти в даташите. Резисторы R4 и R3 образуют делитель, определяющий уровень стабилизации напряжения на выходе. Резисторы R1 и R2 используются в качестве предохранителя, поэтому желательно применять выводные МЛТ-0,25.
ВНИМАНИЕ! Источник питания имеет гальваническую связь с сетью 230 Вольт, поэтому все работы по монтажу и наладке должны проводиться при выключенном устройстве и с соблюдением техники безопасности!
Таймер и управляющая часть выполнена на микроконтроллере PIC12F629. К нему подключен двухцветный светодиод, кнопка и оптосимистор, управляющий ключом VS1. В цепи нагрузки установлен предохранитель, на схеме не обозначенный. Его величину подбирают исходя из параметров вентилятора.

Реализация конструкции зависит от конкретных условий. У меня, например, была свободная коробка от переключателя, поэтому было решено смонтировать таймер в нем. Под наружное оформление была приспособлена розетка для ТВ, купленная в магазине электротоваров. Из нее был выброшен антенный разъем, просверлен корпус для крепления двухцветного светодиода и подобрана кнопка. Затем разведена и изготовлена печатная плата. Поэтому будьте внимательны, может потребоваться корректировка прилагаемой печатной платы под Ваш случай.
Печатная плата изготовлена из одностороннего стеклотекстолита размером 45 х 45 мм. Некоторые элементы на ней продублированы SMD –корпусами, чтобы можно было устанавливать то, что есть в наличии. Я поставил SMD-дроссель, но если есть только выводной – можно просверлить под него отверстия в площадках.
Рисунок печатной платы (вид со стороны пайки):

Монтаж выводных элементов:

Монтаж SMD-элементов:

Исходный код программы:
title "TimerVent" ; Программа таймера для управления вытяжкой errorlevel 0, -207, -302 #include <P12F629.inc> CBLOCK 0x020 ;Определение переменных tmp ; временные регистры del, del_m ; для генерации задержки cfg ; регистр конфигурации time_h, time_l ; для отсчета периода работы ENDC __CONFIG _CPD_OFF & _CP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT #define SET_LED_K bsf GPIO, 5 ; Зажечь красный светодиод #define SET_LED_Z bsf GPIO, 4 ; Зажечь зеленый светодиод #define ZERO_LED_K bcf GPIO, 5 ; Потушить красный светодиод #define ZERO_LED_Z bcf GPIO, 4 ; Потушить зеленый светодиод #define SET_MOTOR bsf GPIO, 2 ; Включить нагрузку (мотор) KNOPKA equ 1 ; Кнопка подключена к порту 1 org 0 goto INIT ;Начало программы DEL_MK movwf del ;Подпрограмма задержки (в микросекундах, 770 мкс max) M1 decfsz del, F ;(Перед вызовом поместить величину задержки в W) goto M1 return DEL_M movwf del_m ;Подпрограмма задержки (в миллисекундах, 256 мс max) movlw 0xa5 ;(Перед вызовом поместить величину задержки в W) M2 call DEL_MK call DEL_MK decfsz del_m, F goto M2 return INIT bcf STATUS, RP0 ;Выбран банк 0 movlw B'00000111' movwf CMCON ;Отключаем встроенные компараторы clrf GPIO bsf STATUS, RP0 ;Выбран банк 1 movlw B'00000010' movwf WPU movlw B'00000000' movwf OPTION_REG call 3FFh ;Загрузить константу калибровки генератора movwf OSCCAL movlw B'00000010' movwf TRISIO ; movlw B'00000010' ; movwf IOCB bcf STATUS, RP0 ;Выбран банк 0 clrf cfg ;----------------------[ ВЫБОР СЛЕДУЮЩЕГО РЕЖИМА ]-------------------------- SM btfsc GPIO, KNOPKA goto SM bcf T1CON, TMR1ON ;Выключить таймер 1 movf cfg, F btfsc STATUS, Z goto MOD1 btfsc cfg, 0 goto MOD2 OUTP clrf GPIO ;Подготовка к "выключению" clrf cfg movlw 0xfa ;Задержка на 0,5 секунд call DEL_M movlw 0xfa call DEL_M goto SM ;----------------------[ РЕЖИМ КОРОТКОЕ ВКЛЮЧЕНИЕ ]------------------------- MOD1 clrf cfg bsf cfg, 0 ZERO_LED_K SET_LED_Z SET_MOTOR movlw 0xfa ;Задержка на 0,5 секунд call DEL_M movlw 0xfa call DEL_M movlw b'00110100' ;Конфигурирование таймера 1 movwf T1CON clrf TMR1H clrf TMR1L clrf time_l clrf time_h bsf T1CON, TMR1ON ;Включить таймер 1 M3 btfss GPIO, KNOPKA goto SM btfss PIR1, TMR1IF ;Проверка переполнения goto M3 bcf PIR1, TMR1IF ;Было переполнение, проверка счета incf time_l, F btfsc STATUS, Z incf time_h, F movlw 0x58 ;Младший байт счетчика времени xorwf time_l, W btfss STATUS, Z goto M3 movlw 0x01 ;Старший байт счетчика времени xorwf time_h, W btfss STATUS, Z goto M3 goto OUTP ;----------------------[ РЕЖИМ ПОСТОЯННО ВКЛЮЧЕН ]-------------------------- MOD2 clrf cfg bsf cfg, 1 SET_LED_K ZERO_LED_Z SET_MOTOR movlw 0xfa ;Задержка на 0,5 секунд call DEL_M movlw 0xfa call DEL_M M4 btfsc GPIO, KNOPKA goto M4 goto OUTP END ;--------------------------------------------------------------------------- ; Таблица задержек для подпрограммы DEL_MK: ; 0x20 - 100 мкс ; 0xa5 - 500 мкс ;--------------------------------------------------------------------------- ; Описание бит cfg: ; "0" - если установлен, активен режим "короткое включение" (зеленый) ; "1" - если установлен, активен режим "постоянно включен" (красный) ; "2" - ; "3" - ; "4" - ; "5" - ; "6" - ;---------------------------------------------------------------------------
