Попередня версія регулятора дещо морально застаріла в світлі теперішнього рівня розуміння мого структури та того як шим регулятор 220 вольт може бути виконаний програмно та компонентно. Крім того, з’явилася нагальна необхідність в двох керуючих енкодерах — адже ергономіку ніхто не відміняв. Тому виділив час та ресурси на цей проект.

Думаю що треба буде ще зробити регулятор зі стабілізацією швидкості обертання колекторного двигуна 220 Вольт, але про все по черзі.
ШIМ регулятор 220 вольт — ергономіка .
Вподобання та звички людей мають дуже велике значення. Перед початком проекту мені було цікаво — адже будь яке меню в моєму баченні електроніки легко читається , зручне для керування та осучаснює будь який пристрій. Але, є звички людей і , наприклад , для двохконфорочної електроплитки зручніше мати дві ручки керування ніж меню та один енкодер. Я прихильник ергономічної зручності з точки зору кінцевого користувача. Тому роблю два енкодери керування електроплитою.
Виявилося, що LCD екран — це стильно, красиво, сучасно але не зовсім практично. Ввімкнута конфорка додатково індикується звичайним світлодіодом червоного кольору. А ось запам’ятати потужність на якій вчорась вмикали ліву плитку виявилось корисним.
Ставимо собі завдання :
- індикатор потужності двох каналів плюс світлодіод on/off
- два енкодера кожен з яких регулює потужність своєї конфорки
- вимикання конфорки натисканням на кнопку енкодера
- вимикання обох конфорк призводить до вимикання схеми
- вимикання обох конфорок якщо півгодини ніхто не підходить до плити
- вмикання кнопкою on в режимі попередньму до вимикання
- яка ж сучасна плита без годинника? — годинник
- таймер вимикання на час
Почнемо з вмикання системи — це так званий вихід зі сну пристрою. Можна звичайно все організувати на мікроконтролері, але у нас в Україні не дякуючи недобрим сусідам з певною частотою зникає напруга в мережі та є ненульова вірогідність старту з ненормованою напругою. Тому реалізація старту зроблена комбінована — при подачі кнопкою напруги на схему мікроконтролер фіксує режим on . В залежності від того який режим був перед вимиканням даної конфорки буде різна потужність старту. Мікропроцессор ввімкне її в тому самому режимі який був до вимикання.
Так складається, що натискання будь якої з кнопок запускає мікропроцессор та всю систему, але вмикається та конфорка яку кнопку натиснув користувач. Для запуску іншої конфорки треба натиснути другу кнопку.
Годинник.
Тут все просто і прозоро — беремо RTC та виводимо реальний час на LCD. Здається не складно та й готових скетчів підключення багато, довелось тільки додати перехід на зимовий/літній час. Для налаштування годинника використовується окремий скетч.
#include <microDS3231.h>
MicroDS3231 rtc;
void setup() {
rtc.setTime(COMPILE_TIME);
}
void loop() {
}
Перевіримо що записалось в наш годинник. При необхідності, корегуємо час +1 або -1 година. Іноді програма не хоче правильно писати дату чи рік. Цей скетч допоможе виправити і ці параметри, хоча в нашій ситуації потрібні тільки години та хвилини. Але перехід на літній/зимовий час здійснюється в певні дати, тому краще перевірити та при необхідності виправити і дату також,
#include <microDS3231.h>
MicroDS3231 rtc;
void setup() {
Serial.begin(9600);
// получаем все данные в структуру
DateTime now = rtc.getTime();
// меняем любой параметр
//now.year += 5;
// now.second;
// now.minute;
// now.hour;
now.hour -= 1; // на годину менше
// now.hour += 1; // або на годину більше
// now.day;
// now.date;
// now.month;
// отправляем в rtc
rtc.setTime(now);
}
void loop() {
printTime();
delay(500);
}
void printTime() {
// получаем все данные в структуру и используем их
// этот способ быстрее и "легче" вызова отдельных get-функций
DateTime now = rtc.getTime();
Serial.print(now.hour);
Serial.print(":");
Serial.print(now.minute);
Serial.print(":");
Serial.print(now.second);
Serial.print(" ");
Serial.print(now.day);
Serial.print(" ");
Serial.print(now.date);
Serial.print("/");
Serial.print(now.month);
Serial.print("/");
Serial.println(now.year);
}
Регулятор 220 вольт — таймер вимикання.
Колись дуже дуже давно був такий кіножурнал «Єралаш». І був там один сюжет — бабуся попросила внука полагодити праску. Внук був винахідником та замість полагодити зробив з праски літаюче чудо техніки. Але бабусі потрібна була звичайна праска.
Це дуже важливий момент — не перемудрити щоб не зламати ергономіку системи. Дуже легко просто додати функцію до енкодеру, але є тонка межа між зручністю та складністю. Тому я додаю окрему кнопку для таймера. Однократне натискання на кнопку додає 5 хвилин. Якщо було наприклад натиснуто кнопку один раз — в нижньому рядку LCD з’явиться напис з реальним таймером зворотнього відліку. Натиснувши ще раз , буде 10 хвилин, ще раз — 15 хвилин. І так далі.
Але в нас є ще один таймер зворотнього відліку — таймер активується коли в приміщенні довгий час нікого немає.
Вимикання обох конфорок якщо півгодини ніхто не підходить до плити.
Я власне теж інколи забуваю що на плиті щось готується. Якщо вже так вийшло, що нам довелось запихнути мізки в регулятор 220 вольт, то можна додати й функцію безпеки. Є дуже цікавий датчик руху — він не реагує на дрібні моменти та має гнучкі налаштування. В якості експерименту я додав його до нашої праски.
Працює все таким чином : це свого роду аналог сторожа — лічильника. Лічильник постійно рахує і коли дораховує до півгодини — вимикає живлення пристрою. RCWL-0516 постійно моніторить та спрацьовує на рух. При спрацюванні мікроконтролер обнуляє лічильник . Це призводить до ситуації що регулятор 220 вольт вимкнеться якщо півгодини підряд RCWL-0516 не спрацює на рух.
Регулятор 220 вольт вимикання.
Для того щоб вимкнути конфорку достатньо натиснути кнопку енкодера. При цьому вимкнути конфорку можна і зниженням потужності нагріву до нуля. Різниця полягає в тому що при зниженні потужності до нуля при слідуючому вмиканні конфорки вона буде ввімкнута на 100%. А при вимиканні натисканням на кнопку енкодера наступне вмикання буде з такою ж потужністю як в момент вимикання.
При вимиканні конфорки мікроконтролер перевіряє стан іншої. Та якщо виявиться що вона вимкнена та на протязі хвилини не буде ввімкнута, то система повністю вимкнеться.
LCD 16×2 індикатор потужності регулятора 220 вольт.
Взагалі, LCD, це надлишкова для цієї схеми деталь. Але, є але. По-перше, це дозволяє легко ввести в схему годинник та вивести його на екран. По-друге — а чому б і ні? Тим більше, ніхто не обмежує ні інформацію ні ресурси. Це десь з серії — я художник — я так бачу.
Довелось виділити на індикацію годинника 5 розрядів верхнього ряду. Для краси треба зайняти 5 розрядів нижнього ряду. Коли буде ввімкнутий таймер зворотнього відліку на вимикання, ці розряди будуть зайняті хвилинами та секундами відліку. Тому в нас є 5 розрядів для виводу корисної інформації.
В мене з’явилася ідея вивести в ці розряди напругу в мережі. В наших умовах це буде корисна інформація, тим більше що ресурси мікроконтролера дозволяють це легко зробити.
