#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
byte AA;
void setup()
{
DDRD &= ~(1<<5);
PORTD|= 1<<5;
DDRD &= ~(1<<4);
PORTD |= 1<<4;
DDRD &= ~(1<<3);
PORTD |= 1<<3;
DDRD &= ~(1<<2);
PORTD |= 1<<2;
PCICR |= 1<<PCIE2;
PCMSK2 |= 1<<PCINT18;
PCMSK2 |= 1<<PCINT19;
PCMSK2 |= 1<<PCINT20;
PCMSK2 |= 1<<PCINT21;
AA = PORTD;
SREG |= 1<<7;
lcd.begin(20, 4);
}
void loop()
{
delay(1000);
}
ISR(PCINT2_vect)
{
if((PIND&(1<<2)) == 0 && (PIND&(1<<2)) != (AA&(1<<2)))
{
lcd.setCursor(0, 0);
lcd.print("Komora1 je otvorena ");
}
else if((PIND&(1<<2)) != 0 && (PIND&(1<<2)) != (AA&(1<<2)))
{
lcd.setCursor(0, 0);
lcd.print("Komora1 je zatvorena");
}
if((PIND&(1<<3)) == 0 && (PIND&(1<<3)) != (AA&(1<<3)))
{
lcd.setCursor(0, 1);
lcd.print("Komora2 je otvorena ");
}
else if((PIND&(1<<3)) != 0 && (PIND&(1<<3)) != (AA&(1<<3)))
{
lcd.setCursor(0, 1);
lcd.print("Komora2 je zatvorena");
}
if((PIND&(1<<4)) == 0 && (PIND&(1<<4)) != (AA&(1<<4)))
{
lcd.setCursor(0, 2);
lcd.print("Komora3 je otvorena ");
}
else if((PIND&(1<<4)) != 0 && (PIND&(1<<4)) != (AA&(1<<4)))
{
lcd.setCursor(0, 2);
lcd.print("Komora3 je zatvorena");
}
if((PIND&(1<<5)) == 0 && (PIND&(1<<5)) != (AA&(1<<5)))
{
lcd.setCursor(0, 3);
lcd.print("Komora4 je otvorena ");
}
else if((PIND&(1<<5)) != 0 && (PIND&(1<<5)) != (AA&(1<<5)))
{
lcd.setCursor(0, 3);
lcd.print("Komora4 je zatvorena");
}
AA = PIND;
}