Arduino Dersi 9: Matematiksel İşlem HC-SR04 Ultrasonik Mesafe Sensörü Pulse İn Komutu

Merhaba arkadaşlar. Bugün sizlere arduinoda matematiksel işlemleri nasıl yapacağımızı, pulsein komutundan bahsedeceğim.

Arduinoda toplama, çıkarma, çarpma, bölme, üslü sayılar, karakekök alma ve modüler aritmatik(kalan bulma), mutlak değer, trigonometrik hesap,  işlemleri yapılabilmektedir.
En çok dört işlem kullanılmaktadır ama ileri düzey projelerde diğer hesaplara da ihtiyaç duyulmaktadır. Kodları açıklamaları ile buraya bırakıyorum inceleyip ihtiyaç halinde kullanabilirsiniz. Kodlarda değişkenler kullanırsanız tanımlamasını yapmayı unutmayın.
x + y // x değeri ile, y değerini toplar.
x - y // x değerinden y değerini çıkartır.
x * y // x değeri ile, y değerini çarpar.
x / y // x değerini y değerine böler.
x % y // x değerinin y ye bölümünden kalanı verir.
x ++ // x = x + 1 ile aynıdır. x değerini birer artırır.
x -- // x = x - 1 ile aynıdır. x değerini birer azaltır.
Pow(x,y); // x üzeri y işleminin sonucunu verir.
Sqrt(x); // x in karekökünü alır.
Abs(x); // x  in mutlak değerini verir.
sin(x); // x radyal açısının sinüs değerini verir.
cos(x); // x radyal açısının kosinüs değerini verir.
tan(x); // x radyal açısının tanjant değerini verir.
a=min(x,y); // a ya x ve y den en küçük hangisi ise onu yazar.
a=max(x,y); // a ya x ve y den en büyük hangisi ise onu yazar.
a=constrain(x,min,max); // x değerini iki sayı arasına sınırlar.
a=floor(x); // x ondalık sayısnıı en küçük tam sayıya yuvarlar.
a=ceil(x); // x ondalık sayısını en büyük tam sayıya yuvarlar.
Biraz da HC-SR04 ultrasonik sensöründen ve kullanımından bahsedelim. Resimde görüldüğü üzere iki tane göze benzer eleman ve dört pinden oluşmaktadır. Bu gözlerin birisi hoparlör, diğeri mikrofondur. Trig pinine digital çıkış verdiğimizde hoparlör kısmından insan kulağının duyamadığı ultrasonik ses çıkarmaya başlar. Bu ses bir cisime çarpıp geri yansıdığı zaman üzerindeki mikrofon sesi alğılar ve Echo pininden 5v çıkış verir. Aradaki zaman farkından da mesafeyi hesaplayacağız. İlk önce sensörün vcc ve gnd pinlerini arduinomuzun aynı isimli pinlerine bağlayalım. Trig pinini 2 nolu pine echo pinini 3 nolu arduino pinine bağlayalım. Kodlarımızda kolaylık olması açısından pinlerimizi trig ve echo olarak sabitleyebiliriz. Daha sonra trig pininden bir sinyal gönderip geri kapatalım. Geri kapatmazsak ses gidip geri döndükten sonra echo pini sabit olarak 5v çıkış verir ve tek mesafe gösterir. Değişen değerleri görebilmek için aç kapa yapmamız gerekiyor. Süreyi hesaplamak için özel bir komut olan pulseIn(pin numarası==HIGH); komutu kullanacağız. Bu komut nerdeyse sadece bu sensörle kullanılan istediğimiz pinin aktif olduğu süreyi hesaplamaktadır. Daha sonra süreyi bir değişkene atayıp sadece gidişi ölçmek için ikiye böleceğiz. Son olarak sürenin yarısını 29.1 rakamına bölerek mesafeyi cm cinsinden bulacağız. Mesafeyi bir değişkene aktararak projelerimizde rahat kullanabiliriz. Sensörümüzün en fazla 4 metreyi ölçtüğünü unutmayalım. 29.1 rakamı nereden çıktı derseniz sesin havadaki hızından ve cm /mikrosaniye cinsine çevrilmesiyle çıkan çirkin rakamın çarpma yerine bölmeye dönüştürülerek güzelleştirilmiş halidir. Daha sonra bu sensörle kendimize park sensörü yapacağız arkadaşlar. Mesafeyi görüntüleyebilmek için araya serial monitör kodlarıda ekledim. Serial monütörü ve değişkenlerin ne olduğunu bilmiyorsanız 7. dersimizi okuyabilirsiniz. Kodlarımızı temize geçecek olursak
const int trig =2; // trig sabitini 2 değerine sabitledik.
const int echo= 3;// echo sabitini 3 değerine sabitledik.
int sure=0;//Değişen süre değerlerini kolaylık olsun diye sure değişkenine atadık.
int mesafe=0;//Değişen mesafe değerlerini kolaylık olsun diye mesafe değişkenine atadık.
void setup() 
{
pinMode(trig, OUTPUT);
// trig pinini çıkış olarak tanımladık.
pinMode(echo, INPUT);
//echo pinini çıkış olarak tanımladık.
Serial.begin(9600);
// Bilgisayarla seri iletişimi başlattık.
}
void loop()

 {
digitalWrite(trig, HIGH);
// trig pinine aç kapa yaptık
delay(1);
digitalWrite(trig, LOW);
// trig pinine aç kapa yaptık
sure = pulseIn(echo, HIGH); 
// Süreyi ölçtük.
mesafe = (sure/2) / 29.1;
// Mesafeyi hesapladık.
Serial.println(mesafe);
//Mesafeyi serial monitöre bilgisayara gönderdik.
}


