Author Topic: Timer  (Read 1671 times)

Offline IZ2XBZ

  • Newbie
  • *
  • Posts: 33
Timer
« on: November 13, 2015, 06:38:55 PM »
Da qualche settimana Tony IPK mi ha chiesto di fargli con Arduino un timer per spegnere una lampada dopo un intervallo prefissato.
Siccome a me non piace dare la pappa pronta a nessuno :) posto qui un codice dal quale partire,  un semplice timer che può essere preimpostato in ore, minuti, secondi.

Code: [Select]
#include <LiquidCrystal.h>
#include <Wire.h> //libreria wire


int hours = 0;
int minutes = 0;
int seconds = 10;
 

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
 
void setup() {
 lcd.begin(16, 2);

}
 
void loop() {

 lcd.print("Count Down Timer ");
 

 delay(150);
 
 while (hours > 0 || minutes > 0 || seconds >= 0) {
 
 lcd.setCursor(4, 2);
 
 (hours < 10) ? lcd.print("0") : NULL;
 lcd.print(hours);
 lcd.print(":");
 (minutes < 10) ? lcd.print("0") : NULL;
 lcd.print(minutes);
 lcd.print(":");
 (seconds < 10) ? lcd.print("0") : NULL;
 lcd.print(seconds);
 lcd.display();
 stepDown();
 delay(1000);
 }
}
 
void stepDown() {
 if (seconds > 0) {
 seconds -= 1;
 } else {
 if (minutes > 0) {
 seconds = 59;
 minutes -= 1;
 } else {
 if (hours > 0) {
 seconds = 59;
 minutes = 59;
 hours -= 1;
 } else {
 trigger();
 }
 }
 }
}


 
void trigger() {
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("  QUI SUCCEDE");
 lcd.setCursor(0, 1);
 lcd.print("    QUALCOSA!");
 delay(1000);
 
// lcd.display();
}


A questo punto per aggiungere un bottone per start/stop e per variare il tempo preimpostato, basta guardare gli sketch delle nostre serate,
buon lavoro!