Merhabalar. Bir proje yapıyorum, askıya eşya takıldığı zaman led yanıyor ve I2C LCD ekranda uyarı çıkıyor. Eşya askıdan alındığında led sönüyor ve ekrandaki yazı siliniyor. Kod buraya kadar tamam. 2. aşama olarak, askıda eşya varken kapı açılırsa (yani kapı pini on olursa) buzzer ötecek ve ekrandaki yazı silinip yerine farklı bir yazı yazılacak. Bu kısım çalışmıyor. Yardımınıza ihtiyacım var. Kod şu şekilde:
#include <LiquidCrystal_I2C.h>
#include <AvrI2c_Greiman.h>
#include <LiquidCrystal_I2C_AvrI2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
const int buzzerPin = 5;
const int KapiPin = 3;
const int AskiPin = 8;
const int ledPin = 2;
int x = 0;
int KapiDurumu = 0;
int eskiKapiDurumu = HIGH;
int AskiDurumu = 0;
int eskiAskiDurumu = HIGH;
void setup() {
lcd.init();
pinMode(buzzerPin, OUTPUT);
pinMode(KapiPin, INPUT_PULLUP);
pinMode(AskiPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
lcd.backlight();
}
void loop()
{
int yeniKapiDurumu = digitalRead(KapiPin);
int yeniAskiDurumu = digitalRead(AskiPin);
if (yeniAskiDurumu == HIGH && eskiAskiDurumu == LOW) {
lcd.setCursor(0,0);
lcd.print("Esyanizi");
lcd.setCursor(0,1);
lcd.print("Unutmayiniz.");
if (x == 0) {
digitalWrite(ledPin, HIGH);
x = 1;
delay(10);
} else {
lcd.clear();
digitalWrite(ledPin, LOW);
x = 0;
delay(10);
}
if (yeniKapiDurumu == HIGH && eskiKapiDurumu == LOW) {
tone(buzzerPin, 1000); // Send 1KHz sound signal…
delay(1000); // …for 1 sec
noTone(buzzerPin); // Stop sound…
delay(1000); // …for 1sec
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Esyanizi");
lcd.setCursor(0,1);
lcd.print("Unuttunuz!");
}
}
eskiAskiDurumu = yeniAskiDurumu;
}