Этот проект представляет собой простой таймер с малым количеством компонентов, позволяющий отсчитывать 60 секунд.
Устройство может быть запитано как от батарейки 9 В, так и от подходящего сетевого адаптера для Arduino. Работа схемы очень проста!
При нажатии кнопки RESET на плате Arduino таймер начнет обратный отсчет 60 секунд. При достижении нулевой секунды пьезозуммер (BZ1) начнет издавать звук, и на дисплее высветится сообщение «TIMER ALERT!». По желанию к четвертому выводу платы можно подключить реле. Например, если вы хотите установить электромагнитное реле для включения/выключения любой внешней электрической нагрузки, просто используйте этот выход для управления электромагнитной реле с помощью подходящей для этих целей схемы драйвера на транзисторной основе.
Код:
//Arduino Self-Timer
//T.K.Hareendran
//www.electroschematics.com
#include <LiquidCrystal.h>
LiquidCrystal lcd(7,8,9,10,11,12);
int runTimer = 1;
int runFor = 60; // time in seconds
int buzzerPin = 13;
int relayPin=4;
int data = 0;
void setup() {
pinMode(buzzerPin, OUTPUT);
pinMode(relayPin,OUTPUT);
lcd.begin(16, 2);
}
void loop() {
if(runTimer == 1){
digitalWrite(relayPin,LOW); // реле отключено при счете таймера от 60 до 0
/* *измените на HIGH, если хотите, чтобы оно было включено во время счета */
lcd.clear();
lcd.print("TIMER=");
//Start timer
timer();
} else {
digitalWrite(relayPin,HIGH); // реле включается по срабатыванию таймера
/* *измените на LOW, если хотите, чтобы оно выключалось по срабатыванию таймера */
}
runTimer = 0;
lcd.noDisplay();
delay(250);
for(int duration = 0; duration < 100; duration ++){
digitalWrite(buzzerPin, HIGH);
delayMicroseconds(500);
digitalWrite(buzzerPin, LOW);
delayMicroseconds(500);
}
lcd.display();
delay(250);
}
void timer() {
for(int timer = runFor;timer > 0; --timer){
if(timer >= 10) {
lcd.setCursor(6,0);
} else {
lcd.setCursor(6,0);
lcd.print("0");
lcd.setCursor(7,0);
}
lcd.print(timer);
lcd.print(" SECOND!");
delay(1000);
}
lcd.setCursor(0,0);
lcd.clear();
lcd.print(" TIMER ALERT!");
}
Перевод © digitrode.ru