pulseIn() komutu, Bir pinin ne kadar süre HIGH veya LOW
durumunda kaldığını takip eder ve geçen süreyi mikrosaniye cinsinden döndürür.
Eğer zaman aşımı süresi içinde tam bir pulse alınmadıysa takibi bırakır ve 0 değerini
döndürür. Komut zaman aşımı süresi belirtilmeden de kullanılabilir ama süre parametresi
kullanılırsa kod daha hızlı yürütülür. Aynı zamanda, zaman aşımı süresi
kullanılmazsa, 500ms gibi bir süre sonunda zaman aşımı gerçekleşebilir ve komut
sıfır değerini verebilir.
Kullanımı:
pulseIn(pin, durum);
pulseIn(pin, durum, süre); (Tavsiye
edilen kullanım şekli)
pin :
Okunacak pin.
durum :
HIGH yada LOW.
süre :
10 mikrosaniyeden 3 dakikaya kadar. Veri türü: unsigned long.
Örnek:
sure = pulseIn(9, HIGH,
10000000);
Bu komut; 9 nolu pinin durumu HIGH olduğu zaman
saymaya başlar. Pin LOW konumuna düştüğünde saymayı bırakır ve geçen süreyi “sure”
değişkenine atar. Eğer pin 10000000 mikrosaniye(10sn) boyunca HIGH olmazsa yani
bir pulse oluşmazsa 0 değerini döndürür.
Örnek Program Kodları:
#define buton 7
unsigned long sure=0; //mikrosaniye cinsinden değer alacağı için bellekte büyük yer ayırdık.
void setup()
{
Serial.begin(9600);
pinMode(buton, INPUT);
}
void loop()
{
sure = pulseIn(buton, HIGH,10000000);
Serial.print("Butona Basık Kalma Süresi= ");
Serial.print(sure);
Serial.println(" mikrosaniye");
}
0 comments:
Yorum Gönder