Кто-то спасается под кондиционером, кто-то под сплит-системой,а кому-то приходится париться без этих средств комфорта. Но не беда! Вентилятор ведь доступен каждому! На рынке и в магазинах сейчас полно моделей напольных и настольных вентиляторов, как правило, с тремя дискретно переключаемыми скоростями. И все бы хорошо, но уж больно утомительно однообразно они дуют, причем на большой скорости часто слишком сильно, а на малой – слишком слабо. И, главное, велик соблазн уснуть под струями вентилятора, а наутро встать с насморком или чем еще похуже…
Радиолюбитель (он же электронщик) не может спать спокойно под опасным ветром от непокорного ветродуя, а посему должен модифицировать свой вентилятор, обеспечив небывалый комфорт и удобство.
Предлагается несложная схема на микроконтроллереattiny13, которая придаст вашему вентилятору новые функции:
Три программы вращения вентилятора:
Спокойный бриз
Слабый ветерок
Интенсивный бриз
Таймер автоотключения через 30 минут
Управление функциями одной кнопкой
Индикация всех режимов при помощи пары светододов
Принципиальная схема устройства
Принципиальная схема показана на рисунке.К компонентамне предъявляется никаких особых требований, кроме балластного конденсатора: он обязательно должен быть не менее чем на 450 вольт, желательно пленочным. Симистор BT-136-600, BTA12-600и т. п.с допустимым током не менее5 ампери рабочим напряжением не менее400 вольт.Из опыта работы с отечественными симисторами рекомендовать КУ208не стану. Резистор R1 можно уменьшить, снизив и его мощность. Светодиоды желательно использовать суперяркие, т. к.с целью снижения потребляемой мощности ток через них выбран весьма небольшим. Кнопка должна быть с хорошей изоляцией толкателя.
Микроконтроллер выполняет функцию фазового регулятора напряжения. На вход внешнего запроса прерывания INT0 подается сетевое напряжение, используемое для синхронизации с переходом через ноль, необходимой для работы фазового регулятора. Разумеется, использование фазового регулятора для управления асинхронным моторчиком вентилятора не может обеспечить приличного регулирования оборотов, но для наших целей результат удовлетворительный.
Изменение фазы осуществляется, как было сказано, по трем разным программам. Сразу после подачи питания вентилятор выключен. Наджатие на кнопку включает первую программу, второе нажатие – включает вторую программу, а третье – последнюю. Следующее нажатие выключает вентилятор.
Спокойный бриз – светится HL2: вентилятор начинает вращаться на минимальных оборотах, затем плавно увеличивает скорость до некоторого максимума, после чего резко снижает их опятьдо минимумаи процесс повторяется. Цикл занимает ориентировочно около 20 секунд.
Слабый ветерок – светится HL1: вентилятор постоянно вращается на минимальных оборотах.
Интенсивный бриз – светятся оба светодиода HL1 и HL2: вентилятор каждые 5–10 секунд меняет скорость вращения случайным образом от минимумадо максимума.
В любой момент можно включить таймер автоотключения через 30 минут.Это делается нажатием и удержанием кнопки до тех пор, пока светодиод (или светодиоды) не начнут мигать с частотой 0,5 Гц (т. е.1 раз в 2 секунды).Как только светодиод мигнул – надо отпустить кнопку. Мигание будет продолжаться до тех пор, пока не будет переключена программа работы вентилятора или не истечет интервал в 30 минут. Таймер автоотключения убережет вас от простуды, если вы случайно уснете под вентилятором.
Кстати, можно выключить вентилятор и без того, чтобы «пройтись» по всем программам: для этого надо нажать и держать кнопку не менее6 секунд –в этом случае оперативно устройство отключит вентилятор.
В сущности, на этом описание устройства для любителей повторять конструкции можно и закончить. Схема есть, прошивка доступна для скачивания из файлового архива. При программировании микроконтроллера обязательно выключить делитель тактовой частоты на 8 (фьюзCKDIV8=1), а тактовый генератор настроить на 9,6 МГц (фьюзы CKSEL=10). При сборке и эксплуатации следует помнить, что все элементы устройства находятся под потенциалом сети! Соблюдайте осторожность! Печатная плата не разрабатывалась, но, надеюсь, это не будет проблемой для настоящего рукодельника.
А вот для любителей поковыряться в исходном коде (который так же доступен для скачивания) рассказ продолжается. Исходный текст подробно прокомментирован, но на всякий случай обращу внимание на некоторые моменты.
Основная работа ведется по прерываниям: внешний запрос INT0 срабатывает в моменты, когда синусоида сетевого напряжения пересекает ноль. В этот момент запускается единственный таймер attiny13, который настроен таким образом. чтобы генерировать прерывания 256 разв течение полупериода, формируя, таким образом, шаги для изменения фазы отпирания симистора. Так какINT0 генерируется 100 разв секунду, то это используется и для счета времени для таймера автоотключения.
По прерыванию от таймера ведется организация фазового регулятора. Принцип ее очень прост и напоминает принцип программного ШИМ: переменная counter инкрементируется каждый раз при возникновении прерывания, после чего ее значение сравнивается с переменнойphase, определяющей условное значение момента отпирания симистора. Если phase содержит ноль – это соответствует открыванию симистора в начале полупериода, а если254 –в конце. Значение 255 означает, что симистор никогда не откроется.
В основном цикле всего-навсего нужно периодически изменять значение переменной phaseи это приведет к изменению скорости вращения вентилятора. Для этого используется функция
uint8_t do_breeze(uint8_t first, uint8_t steps)
Первый ее параметр есть значение устанавливаемой фазы, а второе – число отрезков времени по 100 миллисекунд,в течение которых эта самая фаза будет действовать. Внутри этой функции ведется контроль нажатия кнопки: если во время работы функции было нажатие кнопки, то функция завершается и возвращает ноль, а если жеза отведенное время нажатия кнопки не было – функция возвращает 1. Таким образом всегда можно знать, по какой причине произошло завершение функции.
Кому-то построение программы из большого числа функций может показаться слишком сложным и громоздким,но этоне так.Во-первых, если анализировать работу программы не с начала файла, а с функцииmain, то понять весь алгоритм очень просто: достаточно лишь внимательно читать названия функций. Разобраться с тем, что делает каждая функция так жепросто – снова читаем названия функций и алгоритм прорисовывается наглядно. При этом все функции объявлены статическими (static), то есть оптимизатор компилятора волен поступать с ними как угодно для получения компактного кода, что он и делает: вся программа занимает менее 70% небольшой памяти микроконтроллера, так что еще остается простор для фантазии при модернизации программы.
Подопытный вентилятор
Шильдик
Стоит еще обратить внимание на то, что значение фазы задается дискретно –из массиваstepping[]. В этом массиве хранятся константы, экспериментально подобранные для типичного трехскоростного вентилятора с лопастями450 мм.Дело в том, что реакция асинхронного мотора на фазовое регулирование напряжения весьма специфичная: примерно до половины полупериода скорость вращения почти не меняетсяи близкак максимальной, затем примерно до начала последней четверти полупериода скорость вращения резко падает, и при фазе большей, чем последние 30% полупериода, вентилатор не вращается вовсе. Возможно, для вашего вентилятора придется подобрать значения в этом массиве…
И последнее замечание. Третья программа бриза изменяет скорость случайным образом. Разумеется, случайность тут не совсем случайная, а довольно закономерная: в качестве случайной последовательности используются байты из памяти программ микроконтроллера. То есть коды прошивки и есть те самые байты – только обрезанные до допустимых значнеий. В данном случае, как и во многих других, такая псевдослучайная последовательность вполне приемлема. Велик соблазн использовать функцию rand (), однако объем занимаемой ею памяти не позволяет втиснуться в тини13.
Надеюсь, как исходник, так и сам прибор понравится и даст пищу для размышлений всем интересующимсяч микроконтроллерными устройствами. Думаю, что вы легко придумаете, как модифицировать программу, чтобы получить новые устройства, работающие по принципу фазового регулирования переменного напряжения.
P.S. Данный проект был бы невозможен без моего товарища по интернету, который пожелал остаться неизвестным (скажу только, что его имя начинается на Анд, а заканчивается на рей) именно он предложил идею такого бриз-вентилятора, предоставил схему и фотографии,а так же тщательно протестировал ее на собственноручно собранном образце устройства, пожертвовав своим временем и вентилятором. Кстати, при экспериментах ни один вентилятор не пострадал.