Translate

Membuat Tongkat Penunjuk Arah untuk Tuna Netra Menggunakan Arduino dan Sensor Jarak SRF05 / SRF04

Membuat Tongkat Penunjuk Arah untuk Tuna Netra Menggunakan Arduino dan Sensor Jarak SRF05 / SRF04


       Pada kesempatan yang berbahagia kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang fungsinya untuk membantu kaum difabel dalam kehidupan sehari-hari, alat ini bertujuan untuk menentukan objek atau benda yang berada di depan, samping kiri dan kanannya, alat ini menggunakan output suara atau buzzer dengan nada yang berbeda untuk tiap halangan yang terbaca, misal ada halangan didepan maka akan berbunyi intonasi nada 1, jika ada halangan di samping kiri atau kanan maka akan mengeluarkan bunyi intonasi nada 2 dan seterusnya, jarak deteksi sensor agar dia berbunyi adalah 1 meter, jadi jika kurang dari satu meter maka buzzer akan berbunyi sesuai intonasi nada yang terkait. alat ini menggunakan sensor jarak SRF05 atau bisa juga menggunakan SRF04, mikrokontroller yang dipakai adalah Arduino. untuk lebih jelasnya berikut adalah skema dan programnya.




a. Arduino Uno





b. Sensor Jarak SRF04





c. BUZZER





d. Program Arduino IDE

#include <Wire.h>
#define trigPin 2
#define echoPin 3
#define trigPin1 4
#define echoPin1 5
#define trigPin2 6
#define echoPin2 7

long duration, distance;
long duration1, distance1;
long duration2, distance2;


void setup(){
  pinMode(8,OUTPUT);
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(trigPin1, OUTPUT);
  pinMode(echoPin1, INPUT);
  pinMode(trigPin2, OUTPUT);
  pinMode(echoPin2, INPUT);
 
  digitalWrite(8,HIGH);
 
}
 
 
void loop(){
delay(200);

  digitalWrite(trigPin, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin, HIGH);
//  delayMicroseconds(1000); - Removed this line
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
 
//  Serial.print(distance);
//  Serial.println(" cm");
 
 
  digitalWrite(trigPin1, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin1, HIGH);
//  delayMicroseconds(1000); - Removed this line
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin1, LOW);
  duration1 = pulseIn(echoPin1, HIGH);
  distance1 = (duration1/2) / 29.1;
//  Serial.print(distance1);
//  Serial.println(" cm");
 
   
  digitalWrite(trigPin2, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin2, HIGH);
//  delayMicroseconds(1000); - Removed this line
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin2, LOW);
  duration2 = pulseIn(echoPin2, HIGH);
  distance2 = (duration2/2) / 29.1;
//  Serial.print(distance2);
//  Serial.println(" cm");
 
  if(distance < 100){
    digitalWrite(8,LOW);
    delay(200);
    digitalWrite(8,HIGH);
    delay(200);
   
  }
 
  if(distance1 < 100){
    digitalWrite(8,LOW);
    delay(100);
    digitalWrite(8,HIGH);
    delay(100);
    digitalWrite(8,LOW);
    delay(100);
    digitalWrite(8,HIGH);
    delay(500);
   
  }


  if(distance2 < 100){
    digitalWrite(8,LOW);
    delay(50);
    digitalWrite(8,HIGH);
    delay(50);
    digitalWrite(8,LOW);
    delay(50);
    digitalWrite(8,HIGH);
    delay(50);
    digitalWrite(8,LOW);
    delay(50);
    digitalWrite(8,HIGH);
    delay(500);
   
  }


  if((distance < 100)&&(distance1 < 100)&&(distance2 < 100)){ 
  digitalWrite(8,LOW);
  }

  if((distance > 100)&&(distance1 < 100)&&(distance2 < 100)){ 
  digitalWrite(8,LOW);
  }
 
  if((distance < 100)&&(distance1 > 100)&&(distance2 < 100)){ 
  digitalWrite(8,LOW);
  }

  if((distance < 100)&&(distance1 < 100)&&(distance2 > 100)){ 
  digitalWrite(8,LOW);
  }


 
  
 

 
 e. VIDEO HASILNYA














No comments:

Post a Comment