Anasayfa » Arduino HC-Sr04 – Ultrasonik Sensör – Park Sensörü – 60 –

Arduino HC-Sr04 – Ultrasonik Sensör – Park Sensörü – 60 –

arduino projects

Arduino HC-Sr04 – Ultrasonik Sensör – Park Sensörü ve engel algılama sensörü gibi isimlele anılmaktadır.

Bir çok projede HC-Sr04 tercih edilmektedir. Arduino ile uğraşan ister hobi amaçlı projeler olsun ister profesyonel amaçlı projeler olsun Ultrasonik Sensörler tercih edilebilmektedir.

hc-sr04
hc-sr04

Üzerinde insan kulağının duyamayacağı frekanslarda ses dalgaları yollayan hoparlör ve yine bu ses dalgalarını duyabilen mikrofon sayesinde mesafeleri ölçebilmektedir. 4 metrelik mesafeleri ölçebilen bu sensör 5volt ile çalışabilmekte ve 150mA akım çekmektedir. Az enerji tüketmesi oldukça stabil çalışması projelerde sıklıkla tercih sebebidir.

Teknik özellikleri:

  • Çalışma Voltajı: DC 5V
  • Çektiği Akım: 15 mA
  • Çalışma Frekansı: 40 kHz
  • Maksimum Görme Menzili: 4m
  • Minimum Görme Menzili: 2cm
  • Görme Açısı: 15°
  • Tetik Bacağı Giriş Sinyali: 10 us TTL Darbesi
  • Echo Çıkış Sinyali: Giriş TTL sinyali ve Mesafe Oranı
  • Boyutları: 45mm x 20mm x 15mm

 

Arduin ile kullanabilmek için kütüphanelerden faydalanıldığı gibi kütüphanesiz de kullanılabilen bir sensördür.

hcsr_04_şema_1
//Görsel İşitsel Teknoloji Kanalı
//wwww.teknikerler.com
//Kerim Arı Youtube kanalı HC-Sr04 Kodları - kullanımı örnek Kodları



byte trigger = 9; // Sensörün Trigger bacağının bağlı olduğu pin
byte echo = 10; // Sensörün Echo bacağının bağlı olduğu pin

unsigned long sure; // Echo bacağının kac mikro saniyede aktif olduğunu saklayacak olan değişken 
double Yol; 
double Mesafe; 


void setup() {
  Serial.begin(9600);
  pinMode(trigger, OUTPUT); // Sensörün Trigger bacağına gerilim uygulayabilmemiz için OUTPUT yapıyoruz.
  pinMode(echo, INPUT); // Sensörün Echo bacağındaki gerilimi okuyabilmemiz için INPUT yapıyoruz.
  Serial.begin(9600); 
  
}
void loop()
{
  /* Başlangıçta LOW durumda olan trigger bacağına gerilim uygulayıp ardından gerilimi keserek bir ses dalgası
  oluşturmuş oluyoruz. Bu işlem arasında 10 mikro saniye beklenmenin sebebi HC-SR04'ün en az 10 mikro saniyelik 
  dalgalar ile çalışmasıdır. */
  digitalWrite(trigger, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger, LOW);

  // Dalga üretildikten sonra geri yansıyıp Echo bacağının HIGH duruma geçireceği süreyi pulseIn fonksiyonu ile 
  // kaydediyoruz. 
  sure = pulseIn(echo, HIGH);

  // Aşağıda yapılan süre-mesafe dönüşüm işlemleri yazımızda açıklanmıştır. 
  Yol = (double)sure*0.034;
  Mesafe = (double)Yol / 2;
  
Serial.print("Mesafe:");
Serial.println(Mesafe);  
delay(500);  
}

 

Hc-Sr04 Kullanarak park sensörü örneği yapımı.

hcsr_04_şema_2
hcsr_04_şema_2

 

//Görsel İşitsel Teknoloji Kanalı
//wwww.teknikerler.com
//Kerim Arı Youtube kanalı HC-Sr04 Kodları - kullanımı örnek Kodları
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2);

byte trigger = 9; 
byte echo = 10;

unsigned long sure; 
double Yol; 
double Mesafe; 
const int buzzer = 11;

void setup() {
  pinMode(trigger, OUTPUT); 
  pinMode(echo, INPUT); 
  Serial.begin(9600); 
  
  pinMode(buzzer, OUTPUT);

  
   lcd.init();       
  lcd.backlight();
  lcd.setCursor(1,0);
  lcd.print("Merhaba Dunya");
  lcd.setCursor(6,1);
  lcd.print("GiT");
  delay(1000);
  lcd.clear();

delay(1000);
 tone(buzzer, 3000, 400);

  
}
void loop()
{
  
  digitalWrite(trigger, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger, LOW);

  sure = pulseIn(echo, HIGH);

  
  Yol = (double)sure*0.034;
  Mesafe = (double)Yol / 2;
 
    
if (Mesafe >= 400 || Mesafe <= 2) 
  {
    lcd.clear();
    lcd.setCursor(3,0);
    lcd.print("Menzil Disi");
    Serial.println("menzil dısı");
    delay(1000);
    
  }
 if(Mesafe <= 20)
{
   lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Mesafe:");
  lcd.print(Mesafe);
  lcd.print(" cm");
   lcd.setCursor(0,1);
  lcd.print("Dikkatli Olun");
  Serial.println("20den kücük");
  delay(1000);
  
  
  
   while(Mesafe <= 10)
{
    digitalWrite(trigger, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger, LOW);
sure = pulseIn(echo, HIGH);

 
  Yol = (double)sure*0.034;
  Mesafe = (double)Yol / 2;
  

  
   lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Mesafe:");
  lcd.print(Mesafe);
  lcd.print(" cm");
   lcd.setCursor(0,1);
  lcd.print("Durunuz");
Serial.println("10 dan kücük");
  map(Mesafe,0,400,4,1);
 digitalWrite(buzzer,1);
delay(Mesafe*25);
digitalWrite(buzzer,0);
  delay(Mesafe*50);
if(Mesafe>10)
break;
  }
  
  
  
  
  }

    

  
  else 
  {
   
   Serial.println("else");
  lcd.setCursor(0,0);
  lcd.print("Mesafe:");
  lcd.print(Mesafe);
  lcd.print(" cm");
  delay(1000);
 lcd.clear();

}
    
}

 

ViDEOYU iZLEMEK iÇiN TIKLAYINIZ

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir