Кухненски таймер
/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:
На сх.2 е показано едното от релетата с транзистора, диод и съпротивления:
На сх.3 е захранването:
На сх.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 година