Alarm Parkir
Ini merupakan latihan lanjutan dari penggunaan sensor jarak ultrasonik, pada latihan ini kamu akan membuat sensor parkir seperti yang ada pada kendaran roda empat, untuk mengetahui apakah kendaraan tersebut akan mendabrak sesuatu ketika parkir dengan membunyikan sebuah buzzer.Kebutuhan Komponen:
— 1 x Arduino UNO— 1 x Breadboard
— 1 x HC-SR04 Ultrasonik
— 1 x LED RGB
— 1 x Buzzer
— 3 x Resistor 330Ω
— 12 x Kabel Jumper
Perakitan:
Rangkaian:
Upload Sketch:
Untuk mengisikan program ke board Arduino melalui PC/Laptop dapat menggunakan software Arduino IDE.Apabila kamu tidak mau menggunakan PC/Laptop untuk mengupload sketch/program ke board Arduino, kamu masih bisa menggunakan handphone Android untuk mengisikan program ke Arduino menggunakan aplikasi Bluino Loader, cara uploadnya pun bisa dua cara melalui USB dengan menggunakan adapter OTG atau melalui Bluetooth.
Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) di bawah.
/*
13 - Alarm Parkir
Mengontrol warna nyala LED RGB menggunakan sensor jarak ultrasonik.
Ketika sebuah objek/benda terlalu dekat dengan sensor, maka buzzer berbunyi.
*/
int trigPin = 2; //hubungkan dengan pin trigger pada sensor
int echoPin = 3; //hubungkan dengan pin echo pada sensor
int redPin = 9; //pin mengontrol nyala LED merah didalam LED RGB
int greenPin = 10; //pin mengontrol nyala LED hijau didalam LED RGB
int bluePin = 11; //pin mengontrol nyala LED biru didalam LED RGB
int buzzerPin = 8; //pin yang akan membunyikan buzzer
float distance = 0; //menyimpan nilai jarak yang diukur oleh sensor
void setup() {
Serial.begin (115200); //memulai komunikasi dengan serial monitor
pinMode(trigPin, OUTPUT); //pin trigger mengeluarkan pulsa listrik
pinMode(echoPin, INPUT); //pin echo akan mengukur durasi pulsa balik yang dikeluarkan dari sensor
//set pin LED RGB sebagai output
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
pinMode(buzzerPin, OUTPUT); //set pin buzzer sebagai output
}
void loop() {
distance = getDistance(); //variabel untuk menyimpan nilai jarak yang diukur oleh sensor
Serial.print(distance); //menampilkan jarak yang telah diukur pada serial monitor
Serial.println(" cm"); //menampilkan unit satuan setelah nilai
if(distance <= 10){ //jika objek berada dekat dari sensor
//menyalakan LED RGB menjadi merah
analogWrite(redPin, 255);
analogWrite(greenPin, 0);
analogWrite(bluePin, 0);
tone(buzzerPin, 272); //membunyikan buzzer dengan nilai frekuensi 272
delay(100); //jeda 100 milliseconds
noTone(buzzerPin); //mematikan bunyi buzzer
delay(100); //jeda 100 milliseconds
} else if(10 < distance && distance < 20){ //jika objek berada pada jarak yang sedang
//menyalakan LED RGB menjadi kuning
analogWrite(redPin, 255);
analogWrite(greenPin, 50);
analogWrite(bluePin, 0);
} else{ //jika objek berada jauh dari sensor
//menyalakan LED RGB menjadi hijau
analogWrite(redPin, 0);
analogWrite(greenPin, 255);
analogWrite(bluePin, 0);
}
delay(50); //jeda 50ms antara setiap pembacaan
}
//------------------FUNCTIONS-------------------------------
//Menghasilkan nilai jarak yang terukur oleh sensor jarak HC-SR04
float getDistance() {
float echoTime; //variabel untuk menyimpan waktu yang diperlukan sebuah ping memantul dari sebuah objek
float calcualtedDistance; //variabel untuk menyimpan kalkulasi jarak dari echo time
//mengirim pulsa ultrasonic pulse yang lamanya 10ms
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
echoTime = pulseIn(echoPin, HIGH); //menggunakan perintah pulsein untuk melihat seberapa lama waktu yang dibutuhkan
//pulsa ubtuk memantul kembali ke sensor
calcualtedDistance = echoTime / 58.26; //menghitung jarak dari objek yang telah memantulkan pulsa (setengah waktu pantul dikalikan dengan kecepatan suara)
return calcualtedDistance; //kirim hasil nilai jarak yang telah dihitung
}
0 comments:
Posting Komentar