#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
int buzeris = 13; //buzerio realus bus 13
int rele = 12; //pakeista is 7
int Led1 = 11; //pakeista is 12
int Counter = 0;
int kord = 8;
int mygtukas1 = 2; //Mygtukas 1 yra is sejamosios, didina counteri su sek uzlaikymu.
int mygtukas2 = 3; // rezervas
int mygtukas3 = 4; // rezervas
int mygtukas4 = 5; // Resetas counterio pakeista is 5
int mygtukas5 = 6; // rezervas
int buttonState = 0;
int lastButtonState = LOW;
int buttonState1 = 0;
int lastButtonState1 = LOW;
int buttonState4 = 0;
int lastButtonState4 = LOW;
int prevButtonState = LOW;
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 200; // Laikas kuris nurodo kiek laiko turi buti mygtukas paspaustas, del netikru paspaudimu.
unsigned long buzer_off_laikas = 1000;// OFF time for LED
unsigned long buzer_on_laikas = 1000;// ON time for LED
unsigned long rememberTime=0; // visi sitie 4 migsejimo parametrai
void setup(){
lcd.init();
lcd.backlight();
pinMode(mygtukas1, INPUT);
pinMode(rele, OUTPUT);
pinMode(Led1, OUTPUT);
pinMode(buzeris, OUTPUT); // buzeris kaip out
lcd.setCursor(1,0);
lcd.print("T. Malinausko ukis");
Serial.begin(9600);
}
void Automatinis (){
int reading = digitalRead(mygtukas1);
if (reading != lastButtonState) {
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) >= debounceDelay) {
if (reading != buttonState) {
buttonState = reading;
if (buttonState == HIGH) {
Counter = Counter +1;
lcd.setCursor(0,2);
lcd.print(" Ciklas:");
lcd.setCursor(kord,2);
lcd.print(Counter);
Serial.println(Counter);
}
}
}
if (Counter == 5 && lastButtonState == HIGH ) {
digitalWrite(Led1, HIGH);
digitalWrite(rele, HIGH);
lcd.setCursor(0,3);
lcd.print("*daroma tech. veze*");
}
//resetas counterio ""Counter == 5"" kiek vagu
if (Counter == 5 && lastButtonState == LOW){
delay(1000);
digitalWrite(Led1, LOW);
digitalWrite(rele, LOW);
Counter = 0;
lcd.clear();
} else {
lcd.setCursor(1,0);
lcd.print("T. Malinausko ukis");
lcd.setCursor(0,2);
lcd.print(" Ciklas:");
lcd.setCursor(kord,2);
lcd.print(Counter);
}
delay(5);
lastButtonState = reading;
// ---------------------- reseto mygtukas -------------------
int reading4 = digitalRead(mygtukas4);
if (reading4 != lastButtonState4) {
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) >= debounceDelay) {
if (reading4 != buttonState4) {
buttonState4 = reading4;
if (buttonState4 == HIGH) {
Counter = 0;
lcd.clear();
} else {
lcd.setCursor(1,0);
lcd.print("T. Malinausko ukis");
lcd.setCursor(0,2);
lcd.print(" Ciklas:");
lcd.setCursor(kord,2);
lcd.print(Counter);
}
}
}
delay(5);
lastButtonState4 = reading4;
}
//-----------------kodukas buzeriui------------------------- && buzer_state == LOW
void garsine_indikacija ()
{
if (prevButtonState == LOW && buttonState == HIGH)
{
digitalWrite(buzeris, HIGH);
rememberTime = millis();
}
if (millis() - rememberTime > buzer_on_laikas)
digitalWrite(buzeris, LOW);
prevButtonState = buttonState;
}
// ------------------- ---------------------------------------
void loop() {
Automatinis();
garsine_indikacija ();
}