Pada kesempatan ini saya akan berbagi pengetahuan mengenai penggunaan arduino dan sensor ultrasonik. sebelum kita memulai melakukan pemograman arduino kita harus menyiapkan beberapa alat yang dibutuhkan diantaranya:
1. Arduino
2. Sensor ultrasonik
3. LED
4. Bel
5. Kabel jumper
6. resistor 220 Ohm
Pada dasarnya sensor Ultrasonik digunakan untuk mendeteksi adanya benda didepan sensor dengan cara mengirimkan gelombang ultrasonik melalui transmiter kemudian gelombang tersebut akan memantul, hasil pantulannya akan diterima oleh receiver sensor. selang waktu tersebut yang akan diukur sehingga bisa menentukan jarak benda tersebut. jika kondisi tersebut LED akan menyala sesuai dengan jarak yang ditentukan ,dan bel berbunyi bip dengan cara yang berbeda. Sirkuit ini bisa berfungsi sebagai sensor parkir! Mudah dan murah.
Rangkaian Skematik
Code program
/*
*/
int tonePin = 4; //Tone - Red Jumper
int trigPin = 9; //Trig - violet Jumper
int echoPin = 10; //Echo - yellow Jumper
int clockPin = 11; //IC Pin 11 - white Jumper
int latchPin = 12; //IC Pin 12 - Blue Jumper
int dataPin = 13; //IC Pin 14 - Green Jumper
byte possible_patterns[9] = {
B00000000,
B00000001,
B00000011,
B00000111,
B00001111,
B00011111,
B00111111,
B01111111,
B11111111,
};
int proximity=0;
int duration;
int distance;
void setup() {
//Serial Port
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(tonePin, OUTPUT);
}
void loop() {
digitalWrite(latchPin, LOW);
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
/*if (distance >= 45 || distance <= 0){
Serial.println("Out of range");
}
else {
Serial.print(distance);
Serial.println(" cm");
}*/
proximity=map(distance, 0, 45, 8, 0);
//Serial.println(proximity);
if (proximity <= 0){
proximity=0;
}
else if (proximity >= 3 && proximity <= 4){
tone(tonePin, 200000, 200);
}
else if (proximity >= 5 && proximity <= 6){
tone(tonePin,5000, 200);
}
else if (proximity >= 7 && proximity <= 8){
tone(tonePin, 1000, 200);
}
shiftOut(dataPin, clockPin, MSBFIRST, possible_patterns[proximity]);
digitalWrite(latchPin, HIGH);
delay(600);
noTone(tonePin);
}
Selamat Mencoba