Advertisement
Guest User

Arduino Countdown Timer

a guest
Jul 12th, 2015
831
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.86 KB | None | 0 0
  1. /* Arduino Countdown Timer ~ www.boarduino.blogsot.com*/
  2. #include <LiquidCrystal.h>
  3. int jam = 0; //jam (hours)
  4. int menit = 0; //menit (minutes)
  5. int detik = 0; //detik (seconds)
  6. int led = 13;
  7. char hasil;
  8. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
  9.  
  10. void setup() {
  11.  lcd.begin(16, 2);
  12.  Serial.begin(38400); //Baudrate adjust to your bluetooth module
  13.  pinMode(13, OUTPUT);
  14.  
  15.     lcd.print("  Aktif Dalam:");
  16.     lcd.setCursor(4, 2);
  17.     (jam < 10) ? lcd.print("0") : NULL;
  18.     lcd.print(jam);
  19.     lcd.print(":");
  20.     (menit < 10) ? lcd.print("0") : NULL;
  21.     lcd.print(menit);
  22.     lcd.print(":");
  23.     (detik < 10) ? lcd.print("0") : NULL;
  24.     lcd.print(detik);
  25.     lcd.display();
  26. }
  27.  
  28. void loop() {  
  29.   if(Serial.available() >0 ) {
  30.    hasil = Serial.read();
  31.    lcd.clear();
  32.    delay(3);
  33.    lcd.print("  Aktif Dalam:");
  34.    lcd.setCursor(4, 2);
  35.    (jam < 10) ? lcd.print("0") : NULL;
  36.    (jam < 10) ? Serial.print("0") : NULL;
  37.    lcd.print(jam);
  38.    Serial.print(jam);
  39.    lcd.print(":");
  40.    Serial.print(" : ");
  41.    (menit < 10) ? lcd.print("0") : NULL;
  42.    (menit < 10) ? Serial.print("0") : NULL;
  43.    lcd.print(menit);
  44.    Serial.print(menit);
  45.    lcd.print(":");
  46.    Serial.print(" : ");
  47.    (detik < 10) ? lcd.print("0") : NULL;
  48.    (detik < 10) ? Serial.print("0") : NULL;
  49.    lcd.print(detik);
  50.    Serial.print(detik);
  51.    lcd.display();
  52.   }
  53.   if(hasil == '1' ) {
  54.     jam++;
  55.     delay(200);
  56.   } else if( jam > 24) {
  57.     jam = 0;
  58.     lcd.setCursor(4, 2);
  59.    (jam < 10) ? lcd.print("0") : NULL;
  60.    lcd.print(jam);
  61. }
  62.   if (hasil == '2') {
  63.     jam-=1;  
  64.     delay(100);
  65.   } else if ( jam < 0) {
  66.     jam = 24;
  67.     lcd.clear();
  68.    delay(3);
  69.    lcd.print("  Aktif Dalam:");
  70.    lcd.setCursor(4, 2);
  71.    (jam < 10) ? lcd.print("0") : NULL;
  72.    lcd.print(jam);
  73.    lcd.print(":");
  74.    (menit < 10) ? lcd.print("0") : NULL;
  75.    lcd.print(menit);
  76.    lcd.print(":");
  77.    (detik < 10) ? lcd.print("0") : NULL;
  78.    lcd.print(detik);
  79.    lcd.display();
  80. }
  81. if(hasil == '3' ) {
  82.     menit++;
  83.     delay(200);
  84.   } else if( menit > 59) {
  85.     menit = 0;
  86.     lcd.setCursor(4, 2);
  87.    (menit < 10) ? lcd.print("0") : NULL;
  88.    lcd.print(menit);
  89. }
  90.   if (hasil == '4') {
  91.     menit-=1;  
  92.     delay(200);
  93.   } else if ( menit < 0) {
  94.     menit = 59;
  95.     lcd.clear();
  96.    delay(3);
  97.    lcd.print("  Aktif Dalam:");
  98.    lcd.setCursor(4, 2);
  99.    (jam < 10) ? lcd.print("0") : NULL;
  100.    lcd.print(jam);
  101.    lcd.print(":");
  102.    (menit < 10) ? lcd.print("0") : NULL;
  103.    lcd.print(menit);
  104.    lcd.print(":");
  105.    (detik < 10) ? lcd.print("0") : NULL;
  106.    lcd.print(detik);
  107.    lcd.display();
  108. }
  109. if(hasil == '5' ) {
  110.     detik++;
  111.     delay(200);
  112.   } else if( detik > 59) {
  113.     detik = 0;
  114.     lcd.setCursor(4, 2);
  115.    (detik < 10) ? lcd.print("0") : NULL;
  116.    lcd.print(detik);
  117. }
  118.   if (hasil == '6') {
  119.     detik-=1;  
  120.     delay(200);
  121.   } else if ( detik < 0) {
  122.     detik = 59;
  123.     lcd.clear();
  124.    delay(3);
  125.    lcd.print("  Aktif Dalam:");
  126.    lcd.setCursor(4, 2);
  127.    (jam < 10) ? lcd.print("0") : NULL;
  128.    lcd.print(jam);
  129.    lcd.print(":");
  130.    (menit < 10) ? lcd.print("0") : NULL;
  131.    lcd.print(menit);
  132.    lcd.print(":");
  133.    (detik < 10) ? lcd.print("0") : NULL;
  134.    lcd.print(detik);
  135.    lcd.display();
  136. }
  137. if (hasil == '8') {
  138.     jam = 0;
  139.     menit = 0;
  140.     detik = 0;
  141.     lcd.setCursor(4, 2);
  142.     (jam < 10) ? lcd.print("0") : NULL;
  143.     lcd.print(jam);
  144.     lcd.print(":");
  145.     (menit < 10) ? lcd.print("0") : NULL;
  146.     lcd.print(menit);
  147.     lcd.print(":");
  148.     (detik < 10) ? lcd.print("0") : NULL;
  149.     lcd.print(detik);
  150.     lcd.display();
  151.   }
  152.   else if(hasil == '7') {
  153.     lcd.clear();
  154.    delay(3);
  155.    lcd.print("  Aktif Dalam:");
  156.    lcd.setCursor(4, 2);
  157.    (jam < 10) ? lcd.print("0") : NULL;
  158.    (jam < 10) ? Serial.print("0") : NULL;
  159.    lcd.print(jam);
  160.    Serial.print(jam);
  161.    lcd.print(":");
  162.    Serial.print(" : ");
  163.    (menit < 10) ? lcd.print("0") : NULL;
  164.    (menit < 10) ? Serial.print("0") : NULL;
  165.    lcd.print(menit);
  166.    Serial.print(menit);
  167.    lcd.print(":");
  168.    Serial.print(" : ");
  169.    (detik < 10) ? lcd.print("0") : NULL;
  170.    (detik < 10) ? Serial.print("0") : NULL;
  171.    lcd.print(detik);
  172.    Serial.print(detik);
  173.    lcd.display();
  174.    
  175.       hitungMundur();
  176.       delay(1000);
  177.      }
  178.    }
  179.  
  180. void hitungMundur() {
  181.     if (detik > 0) {
  182.     detik -= 1;
  183.     } else {
  184.     if (menit > 0) {
  185.     detik = 59;
  186.     menit -= 1;
  187.     } else {
  188.     if (jam > 0) {
  189.     detik = 59;
  190.     menit = 59;
  191.     jam -= 1;
  192.     } else {
  193.     aktif();
  194.    }
  195.   }
  196.  }
  197. }
  198.  
  199. void aktif() {
  200.  lcd.clear();
  201.  lcd.setCursor(5, 1);
  202.  lcd.println("BOOM");
  203.  digitalWrite(led, HIGH);
  204.  delay(50);
  205.  digitalWrite(led, LOW);
  206.  delay(50);
  207.  digitalWrite(led, HIGH);
  208.  delay(50);
  209.  digitalWrite(led, LOW);
  210.  delay(50);
  211.  digitalWrite(led, HIGH);
  212.  delay(50);
  213.  digitalWrite(led, LOW);
  214.  delay(50);
  215.  digitalWrite(led, HIGH);
  216.  delay(50);
  217.  digitalWrite(led, LOW);
  218.  delay(10);
  219.  lcd.display();
  220. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement