#include <LiquidCrystal.h>
LiquidCrystal lcd(7,6,5,4,3,2);
const int set = 8;
int hours=10;
int start=11;
int relay=9;
int b=0,h=0,t=0;
int buttonState = 0;
int lastButtonState = 0;
int red = 12,green = 13;
void setup() {
pinMode(set,INPUT);
pinMode(hours,INPUT);
pinMode(red,OUTPUT);
pinMode(green,OUTPUT);
pinMode(relay,OUTPUT);
pinMode(start,INPUT);
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("Adjustable Timer");
}
int timer( int b,int h)
{
if(b<=9)
{
lcd.setCursor(3,1);
lcd.print(0);
lcd.setCursor(4,1);
lcd.print(b);
}
else{lcd.setCursor(3,1);lcd.print(b);}
lcd.setCursor(2,1);
lcd.print(":");
if(h<=9)
{
lcd.setCursor(0,1);
lcd.print(0);
lcd.setCursor(1,1);
lcd.print(h);
}
else{lcd.setCursor(0,1);lcd.print(h);}
}
void loop()
{
buttonState = digitalRead(set);
if (buttonState != lastButtonState)
{
if(buttonState == HIGH)
{
lcd.clear();
lcd.print("Set time in min:");
digitalWrite(red,HIGH);
digitalWrite(green,LOW);
++b;
timer(b,h);
}
lastButtonState = buttonState;
}
if (digitalRead(hours)== HIGH)
{
lcd.clear();
lcd.print("Set time in hours");
digitalWrite(red,HIGH);
digitalWrite(green,LOW);
++h;
timer(b,h);
while(digitalRead(hours)==HIGH);
}
if(digitalRead(start)==HIGH)
{
lcd.clear();
t=((h*60)+(b))*1000;
lcd.print("Timer is set for");
timer(b,h);
digitalWrite(relay,HIGH);
digitalWrite(green,HIGH);
digitalWrite(red,LOW);
delay(t);
lcd.clear();
lcd.print("Done");
digitalWrite(relay,LOW);
digitalWrite(red,HIGH);
digitalWrite(green,LOW);
while(digitalRead(start) == HIGH ); }
อ้างอิง:https://www.electronicshub.org/adjustable-timer/?fbclid=IwAR3xcWZ-hqKsWHKk8PAZxrheo4DR928yGz3_ss-J25Go9dmkH_wE7fEL-F4
No comments:
Post a Comment