Arduino ile buton basım sayısı sayma

MrNazlum

Üye
Katılım
4 Haz 2017
Mesajlar
8
Puanları
1
Yaş
25
Arduino ile robotik kaynak makinesinin kaç defa işlem yaptığını sayıcam ve sayı 5000 olduğu zaman bir lambaya çıkış vericem kod yazımında yardımcı olabilecek varmı basit bir kod bloğu olucak zaten.
 
Çok teşekkürler ama istediğim değeri nereye gireceğimi bulamadım türkçe olarak biraz anlatırsanız sevinirim
 
Kod:
int sayac = 0; // buton değerini hafızada tutmak için değişkenimiz
int LED = 5; //LED'in bağlı olduğu pin 5 olarak belirlendi

void setup()
{
  pinMode(LED, OUTPUT); //LED çıkış olarak ayarlandı
 
  attachInterrupt(0, LEDiyak, FALLING); /* düşen kenarda tetiklenecek int0 dış kesmesi ayarlandı. 
  Yani Arduino Uno için buton 2 numaralı pine bağlanmalıdır */
  Serial.begin(9600);
}

void loop()
{
 // buraya diğer program kodları yazılabilir
}

void LEDiyak() // kesme fonksiyonu
{
    sayac++; // Butona her basıldığında sayaç bir artırılacak
    if(sayac == 500){ // butona 500 kez basılınca
        digitalWrite(LED,HIGH); // 5 numaralı pine bağlı led yanacak
    } else if (sayac > 500){ // led yandıktan sonra tekrar butona basılınca
        digitalWrite(LED, LOW); // led sönecek ve
        sayac = 0; // sayaç sıfırlanacak
    }
}
 
@kaptan_ gerçekten çok teşekkür ederim. Ama bunu kopyalarak kullanmak istemiyorum. Öğrenciyim ve öğrenmem gerekiyor. Acaba bazı fonksiyonların ne işe yaradığını açıklarmısın? Listeliyorum;
attachInterrupt(0,LEDiyak, FALLING); kısmında attachInterrupt ve falling ne işe yarıyor bu komutu açıklarmısın?
Bide Serial.begin(9600) sanırım iletişim hızını belirliyor değilmi ?
 
attachInterrupt() dış kesmedir. int0, int1, int2 özellikli pinlerde kullanılır. parantez içerisindeki "0" değeri int0 dış kesmesini, kullanacağımızı işaret eder.

"LEDiyak" kısmı kesme fonksiyonumuzun ismini belirtir.

"FALLING" kısmı ise kesmenin nasıl oluşacağını belirtir. Bu kısımda;
FALLING : düşen kenar (butondan elimizi çekerken çalışır)
RISING : yükselen kenar (butona basarken çalışır)
CHANGE : pindeki lojik değişiklik kesmesi
LOW : pin lojik 0 seviyesine düştüğünde çalışır.

Kesmeler aktif edildiğinde arduino o anda yaptığı tüm işlemleri bırakır ve kesme fonksiyonundaki işlemi yapar, ardından eski işlemine kaldığı yerden devam eder.
 
Yardımlarınız için çok teşekkür ederim. Emek verip yazdığınız için ayrıca teşekkür ederim.
 

Forum istatistikleri

Konular
129,903
Mesajlar
931,173
Kullanıcılar
452,788
Son üye
erisik

Çevrimiçi üyeler

Geri
Üst