Mesafe Sensörü Kullanarak Park Sensörü Yapımı
Merhaba,
Bir önceki yazımızda sizlere HC-SR04 Ultrasonic Mesafe Sensörü’nün kullanımından bahsetmiştik.
Bu yazımızda ise Sensör ile birlikte Led ve Buzzer kullanarak bir uygulama yapacağız.
Neler Yapacağız?
- Arduino Uno ile Breadboard üzerine Mesafe sensörü, Led ve Buzzer’dan oluşan bir devre kuracağız.
- Mesafe ölçümü, Led ve Buzzer kontrolü için gerekli algoritmayı kuracağız.
Gerekli Malzemeler:
- 1 Adet Arduino Uno
- 1 Adet BreadBoard
- 1 Adet HC-SR04 Ultrasonik mesafe sensörü.
- 1 Adet Led
- 1 Adet Buzzer
- 1 Adet 220 ohm direnç
- 1 Adet 100 ohm direnç
- 10 Adet iki ucu erkek jumper kablo
Gerekli Araçlar:
- Mblock
- 3DRoboLab Türkçe bloklar.
MBlock uygulamasına 3DRoboLab Türkçe bloklar uzantısı ekleme.
Programı çalıştırıp üst kısımdaki araç çubuğundan uzantılar ikonuna tıklıyoruz.
Daha sonra açılan pencereden Uzantıları Yönet ikonuna tıklıyoruz.
Açılan Pencerenin Arama bölümüne 3DRoboLab yazıyoruz.
Daha sonra 3DRoboLab adlı uzantıyı indirip, Uzantı ekle ikonuna tıklıyoruz ve 3DRoboLab Türkçe Bloklar MBlock kütüphanenize eklenmiş oluyor.
basit uygulamalar için hazırlamış olduğumuz kodların çalışmasında herhangi ek bir işlem yapmanıza gerek yoktur.
MBlock Programı üzerinden Arduino kartına bağlanma.
Programı çalıştırıp üst kısımdaki araç çubuğundan Kartlar ikonuna tıklıyoruz.
Daha sonra açılan pencereden kullandığımız kartı seçiyoruz.
Kartı seçtikten sonra gene araç çubuğu üzerinde bulunan Bağlan ikonuna tıklıyoruz.
Karşımıza çıkan pencerede seri port’un üzerine geliyoruz ve yan tarafta bağlı COM’lar çıkıyor. Arduino kartı hangi COM’da bağlıysa o COM’u seçiyoruz ve program üzerinden karta bağlanmış oluyoruz.
Malzemeleri hazırladıktan sonra devremizin kurulumuna geçebiliriz.
Şimdi uygulamamızın programını yazalım.
Yazdığımız kodlar Arduinonun anlayacağı dile çevrilir. Ardından Arduino kartına yazılır.
#include <Arduino.h> #include <Wire.h> #include <SoftwareSerial.h> /* 3D Robotics Laboratory: www.3drobolab.com */ double angle_rad = PI/180.0; double angle_deg = 180.0/PI; double Mesafe; float getDistance(int trig,int echo){ pinMode(trig,OUTPUT); digitalWrite(trig,LOW); delayMicroseconds(2); digitalWrite(trig,HIGH); delayMicroseconds(10); digitalWrite(trig,LOW); pinMode(echo, INPUT); return pulseIn(echo,HIGH,30000)/58.0; } void setup(){ Serial.begin(115200); pinMode(9,OUTPUT); pinMode(3,OUTPUT); } void loop(){ Mesafe = getDistance(12,13); Serial.println(String("M:")+Mesafe); if((Mesafe) < (5)){ digitalWrite(9,1); tone(3,262,500); // write to buzzer delay(500); }else{ digitalWrite(9,0); } _loop(); } void _delay(float seconds){ long endTime = millis() + seconds * 1000; while(millis() < endTime)_loop(); } void _loop(){ }
Hazırladığımız kod bloklarının Arduinonun anlayacağı dile (C/C++) çevriliyor. Kodları yüklemek için Arduino’ya yükle butonuna tıklamanız yeterlidir.
Kodlar derlendikten sonra Arduino’ya 30-50 sn. arasında yüklenmiş olacaktır.
Karta yüklendikten sonra sensör ile engel arasındaki mesafe 5’in altına düştüğü zaman Led yanacak ve Buzzer çalmaya başlayacak.
5’in üzerinde olduğu zaman Led sönecek ve Buzzer susacak.
İyi Eğlenceler.