Yussuf Faisal
Published © CC BY

Alat Pendeteksi Radar Musuh

Prototype Pendeteksi musuh melalui Sensor Ultrasonik

EasyWork in progress1 hour772
Alat Pendeteksi Radar Musuh

Things used in this project

Hardware components

Arduino UNO & Genuino UNO
Arduino UNO & Genuino UNO
×1
Ultrasonic Sensor - HC-SR04 (Generic)
Ultrasonic Sensor - HC-SR04 (Generic)
×1
Buzzer
Buzzer
×1
Solderless Breadboard Half Size
Solderless Breadboard Half Size
×1
Jumper wires (generic)
Jumper wires (generic)
×21
Motor Servo MG995
×1

Story

Read more

Schematics

Skema Rangkaian

Skema qx4cf7oz1v

Code

Coding Program Arduino

C/C++
Untuk Mengontrol Kerja Alat Pendeteksi Radar Musuh
#include <Servo.h>
// membuat nama objek servo untuk pengontrolan servo 
Servo myservo;          
// variable
int pos = 0;
int trig= 11;            // membuat varibel trig yang di set ke-pin 3
int echo= 12;            // membuat variabel echo yang di set ke-pin 2 
long durasi;             // membuat variabel durasi
int jarak;               // membuat variabel jarak
int pinSpeaker= 8;       // membuat variabel Buzzer yang di set ke-pin 8

void setup() {
  pinMode(trig, OUTPUT);    // set pin trig menjadi OUTPUT
  pinMode(echo, INPUT);     // set pin echo menjadi INPUT
  pinMode(pinSpeaker, OUTPUT);  // set pin buzzer menjadi OUTPUT
  Serial.begin(9600);       // digunakan untuk komunikasi Serial dengan komputer
  myservo.attach(9);        // objek servo diletakan pada pin 9 
}

void loop() {
  // start dari 0 derajar sampai 180 derajat 
 for(pos = 0; pos < 180; pos += 1)  
 {
  // pada posisi 1 derajat
  // memberitahu servo untuk pergi ke posisi  'pos'
  myservo.write(pos);
  // tunggu 50ms untuk pencapaian  posisi servo    
  delay(50);
  jarak = calculateDistance();    // mencatat jarak
  if(jarak <= 10)                 // Ketika ada objek musuh mendekat dengan jarak kurang dari 10 cm dari Sensor Ultrasonik maka Buzzer akan menyala
  {
    digitalWrite(pinSpeaker, HIGH);
  }else{
    digitalWrite(pinSpeaker, LOW);
  }
 } 
 // start dari 180 derajat ke 0 derajat 
 for(pos = 180; pos>=1; pos-=1)  
 {
  // memberitahu servo untuk pergi ke posisi  'pos'                                
  myservo.write(pos);                 
  // tunggu 50ms untuk pencapaian  posisi servo    
  delay(50);
  jarak = calculateDistance();    // mencatat jarak          
  if(jarak <= 10)                 // Ketika ada objek musuh mendekat dengan jarak kurang dari 10 cm dari Sensor Ultrasonik maka Buzzer akan menyala
  {
    digitalWrite(pinSpeaker, HIGH);
  }else{
    digitalWrite(pinSpeaker, LOW);
  } 
 }
}

void playTone(long duration, int freq) {
    duration *= 1000;
    int period = (1.0 / freq) * 1000000;
    long elapsed_time = 0;
    while (elapsed_time < duration) {
        digitalWrite(pinSpeaker,HIGH);
        delayMicroseconds(period / 2);
        digitalWrite(pinSpeaker, LOW);
        delayMicroseconds(period / 2);
        elapsed_time += (period);
    }
}

int calculateDistance(){
  // program dibawah ini agar trigger memancarakan suara ultrasonic
  digitalWrite(trig, LOW);
  delayMicroseconds(2);
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);
  delayMicroseconds(8);
  
  durasi= pulseIn(echo, HIGH);  // menerima suara ultrasonic
  jarak= (durasi/2) / 29.1;     // mengubah durasi menjadi jarak (cm)
  Serial.println(jarak);        // menampilkan jarak pada Serial Monitor
}

Credits

Yussuf Faisal

Yussuf Faisal

1 project • 0 followers

Comments

Add projectSign up / Login