Hoşgeldin Ziyaretçi

Kayıt Olarak Tüm Eklentileri Ücretsiz İndirebilirsin.

Şimdi kayıt ol

Rehber Arduino Ultrasonik Radar

Mithat Guner

Yönetici
Admin
Lider
1,414
1 Ekim 2016
1,296
#1
Bu projemizde Ultrasonik Sensör ve servo sayesinde etrafı tarayacağız. Ve sensörün okuduğu değerleri processing ile işleyerek radar görüntüsü elde edeceğiz.Malzeme Listesi
  • HC-SR04 Ultrasonik Sensör
  • Bir adet servo
  • Arduino
  • Arduino IDE ve Processing yüklü bir PC
  1. Sensör ve servo bağlantılarımızı aşağıdaki gibi yapıyoruz.
    • HC-SR04 Echo Pini -> Arduino 2
    • HC-SR04 Trigger Pini -> Arduino 3
    • HC-SR04 Vcc -> Arduino 5v
    • HC-SR04 GND -> Arduino GND
    • Servo sinyal pini (Genellikle Sarı renkli kablo) -> Arduino 9
    • Servo besleme pini (Genellikle kırmızı) -> Arduino 5v
    • Servo toprak pini (Genellikle kahverengi) -> Arduino GND
  2. Bağlantılarımızı yaptıktan sonra Arduino’muzu PC’ye bağlıyoruz.
  3. Ve Arduino IDE kodunu gömüyoruz.
Kod:
#include <Servo.h>

Servo leftRightServo; // servoyu tanımlıyoruz
int leftRightPos = 0; // servonun başlangıç konumu
const int numReadings = 10; // okuma sayısı
int index = 0; //Anlık okunan değerlerin indeksi
int total = 0; // Toplanan okunan değerlerin indeksi
int average = 0; // Ortalama
int echoPin = 2; // sensörün echo pini
int initPin = 3; // sensörün triger pini
unsigned long pulseTime = 0; // sensör pulse süresi
unsigned long distance = 0; // mesafe değişkeni
/* pin ve port ayarları */
**** setup() {
leftRightServo.attach(9);
//sensör ayarları
pinMode(initPin, OUTPUT);
pinMode(echoPin, INPUT);
// seri port
Serial.begin(9600);
}
/* servo konum ve sensör okuma */
**** loop() {
//servo soldan sağa git
for(leftRightPos = 0; leftRightPos < 180; leftRightPos++) {
leftRightServo.write(leftRightPos);
for (index = 0; index<=numReadings;index++) {
// sensör okuma
digitalWrite(initPin,HIGH);
delayMicroseconds(1000);
digitalWrite(initPin,LOW);
delayMicroseconds(50);
// sinyali kapa
pulseTime = pulseIn(echoPin, HIGH); // sinyali hesapla
distance = pulseTime/58; // santimetreye çevir
total = total + distance; // total değişkenini güncelle
delay(10);
}
average = total/numReadings; // okunanlardan ortalama değişkenini ayarla
if (index >= numReadings) {
index = 0;
total = 0;
}
Serial.print("X"); // processingin tanıması için önce X stringini gönder
Serial.print(leftRightPos); // anlık servo açısı
Serial.print("V"); // ikinci değer için V yolla
Serial.println(average); // okunan ortalama sensör değeri
}
//servo sağdan sola git
for(leftRightPos = 180; leftRightPos > 0; leftRightPos--) {
leftRightServo.write(leftRightPos);
for (index = 0; index<=numReadings;index++) {
digitalWrite(initPin, LOW);
delayMicroseconds(50);
digitalWrite(initPin, HIGH);
delayMicroseconds(50);
digitalWrite(initPin, LOW);
pulseTime = pulseIn(echoPin, HIGH);
distance = pulseTime/58;
total = total + distance;
delay(10);
}
average = total/numReadings;
if (index >= numReadings) {
index = 0;
total = 0;
}
Serial.print("X");
Serial.print(leftRightPos);
Serial.print("V");
Serial.println(average);
}
}

4. Arduino ile Processing Seri port üzerinden haberleştiği için,Arduino Kodunu gömdükten sonra Arduino IDE üzerinden “Serial Monitor”u açmayınız.
5. Arduino kısmını bitirdikten sonra aşağıdaki kodu Processing’e yazıp çalıştırıyoruz.


Processing Kodu İçin;
TIKLA

 
İçerik sağlayıcı paylaşım sitelerinden biri olan Pluginler.com Adresimizde T.C.K 20.ci Madde ve 5651 Sayılı Kanun'un 4.cü maddesinin (2).ci fıkrasına göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. Pluginler.com hakkında yapılacak tüm hukuksal Şikayetler buradan iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 1 (Bir) Hafta içerisinde Pluginler.com yönetimi olarak tarafımızdan gereken işlemler yapılacak ve yönetimimiz size geri dönüş yapacaktır.
Üst Alt