kardeşim merak etme yardım her zaman var.
istiyorsun ki ben butona basayım saymaya başlasın. 60 saniye sonra buzzer çalsın butona basınca buzzer sussun.
basılı tutunca sayması normal. çünkü if kullanılmış.
millis fonksyonunu kullanarak bir süre tutma tekniği var.
ama while da kullanabilirsin. veya for. ben şahsen for u tavsie ederim.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
#define butonPin 4
#define bazirPin 5
int sure=0
int butonDurumu;
void setup(){
pinMode(bazirPin, OUTPUT);
pinMode(butonPin, INPUT);
}
void loop(){
lcd.clear();
sure=0;
lcd.home();
lcd.print("Kronometre");
butonDurumu = digitalRead(butonPin);
if(butonDurumu == HIGH){
for(sure=0; sure<=60; sure+=1){
lcd.setCursor(0,1);
lcd.print(sure);
delay(998);
//burada delay 1000 yazmamamın sebebi yukarıdaki lcd yazma işlemlerinin aldığı birkaç ms zaman //yüzünden sapmalar olması ihtimalidir. nolur nolmaz 998 yazdım.
}
}
digitalWrite(bazirPin, HIGH);
butonDurumu = digitalRead(butonPin);
if(butonDurumu==HIGH)
digitalWrite(bazirPin, LOW);
}
bir de bu kodu dene bakalım. bu arada buzzer ve butonun pinlerini değiştirdim. 1. pin pek uygun değil çünkü bilgisayara haberleşme sağlayan pin. projelerde kullanılmaması tavsiye edilir.
gördüğün gibi for ile 0 dan 60a sayıp bunu ekranda gösterebiliyoruz.
Sayın Berad Bey
öncelikle yardımlarınız için çoook teşekkürler.Tam istediğim gibi olmuş..
similasyonda denedim buton bastığımda kronometre saymaya başlıyor fakat bu arada buzer aktif oluyor. 60 dk olduğunda buzer sıfırlanmıyor. devamlı yanıyor.
aşağıda simulasyon resmini yoluyorum..
şimdiden teşekkürler.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
#define butonPin 9
#define bazirPin 8
int sure=0;
int butonDurumu=0;
void setup(){
pinMode(bazirPin, OUTPUT);
pinMode(butonPin, INPUT);
}
void loop(){
lcd.clear();
sure=0;
lcd.home();
lcd.print("Kronometre");
butonDurumu = digitalRead(butonPin);
if(butonDurumu == HIGH){
for(sure=0; sure<=60; sure+=1){
lcd.setCursor(1,0);
lcd.print(sure);
delay(998);
//burada delay 1000 yazmamamın sebebi yukarıdaki lcd yazma işlemlerinin aldığı birkaç ms zaman //yüzünden sapmalar olması ihtimalidir. nolur nolmaz 998 yazdım.
}
}
digitalWrite(bazirPin, HIGH);
butonDurumu = digitalRead(butonPin);
if(butonDurumu==HIGH)
digitalWrite(bazirPin, LOW);
}