Кухненски таймер
/kn34pc.com/конструкции/...

Кухненският таймер е програмиран за обратно броене и служи за изключване на домакински електрически уреди като котлони, фурни и др. след определено зададено време. Завършването на работния цикъл се индицира със звуков и светлинен сигнал. Основен елемент е програмируемия микроконтролер ATmega8, а програмата за него с някои промени е от [1].

Задаването на времето и включването става чрез ротационен енкодер, а отчитането е с LCD дисплей. Тъй като на посочения адрес проекта е само принципен, за практическата реализация и включването на релета като комутиращ елемент се наложи да се направят някои допълнения.


Конфигурирах допълнително още един изход за управление на релетата с логическа нула след изтичане на зададеното време. Промених максималното време на работа на 180 минути.
Увеличих и времето и честотата на звуковия сигнал.

При така направената програма се получава грешка от една секунда на минута, което за един час е вече цяла минута. Това е така защото изваждането на секундите не е от 60, а от 59. По желание може да се промени на 60, но тогава се получава некоректен запис на кръглите минути. Например не се изписва 5:00 минути, а 4:60. Корекцията в програмния код остава като предизвикателство за добрите програмисти.

В този вид програмата е малко над 6 kbit и е оправдано използването на по-малката ATmega8. Зареждането направих с Arduino UNO, използвано като програматор. Да не се забравя да се посочи външен кварц 16MHz.

Конструкцията се получи малко претрупана, но всичко е с цел надеждност. В захранването съм монтирал два линейни стабилизатора 7809 и 7805 за получаване на 5V за да не се използва обемист радиатор или загряване ако е само 7805, тъй като таймера работи в близост до уреди, излъчващи доста топлина.

Релето може да бъде само едно. Контактите му са за 16А и са достатъчни за много домакински уреди. Поставил съм две за да си нямам неприятности при по-продължителна употреба.

Принципната схема с микроконтролера, LCD дисплея, енкодера и други прилежащи елементи е показана на сх.1:


схема 1

На сх.2 е показано едното от релетата с транзистора, диод и съпротивления:


схема 2

На сх.3 е захранването:


схема 3

На сх.4 може да се види разположението на елементите по платката и монтирането в кутията:


схема 4

Кутията, в която са монтирани всички елементи е доста обемиста 200 х 100 х 80 mm, но не намерих по-подходяща, а и контакта за електрическа инсталация трябва да се монтира някъде.

Работата с таймера става по следния начин. Захранващият кабел 3 х 2,5 mm2 с щепсел се включва към съществуващата ел мрежа. Домакинския електроуред се включва към контакта монтиран на кутията (да се включи и неговия ключ). След това се включва малкия ключ в ляво за захранването на таймера. При това светва жълт светодиод, монтиран в близост до ключето. Светва и LCD дисплея, като на него е изписано Timer stop и 0:0 секунди. С въртене на енкодера (копчето в дясно) задаваме минутите колкото искаме да е включен нашия ел. уред. Надясно времето се увеличава, а на ляво - намалява. През това време свети и червен светодиод, който показва, че таймера е в режим stop.

Натискаме енкодера, с което се стартира времето. Червеният светодиод изгасва, а зеления светва с което таймера преминава в режим start. На дисплея се изписва Timer start и започва обратното броене на минутите и секундите.

Ако искаме да спрем таймера, предварително можем отново да натиснем енкодера, като на дисплея остава начално зададеното време. След изтичане на зададеното време, таймера преминава отново в режим stop. Освен споменатите индикации, сега се включва и звуков сигнал с продължителност, зададена в програмата (в случая: 5 секунди).

Ако се използва платка Arduino, а не само контролер, то съответствието между пиновете на ATmega8 и Arduino UNO е следното:

    ATmega8 Arduino UNO
Енкодер CLK 4 D2
  DT 6 D4
  SW 12 D6
LCD дисплей SDA 27 A4
  SCL 28  A5
Зумер   18 D12
LED червен   16 D10
LED зелен +    
релета   15 D9

 

Arduino .ino файл:
k_timer.zip [zip,ino][2kb]

Използвани външни библиотеки:
LiquidCrystalI2C [zip,cpp,h][21kb]
RotaryEncoder [zip,cpp,h][12kb]



Препратки:
1. Таймер на Ардуино с обратным отсчётом

Петко Петков, Бургас
8 май 2022 година