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()
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()
Yazılarımı beğendiyseniz ve eleştirmek isterseniz yorumlarınızı bekliyorum. İlerleyen derslerde görüşmek üzere...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.
}
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.
}
COMMENTS