Кращий друг людини в спеку (при відсутності в приміщенні кондиціонера, зрозуміло) - вентилятор. Однак, часто побічним ефектом такої дружби є всілякі застуди наслідки. Зазвичай середньостатистичний карлсон може перебувати в двох станах - включеному і вимкненому. У першому випадку від нього немає ніякої користі, тому що приємно-охолоджуючого повітряного потоку він не створює. У другому випадку повітряний потік є, але в силу своєї безперервності, він надає не найсприятливіший вплив на сидячого перед ним людини. Більш просунуті великі жирні Карлсони мають перемикач швидкостей, але проблему це не вирішує. Так само просунуті Карлсони мають поворотний механізм, завдяки якому вони поперемінно обдувають об'єкти перед ними під різними кутами істотно зменшуючи ризик застуди, але, по-перше, швидкість повороту не піддається регулюванню, по-друге, при використанні такого Карлсона в офісі не всіх сидять поруч сусідів може призвести в захват це його всеобдувающее властивість (особливо, якщо їх вже застудив який-небудь неприборканий карлсон) і по-третє, у придбаного мною вентілятоа поворотника не було.
Для приборкання венітілятора вирішено було спорудити пристрій, який дозволить:
- регулювати швидкість обертання вентилятора (всього десять градацій швидкості)
- створювати різні ефекти, коли швидкість обертання плавно наростає / спадає або змінюється випадковим чином
- показувати температуру повітря в приміщенні
Схема пристрою показана на малюнку нижче. В її основі лежить мікроконтролер IC2, до якого підключений датчик температури IC3, двуразрядний семисегментний індикатор і дві керуючі кнопки. Через резистори R7, R8 і діоди D1, D2 на МК подається напруга з вторинної обмотки мережевого понижуючого трансформатора (X1 і X2), для визначення моментів переходу через нуль сінусойди напруги живлення. Управління двигуном вентилятора здійснюється за допомогою симистора T1, підключеному до МК через підсилювач струму на транзисторі VT1.
Регулювання швидкості обертання вентилятора здійснюється зміною подається на нього напруги фазовим методом. Для отримання максимальної швидкості обертання симистор тримається відкритим протягом усього полупериода сінусойди. Для отримання меншій швидкості обертання симистор тримається закритим на початковій ділянці сінусойди і відкривається в певний момент. Наприклад, для швидкості обертання 50% симистор буде закритий першу половину полупериода і відкритий протягом його другої половини. Хоча, звичайно, швидкість обертання залежить від напруги взагалі кажучи, не зовсім лінійно (а на початковій ділянці навіть зовсім не лінійно!).
Працює пристрій наступним чином: кнопки S1 і S2 служать для перемикання режимів роботи, поточний режим відображається на екрані у вигляді мерехтливих символів. Режимів всього 14:
[С0..С9]
обертання з постійною швидкістю (С0 - повільно, С9 - швидко)
[БР]
"Бриз" - плавне наростання і різкий спад швидкості обертання
[БС]
"Випадковий бриз" - швидкість обертання теж плавно наростає і різко зменшується, але, на відміну від попереднього режиму, часи наростання і спаду будуть випадковими (а точніше псевдовипадковими)
[c]
обертання випадковим чином на малих обертах
[C]
обертання випадковим чином на різних оборотах
Через пару секунд після зміни режиму на екрані буде відображена поточна температура. На відміну від символів режиму символи температури вже не блимають. Тобто, якщо при роботі не натискати кнопок, на екрані буде відображатися температура, при першому натисканні на будь-яку кнопку на екрані з'являться поточний режим, а подальші натиснення будуть цей режим міняти.
І на закінчення слід зробити одне важливе зауваження щодо початкових кодів прошивки. Оскільки Карлсони у всіх живуть різні, характеристики у них теж, взагалі кажучи, різні, то не виключено, що прошивку доведеться трохи адаптувати під конкретний мотор. Зміни можуть торкнутися трьох рядків у файлі main.c
PROGMEM uint8_t stepping [MAX_STEP] = {170, 160, 150, 140, 100, 50, 10, 1};
PROGMEM uint8_t stepping2 [MAX_STEP2] = {170, 160, 150, 140, 100};
PROGMEM uint8_t powers [10] = {170, 160, 150, 140, 120, 100, 50, 25, 10, 1};
Значення в масивах задають швидкості обертання вентилятора, причому, більшому значенню відповідає менша швидкість. В даному випадку, значення лежать в діапазоні від 1 (максимальна швидкість обертання) до 170 (мінімальна швидкість). Масив stepping містить швидкості наростання і спаду для ефектів "бризу" [БР], "випадкового бризу" [СБ] і обертання випадковим чином [З]. Масив stepping2 містить константи швидкостей для обертання випадковим чином на малих обертах [з] (бачимо, що мінімальний елемент в цьому масиві - 100, тобто, швидкість обертання ніколи не досягне максимуму). Масив powers містить константи швидкостей обертання для режимів [С0..С9].
А тепер, власне, важливе зауваження. Якщо швидкість обертання вентилятора буде задана замалою (тобто, якесь значення масиву виявиться занадто великим), то вентилятор зовсім перестане крутитися. Обмотка зовсім некрутящегося вентилятора є чисто резистивної навантаженням, а чисто резистивная навантаження з таким маленьким опором має властивість сильно грітися. Тобто, якщо ви не хочете перетворювати вентилятор в обігрівач (який, до того ж, пропрацює зовсім не довго) і не любите влаштовувати вдома димові ефекти, то після складання пристрою треба ретельно протестувати його роботу на малих обертах протягом декількох годин і категорично переконатися, що карлсон не перегрівається. А інакше ... Особисто я поставив "тестуватися" вентилятор на ніч, і в підсумку засинав під охолоджуючим "бризом", а прокинувся від запаху паленої обмотки безповоротно покинув цей світ в самому розквіті сил Карлсона.
За посиланням нижче можна скачати архів, що містить схему регулятора в форматі Eagle, вихідні коди, файл прошивки, файл значень фьюз для avr-eclipse (blower.fuses), а також зображення друкованої плати готове для прасування її лазерним праскою (board.svg).
файли: Схема, плата, вихідні коди і прошивка