Bloguma paylaşcağım ilk projenin ne olması gerektiği için baya bir düşündüm. Blog açmadan önce yaptığım bir çalışmayı mı yazsam ya da yeni bir çalışmamı gerçekleştirsem diye. En son bu sene labirent robotu projesinde kullanığımız ultrasonic mesafe sensörü ile başlamaya ama buna buzzer ekleyerek ufak bir park sensörü yapmaya karar verdim.
Hc-sr04 sensörümüz 40 Khz frekansında ultrasonik sinyaller(sesler) üretmektedir.Bu sinyalleri insan kulağı algılayamaz.
Sensörün üzerinde 4 adet pin var.Bunlar; VCC(besleme),Trig,Echo,GND(toprak). Sensörün çalışma prensibi kısaca trig bacağına küçük frekansta(10 mikro saniye gibi) kare dalgalar gönderiyoruz. Sensör kendi içinde sinyal üretiyor. Bu sinyal farklı ortamlarda farklı hızlarda yol alıyor. Sinyal bir cisme çarpıp tekrar sensöre doğru yol alıyor. Sensöre veri geldiğinde echo bacağı lojik-1 oluyor. Eğer ultrasonik sensör ile mesafe ölçmek istiyorsak yapmamız gereken echo bacağının kaç defa lojik-
1 olduğunu bulmak.
Sensör hakkında bilgi verdikten sonra bağlantı şeklimizi gösterelim.
Fritzing(http://fritzing.org/) çizdiğim şekilde bağlantılarımız bu şekilde.Projenin kodu ise şöyle;
- Gürkan YARAR
- Bağlantılar:
- trig=2
- echo=4
- buzzer=6
- */
- const int trigPin = 2;
- const int echoPin = 4;
- const int buzzerPin=6;
- void setup() {
- Serial.begin(9600);
- // seri haberleşmeyi baslatiyoruz
- pinMode(trigPin, OUTPUT);
- pinMode(buzzerPin, OUTPUT);
- pinMode(echoPin, INPUT);
- }
- void loop()
- {
- long duration, inches, cm;
- digitalWrite(trigPin, LOW);
- delayMicroseconds(2);
- digitalWrite(trigPin, HIGH);
- delayMicroseconds(10);
- digitalWrite(trigPin, LOW);
- // triq bacağına kare dalgaları yolluyoruz
- duration = pulseIn(echoPin, HIGH);
- // pulsIn komutuyla veri alıyoruz
- // cm ve inc cinsinden dönüşümleri yapıyoruz
- inches = microsecondsToInches(duration);
- cm = microsecondsToCentimeters(duration);
- Serial.print(inches);
- Serial.print("in, ");
- Serial.print(cm);
- Serial.print("cm");
- Serial.println();
- if( cm <=5) { // eğer cm değeri 5 cm'in altındaysa uyarı alıyoruz
- tone(buzzerPin,2000);
- }
- else {
- noTone(buzzerPin);
- }
- delay(100);
- }
- long microsecondsToInches(long microseconds)
- {
- return microseconds / 74 / 2;
- }
- long microsecondsToCentimeters(long microseconds)
- {
- return microseconds / 29 / 2;
Bu çalışmada ufak bir park sensörü yapmış olduk. Bu yazı ile ilgili kodu ve bağlantı şemasını buradan edinebilirsiniz.(https://www.dropbox.com/sh/u3fhnfaxi2fhbu4/vP8koICm9F)Özellikle robotik ile uğraşan arkadaşlar bu sensörü kullanmalarını tavsiye ederim. Hassasiyeti Sharp sensörüne göre daha iyidir.
Bundan sonra ki çalışmam LCD kullanmı ile olur diye tahmin ediyorum.
Her türlü olumlu olumsuz eleştirinizi aktarırsanız sevinirim.
grknyrr@gmail.com
https://www.facebook.com/gurkan.yarar.35
3 yorum: (+add yours?)
tesekkur ederiz!
beceremedim
tam da istediğim gibi özgün bi kod.deniyorum hemen
Yorum Gönder