Sensor ultrasonic adalah sensor yang memanfaatkan gelombang ultrasonic (gelombang bunyi), cara kerjanya adalah sebagai berikut: pertama sensor ini memancarkan gelombang bunyi melalui pin TRIG, jika mengenai objek gelombang tersebut dipantulkan dan diterima oleh pin ECHO. Durasi waktu dari gelombang dipancarkan sampai dengan diterima kembali inilah yang dikonversi menjadi jarak. Berikut ini adalah tampak fisik sensor ultrasonic C-SR04:
Gambar 1. Sensor ultrasonic HC-SR04
Rumus untuk menghitung jarak dari sensor ke objek pantul adalah sebagai berikut:
\(S=\frac{340 t}{2}\)
S = jarak dari sensor ke objek
t = waktu yang diperlukan sejak gelombang dipancarkan sampai diterima lagi
340 adalah kecepatan bunyi (suara) di udara, karena gelombang bolak balik maka dibagi 2.
Menampilkan jarak menggunakan serial monitor
1. Buat rangkaian antara sensor ultrasonic dengan arduino seperti pada tabel di bawah ini:
Tabel 1. Koneksi HC-SR04 dengan Arduino
Supaya lebih jelas, dapat dilihat pada rangkaian berikut ini:
Gambar 2. Koneksi sensor ultrasonic dengan Arduino
2. Buat file baru, ketikkan sintaks berikut ini di IDE Arduino:
//Blog: pauzan.com //Youtube: Muhammad Pauzan #define echoPin 2 // pin 2 arduino koneksi ke pin echo dari sensor #define trigPin 3 //pin 3 arduino koneksi ke pin trig dari sensor // mendefinisikan variabel long duration; // variabel duration bertipe data long int distance; // variabel distance bertipe data int void setup() { pinMode(trigPin, OUTPUT); // trigPin sebagai output pinMode(echoPin, INPUT); // echoPin sebagai input Serial.begin(9600); Serial.println("Ultrasonic Sensor HC-SR04"); Serial.println("dengan Arduino UNO R3"); delay(2000); } void loop() { // kondisi trigPin ke 0 (LOW) digitalWrite(trigPin, LOW); delayMicroseconds(2); // atur trigPin HIGH (aktif) selama 10 ms digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // membaca echoPin, durasi waktu gelombang ke ms duration = pulseIn(echoPin, HIGH); // menghitung jarak distance = duration * 0.034 / 2; // kecepatan suara dibagi 2 (datang dan kembali) // menampilkan jarak di serial monitor Serial.print("Distance: "); Serial.print(distance); Serial.println(" cm"); delay(500); }
3. Koneksi Arduino ke laptop/computer, upload kode di atas.
4. Klik kanan atas pada monitor, pembacaan jarak dapat dilihat pada serial monitor seperti gambar di bawah ini:
Gambar 3. Pembacaan jarak oleh sensor ultrasonic pada serial monitor
Menampilkan pembacaan jarak pada I2C LCD
1. Kita tambahkan rangkaian I2C LCD pada rangkaian sebelumnya, koneksi tiap pin dapat dilihat pada tabel di bawah ini:
Tabel 2. Koneksi sensor ultrasonic dengan Arduino dan I2C LCD
Supaya lebih jelas, rangkaiannya dapat dilihat pada gambar di bawah ini:
Gambar 4. Sensor jarak (HC-SR04) dengan Arduino dan LCD
2. Ketikkan kode program berikut ini pada IDE Arduino:
//Blog: pauzan.com //Youtube: Muhammad Pauzan #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); //0x27 adalah alamat i2c #define echoPin 2 // pin 2 arduino koneksi ke pin echo dari sensor #define trigPin 3 //pin 3 arduino koneksi ke pin trig dari sensor // mendefinisikan variabel long duration; // variabel duration bertipe data long int distance; // variabel distance bertipe data int void setup() { pinMode(trigPin, OUTPUT); // trigPin sebagai output pinMode(echoPin, INPUT); // echoPin sebagai input lcd.begin(); lcd.backlight(); //supaya lampu backlightnya nyala lcd.clear(); //layar lcd kosong lcd.setCursor(2,0); //2 berarti kolom ke-2 (ada 16 kolom), 0 berarti baris paling atas lcd.print("WELCOME TO"); lcd.setCursor (2,1); lcd.print("pauzan.com"); delay(2000); lcd.clear(); } void loop() { // kondisi trigPin ke 0 (LOW) digitalWrite(trigPin, LOW); delayMicroseconds(2); // atur trigPin HIGH (aktif) selama 10 ms digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // membaca echoPin, durasi waktu gelombang ke ms duration = pulseIn(echoPin, HIGH); // menghitung jarak distance = duration * 0.034 / 2; // kecepatan suara dibagi 2 (datang dan kembali) // menampilkan jarak di LCD lcd.setCursor(0,0); lcd.print("PENGUKUR JARAK"); lcd.setCursor(0,1); lcd.print("Jarak: "); lcd.print(distance); lcd.print("cm"); delay(500); }
3. Koneksi arduinonya, lalu upload program yang sudah dibuat. Hasilnya dapat dilihat pada gambar di bawah ini:
Gambar 5. Pembacaan jarak menggunakan I2C LCD