27 Kasım 2021 Cumartesi

TinkerCad'de Radar Simulasyonu

 


KOD;


#include <Servo.h>  // Servonun kütüphanesini ekliyoruz


//  HC-... Sensorundeki Trig ve echo pinimizi arduinoda bagladımız girişleri tanımlıyoruz

const int trigPin = 3;

const int echoPin = 2;


// Buzzer(piezo)ı arduinoda girdigimiz girişi tanımlıyoruz. Ben buzzer ekledim fakat sesi çok az geldiği için kaldırsam mı diye düşündüm sonra vaz geçtim.

const int piezoPin = 8;


//  Uzaklık ve sürenin varyasyonlarını ekliyoruz

long sure;

int uzaklik;



int nota[] = {262, 462, 862, 1662, 3262}; // Notalarımı giriyorum.Notaları kat kat seçtim ki mesafe degiştikçe ton belirgin olsun diye.


Servo myServo; // Servo motorun ayarlarını girecegimiz bir servo oluşturup  tanımlıyoruz


void setup() {

  pinMode(trigPin, OUTPUT); //  TriggerPini Çıkış olarak ayarlıyoruz

  pinMode(echoPin, INPUT); //  Echo pini ise giriş olarak ayarlıyoruz

  Serial.begin(9600);

  myServo.attach(9); // Servo Motorun Arduino üzerindeki tanımlı olduğu input pini giriyoruz

}


void loop() {

  

  // Bu kısımda servo motoru 15 dereceden 165 dereceye döndürüüyoruz.

  for(int i=15;i<=165;i++){  

  myServo.write(i);


  uzaklik = uzaklikhesabi();// Her açı için uzaklığı hesaplıyoruz

  

  //buzzer ses ekleme

  if(uzaklik > 40){

    noTone(piezoPin);

     delay(10);

    noTone(piezoPin);

    delay(30);

  }

  else if (uzaklik <= 40 && uzaklik > 30){

    tone(piezoPin, nota[1]);

     delay(10);

    noTone(piezoPin);

    delay(30);

  }

  else if (uzaklik <= 30 && uzaklik > 20){

    tone(piezoPin,nota[2]);

     delay(10);

    noTone(piezoPin);

    delay(30);

  }

  else if (uzaklik <= 20 && uzaklik > 10){

    tone(piezoPin,nota[3]);

     delay(10);

    noTone(piezoPin);

    delay(30);

  }

  else {

    tone(piezoPin,nota[4]);

     delay(10);

    noTone(piezoPin);

    delay(30);

  }

     

      

  Serial.print(i); // Açıyı serialPrintte gönderiyoruz

  Serial.print(","); //  P

  Serial.print(uzaklik); //   Uzaklığı serialPrintden gösteriyoruz

  Serial.print("."); // 

  }

  //  15 Ve 165 açılarındaki  dönen işlemleri tekrar etme

  for(int i=165;i>15;i--){  

  myServo.write(i);

 

  uzaklik = uzaklikhesabi();

  if(uzaklik > 40){

    noTone(piezoPin);

    delay(10);

    noTone(piezoPin);

    delay(30);

  }

  else if (uzaklik <= 40 && uzaklik > 30){

    tone(piezoPin, nota[1]);

     delay(10);

    noTone(piezoPin);

    delay(30);

  }

  else if (uzaklik <= 30 && uzaklik > 20){

    tone(piezoPin,nota[2]);

     delay(10);

    noTone(piezoPin);

    delay(30);

  }

  else if (uzaklik <= 20 && uzaklik > 10){

    tone(piezoPin,nota[3]);

     delay(10);

    noTone(piezoPin);

    delay(30);

  }

  else {

    tone(piezoPin,nota[4]);

    delay(10);

    noTone(piezoPin);

    delay(30);

  }

     

  Serial.print(i);

  Serial.print(",");

  Serial.print(uzaklik);

  Serial.print(".");

  

  }

}

// ultrasonik sensörün ölçtüğü mesafeyi hesaplayan fonksiyon

int uzaklikhesabi(){ 

  

  digitalWrite(trigPin, LOW); 

  delayMicroseconds(2);

  // Trigpini 10mikro saniye için aktif et diyoruz

  digitalWrite(trigPin, HIGH); 

  delayMicroseconds(10);

  digitalWrite(trigPin, LOW);

  sure = pulseIn(echoPin, HIGH); //echoPin den değer oku,ses dalgasının yol alma süresini mikrosaniyeye çevir diyoruz 

  uzaklik= sure*0.034/2; 

  return uzaklik;

}


Paylaş

Benzer Yayınlar

TinkerCad'de Radar Simulasyonu
4/ 5
Oleh

Abone Olun!

Yazımı Beğendiniz mi? Abone Olun Yayınları Kaçırmayın.