Thursday, March 7, 2019

MINI Project ตัวจับเวลา

#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

MINI Project ตัวจับเวลา

#include <LiquidCrystal.h> LiquidCrystal lcd(7,6,5,4,3,2); const int set = 8; int hours=10; int start=11;  int relay=9; ...