Yazılarımı beğendiyseniz ve eleştirmek isterseniz yorumlarınızı bekliyorum. İlerleyen derslerde görüşmek üzere...

COMMENTS

Ad

Başlangıç Seviye,10,Ders,10,Hakkımda,1,İletişim,1,Orta seviye,3,Proje,1,Püf Nokta,2,
ltr
item
Arduino Dersleri: Arduino Dersi 9: Matematiksel İşlem HC-SR04 Ultrasonik Mesafe Sensörü Pulse İn Komutu
Arduino Dersi 9: Matematiksel İşlem HC-SR04 Ultrasonik Mesafe Sensörü Pulse İn Komutu
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijnt9z938AcZAxuP6OncAWGcz52pL1kcgJp0uoehm1cjSnsRe3CPmiyf8qbOmcOmH6PgG2liWZuZ4PsB_bG7u2MF537m3Sh5p8M_gdAYf9tAwK2JJtvux5U65HtdbipbU2fOK9iW2SVYD1/s320/DERS9.png
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijnt9z938AcZAxuP6OncAWGcz52pL1kcgJp0uoehm1cjSnsRe3CPmiyf8qbOmcOmH6PgG2liWZuZ4PsB_bG7u2MF537m3Sh5p8M_gdAYf9tAwK2JJtvux5U65HtdbipbU2fOK9iW2SVYD1/s72-c/DERS9.png
Arduino Dersleri
http://arduinodersi.blogspot.com/2017/03/arduino-dersi-9-matematiksel-islem-hcsr04-ultrasonik.html
http://arduinodersi.blogspot.com/
http://arduinodersi.blogspot.com/
http://arduinodersi.blogspot.com/2017/03/arduino-dersi-9-matematiksel-islem-hcsr04-ultrasonik.html
true
3083925267398540913
UTF-8
Tüm Yayınlar Yüklendi Başka Yayın Bulunamadı Tüm Yayınları Görüntüle Daha Fazla Oku Yanıtla Yanıtı İptal Et Sil By Ana Sayfa Sayfada Yayında üm Yayınları Görüntüle Sizin İçin Önerilen Etiket Arşiv Site İçinde Ara Tüm Yayınlar Aramanızla İlgili Yazı Bulunamadı Anasayfaya Dön Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Takipçiler Bizi Takip Edin THIS CONTENT IS PREMIUM Please share to unlock Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy