#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define buttonPin0 4
#define buttonPin1 3
#define buttonPin2 2
#define ledPin0 8
#define ledPin1 7
#define ledPin2 6
#define debounceDelay 50
bool lastButtonState0=false;
unsigned long lastDebounceTime0=0;
bool buttonState0;
bool lastButtonState1=false;
unsigned long lastDebounceTime1=0;
bool buttonState1;
bool lastButtonState2=false;
unsigned long lastDebounceTime2=0;
bool buttonState2;
void setup() {
pinMode(buttonPin0, INPUT);
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(ledPin0, OUTPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
lcd.init();
lcd.backlight();
zobraz("Hello World!");
}
void loop() {
bool reading0 = digitalRead(buttonPin0);
if (reading0 != lastButtonState0) {
lastDebounceTime0 = millis();
}
if ((millis() - lastDebounceTime0) > debounceDelay) {
if (reading0 != buttonState0) {
buttonState0 = reading0;
if (buttonState0 == HIGH) {
digitalWrite(ledPin0, HIGH);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
zobraz("TL1 - stlacene");
}
}
}
lastButtonState0 = reading0;
bool reading1 = digitalRead(buttonPin1);
if (reading1 != lastButtonState1) {
lastDebounceTime1 = millis();
}
if ((millis() - lastDebounceTime1) > debounceDelay) {
if (reading1 != buttonState1) {
buttonState1 = reading1;
if (buttonState1 == HIGH) {
digitalWrite(ledPin0, LOW);
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
zobraz("TL2 - stlacene");
}
}
}
lastButtonState1 = reading1;
bool reading2 = digitalRead(buttonPin2);
if (reading2 != lastButtonState2) {
lastDebounceTime2 = millis();
}
if ((millis() - lastDebounceTime2) > debounceDelay) {
if (reading2 != buttonState2) {
buttonState2 = reading2;
if (buttonState2 == HIGH) {
digitalWrite(ledPin0, LOW);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
zobraz("TL3 - stlacene");
}
}
}
lastButtonState2 = reading2;
}
void zobraz(String text){
lcd.clear();
lcd.setCursor(0,0);
lcd.print(text);
}