#include <LiquidCrystal.h>
#include "pitches.h"
#define BUTTON_PIN 4
//LCD'nin arduino üzerine bağlandığı pinler
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
int led1 = 13, led2 = 12;
int buton1 = 9, buton2 = A0;
//pin change interrupt ayar fonksiyonu
void pciSetup(byte pin)
{
*digitalPinToPCMSK(pin) |= bit (digitalPinToPCMSKbit(pin)); // enable pin
PCIFR |= bit (digitalPinToPCICRbit(pin)); // clear any outstanding interrupt
PCICR |= bit (digitalPinToPCICRbit(pin)); // enable interrupt for the group
}
void setup()
{
lcd.begin(20, 4);
lcd.setCursor(0, 0);
lcd.print("");
Serial.begin(115200);
pinMode(BUTTON_PIN, INPUT_PULLUP);
// put your setup code here, to run once:
//led ve buton tanımları
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(buton1, INPUT);
pinMode(buton2, INPUT);
pciSetup(buton1); //9 nolu pin için pci ayarlandı
pciSetup(buton2); //A0 pini için pci ayarlandı
}
ISR (PCINT0_vect) // handle pin change interrupt for D8 to D13 here
{
//D9 butonu basıldı ise ledi söndür
if (digitalRead(buton1)== LOW)
{
digitalWrite(led1, HIGH);
}
else if (digitalRead(led1)== HIGH )
{
lcd.begin(20, 4);
lcd.setCursor(2, 2);
lcd.print("Mavi Led Yandi");
}
}
ISR (PCINT1_vect) // handle pin change interrupt for A0 to A5 here
{
//A0 butonu basıldı ise ledi yak
if (digitalRead(buton2)== LOW)
{
digitalWrite(led1, LOW);
}
else if (digitalRead(led2)== LOW )
{
lcd.begin(20, 4);
lcd.setCursor(2, 2);
lcd.print("Mavi Led Sondu");
}
}
int lastState = LOW;
void loop() {
lcd.clear();
digitalWrite(led2, !digitalRead(led1));
delay(1000);
}