#include <LiquidCrystal.h> //
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //conexiuni LCD
#define buton_start 10 // buton start
#define buton_stop 9 // buton stop
#define buton_reset 8 //buton reset
#define led A5
#define buzzer 13
int ss=0, ms=0;
bool timerStart = false;
void setup() {
pinMode(buton_stop, INPUT_PULLUP);
pinMode(buton_reset, INPUT_PULLUP);
pinMode(buton_start, INPUT_PULLUP);
pinMode(led,OUTPUT);
pinMode(buzzer,OUTPUT);
lcd.begin(16, 2);
//Setari Timer 1
noInterrupts();
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;
OCR1A = 1999;
TCCR1B |= (1 << WGM12);
TCCR1B |= (1 << CS11);
TIMSK1 |= (1 << OCIE1A);
interrupts();
}
void loop() {
if(digitalRead (buton_start) == 0){
timerStart = true;
delay(100);
}
if(digitalRead (buton_stop) == 0){
timerStart = false;
delay(100);
}
if(digitalRead (buton_reset) == 0){
ms=0, ss=0;
delay(100);
}
lcd.setCursor (0,0);
lcd.print(" Cronometru ");
lcd.setCursor (5,1);
lcd.print("00");
lcd.print(":");
lcd.print((ss/10)%10);
lcd.print(ss%10);
//lcd.print(":");
//lcd.print((ms/100)%10);
//lcd.print((ms/10)%10);
//lcd.print(ms%10);
if ((ss >=15) && (ss<= 25)){
digitalWrite(led, HIGH);
}
else{
digitalWrite(led, LOW);
}
if ((ss >=26) && (ss<= 40)&&(ss%2==0)){
digitalWrite(led, HIGH);
}
if ((ss >=26) && (ss<= 40)&&(ss%2 >0)){
digitalWrite(led, LOW);
}
}
ISR(TIMER1_COMPA_vect){
if(timerStart == true){ ms=ms+1;
if(ms>999){ms=0;ss=ss+1;
if(ss>59){ss=0; }
}
}
}