logo

logo

Arduino Kesme(Interrupt) nedir?




Mikrodenetleyicilerde kodlar satır satır sırayla işlenir.
Arduino içinde aynı şeyler geçerlidir. 

void loop() 
{
...
...
...
}

fonksiyonu arasında yazdığımız kodlar satır satır işlenir. Her bir kod sırası geldiğinde işleme konur.
Bu seri işlem mantığı endüstriyel projelerde problem oluşturmaktadır.
Çok basit bir örnekle, durumu açıklayalım.

void loop() {
  for (int i = 0; i < 30; i++)
  { digitalWrite(led, HIGH);
    delay(1000);
    digitalWrite(led, LOW)
    delay(1000);
  }
  if(digitalRead(buton)==HIGH)
  {
    digitalWrite(buzzer,HIGH);
  }
  else
  {
    digitalWrite(buzzer,LOW);
  }
}

Kodlarımızı incelersek;

döngü başladığında led 30 defa yanıp sönecek, butona basılırsa buzzer ses verecek, butondan el çekildiğinde buzzer susacak.

Fakat gerçekte böyle çalışmayacaktır 

Siz butona ledin yanıp söndüğü for döngüsü süresi içerisinde basarsanız buton algılamayacaktır, çünkü kodun sırası gelmemiştir.

Butona basma anınız ledlerin yanıp sönme işlemi bittiği( for döngüsünün sonlandığı) ana denk gelmek zorundadır.

Küçük projelerde basit çözümler üretilebilir,

buton kontrolü for döngüsü içine taşınır, döngü içerisinde de sürekli buton kontrol edilmesi gibi.

Fakat bu durumun en ideal çözümü interrupt kesme özelliğinin kullanılmasıdır.

Arduino da intterupt(kesme) özelliği olan pinler mevcuttur.

Bu pinlere sinyal geldiğinde program kesmeye uğrar, döndüden çıkar, istenen görev uygulanır, sonra kaldığı yerden devam eder.

Yukarıdaki programda butonun herhangi bir anda arduino tarafından algılanabilmesi için interrupt pinlerinden birine bağlanması ve interrupt komutlarının kullanılması gerekir.

ARDUINO KARTI

INTERRUPT(KESME)  ÖZELLİKLİ PİNLER

Uno, Nano, Mini, other 328-based

2, 3

Uno WiFi Rev.2, Nano Every

tüm dijital pinler

Mega, Mega2560, MegaADK

2, 3, 18, 19, 20, 21

Micro, Leonardo, other 32u4-based

0, 1, 2, 3, 7

Zero

all digital pins, except 4

MKR Family boards

0, 1, 4, 5, 6, 7, 8, 9, A1, A2

Nano 33 IoT

2, 3, 9, 10, 11, 13, 15, A5, A7

Nano 33 BLE, Nano 33 BLE Sense

tüm pinler

Due

tüm dijital pinler




Yorum Gönder

0 Yorumlar