Tugas Praktikum 3
Nama : Dodhy Kurniawan Ss Nim : 200206501001
Mk : Praktik Sensor dan Transduser Tugas Praktikum 3 :
1. Jelaskan Prinsip Kerja Sensor Ultrasonik!
Jawab :
Secara detail, cara kerja sensor ultrasonik adalah sebagai berikut:
Sinyal dipancarkan oleh pemancar ultrasonik dengan frekuensi tertentu dan dengan durasi waktu tertentu. Sinyal tersebut berfrekuensi diatas 20kHz. Untuk mengukur jarak benda (sensor jarak), frekuensi yang umum digunakan adalah 40kHz.
Sinyal yang dipancarkan akan merambat sebagai gelombang bunyi dengan kecepatan sekitar 340 m/s. Ketika menumbuk suatu benda, maka sinyal tersebut akan dipantulkan oleh benda tersebut.
Setelah gelombang pantulan sampai di alat penerima, maka sinyal tersebut akan diproses untuk menghitung jarak benda tersebut. Jarak benda dihitung berdasarkan rumus :
S = 340.t/2
dimana S merupakan jarak antara sensor ultrasonik dengan benda (bidang pantul), dan t adalah selisih antara waktu pemancaran gelombang oleh transmitter dan waktu ketika gelombang pantul diterima receiver.
2. Lakukan compiler kedua porgam dan Perbaiki sintaks program apabila terdapat error (sengaja diberikan kesalahan sebagai proses pembelajaran dalam mengangani error program).
Jawab : int TrigPin = 9;
int EchoPin = 8;
long duration, cm, inches;
void setup() { //Serial Port begin Serial.begin (9600);
//Define inputs and outputs pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
}
void loop() {
// The sensor is triggered by a HIGH pulse of 10 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
digitalWrite(TrigPin, LOW);
delayMicroseconds(5);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(100);
digitalWrite(TrigPin, LOW);
// Read the signal from the sensor: a HIGH pulse whose // duration is the time (in microseconds) from the sending // of the ping to the reception of its echo off of an object.
pinMode(EchoPin, INPUT);
duration = pulseIn(EchoPin, HIGH);
// convert the time into a distance cm = (duration/2) / 29.1;
inches = (duration/2) / 74;
Serial.print(inches);
Serial.print(" inches");
Serial.print(cm);
Serial.print(" cm");
delay(250);
}
3. Modifikasi kedua Program sebelumnya agar dapat menampilkan data pembacaan sensor Ultrasonik pada LCD 16x2!
Program :
#include <LiquidCrystal.h>
LiquidCrystal lcd(7,6,5,4,3,2);
int TrigPin = 9;
int EchoPin = 8;
long duration, cm, inches;
void setup() { lcd.begin(16,2);
//Serial Port begin Serial.begin (9600);
//Define inputs and outputs pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
}
void loop() {
digitalWrite(TrigPin, LOW);
delayMicroseconds(5);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(100);
digitalWrite(TrigPin, LOW);
pinMode(EchoPin, INPUT);
duration = pulseIn(EchoPin, HIGH);
// convert the time into a distance cm = (duration/2) / 29.1;
inches = (duration/2) / 74;
Serial.print(inches);
Serial.print(" inches");
Serial.print(cm);
Serial.print(" cm");
lcd.setCursor(0,0);
lcd.print(inches);
lcd.println(" inches");
lcd.print(cm);
lcd.println(" cm");
delay(250);
} Hasil :
4. Buatlah program pembacaan 3 buah sensor Ultrasonik dan ditampilkan secara serial dan LCD!
Program :
#include <LiquidCrystal.h>
LiquidCrystal lcd(7,6,5,4,3,2);
int TrigPin1 = 9;
int EchoPin1 = 8;
int TrigPin2 = 13;
int EchoPin2 = 12;
int TrigPin3 = 11;
int EchoPin3 = 10;
long duration1, cm1, inches1;
long duration2, cm2, inches2;
long duration3, cm3, inches3;
void setup() { lcd.begin(16,2);
//Serial Port begin Serial.begin (9600);
//Define inputs and outputs pinMode(TrigPin1, OUTPUT);
pinMode(EchoPin1, INPUT);
pinMode(TrigPin2, OUTPUT);
pinMode(EchoPin2, INPUT);
pinMode(TrigPin3, OUTPUT);
pinMode(EchoPin3, INPUT);
}
void sensor_1(){
digitalWrite(TrigPin1, LOW);
delayMicroseconds(5);
digitalWrite(TrigPin1, HIGH);
delayMicroseconds(100);
digitalWrite(TrigPin1, LOW);
pinMode(EchoPin1, INPUT);
duration1 = pulseIn(EchoPin1, HIGH);
// convert the time into a distance cm1 = (duration1/2) / 29.1;
inches1 = (duration1/2) / 74;
Serial.print(inches1);
Serial.println(" inches 1 ");
Serial.print(cm1);
Serial.println(" cm1");
lcd.setCursor(0,0);
lcd.print(inches1);
lcd.println(" inches1 ");
lcd.print(cm1);
lcd.println(" cm1");
}
void sensor_2(){
digitalWrite(TrigPin2, LOW);
delayMicroseconds(5);
digitalWrite(TrigPin2, HIGH);
delayMicroseconds(100);
digitalWrite(TrigPin2, LOW);
pinMode(EchoPin2, INPUT);
duration2 = pulseIn(EchoPin2, HIGH);
// convert the time into a distance cm2 = (duration2/2) / 29.1;
inches2 = (duration2/2) / 74;
Serial.print(inches2);
Serial.println(" inches 2 ");
Serial.print(cm2);
Serial.println(" cm2");
lcd.setCursor(0,0);
lcd.print(inches2);
lcd.println(" inches2 ");
lcd.print(cm2);
lcd.println(" cm2");
}
void sensor_3(){
digitalWrite(TrigPin3, LOW);
delayMicroseconds(5);
digitalWrite(TrigPin3, HIGH);
delayMicroseconds(100);
digitalWrite(TrigPin3, LOW);
pinMode(EchoPin3, INPUT);
duration3 = pulseIn(EchoPin3, HIGH);
// convert the time into a distance cm3 = (duration3/2) / 29.1;
inches3 = (duration3/2) / 74;
Serial.print(inches3);
Serial.println(" inches 3 ");
Serial.print(cm3);
Serial.println(" cm3");
lcd.setCursor(0,0);
lcd.print(inches3);
lcd.println(" inches3 ");
lcd.print(cm3);
lcd.println(" cm3");
}
void loop(){
sensor_1();
sensor_2();
sensor_3();
delay(250);
} Hasil :
5. Lakukan simulasi hasil praktikum dan masukkan gambarnya kedalam dokumen tugas.
Hasil Praktikum Rangkaian Pertama Menggunakan 1 Sensor Ultrasonik :
Hasil Praktikum Rangkaian 3 Menggunakan 3 Sensor Ultrasonik :
6. Buatlah analisis kedua program sensor ultrasonik berdasarkan hasil yang diperoleh.
Jawab :
Rangkaian Pertama :
Dari hasil yang telah didapatkan dapat kita ketahui bahwa sensor ultrasonik berhasil membaca jarak, yang dimana jarak yang telah dibaca akan ditampilkan pada serial monitor dan lcd. Pada analisis program sensor ultrasonik trig pin akan memancarkan gelombang suara dan echo pin akan menerima pantulan gelombang suara dari objek ketika pantulan gelombang suara telah diterima echo pin maka akan dihitung berapa lama waktu yang dibutuhkan untuk echo pin menerima pantulan gelombang suara tersebut, waktu yang diterima echo pin akan disimpan di variabel duration dan selanjutnya program akan melakukan perhitungan untuk mencari jarak dalam satuan cm yaitu dengan cara (duration/2) / 29.1; jarak yang telah diketahui akan tersimpan di variabel cm sedangkan untuk mencari jarak dalam satuan inches yaitu dengan cara (duration/2) / 74; dan hasilnya akan tersimpan di variabel inches, dan hasil pembacaan akan ditampilkan di serial monitor dan lcd dengan menggunakan variabel cm dan inches.
7. Jelaskan fungsi penggalan Program berikut:
a. NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
Untuk menginisialisasi variabel baru dengan memasukkan pin trigger yang terhubung pada arduino, pin echo yang terhubung pada arduino dan juga memberikan jarak maximum pembacaan sensor ultrasonik.
b. sonar.ping_cm();
Untuk mengirim ping, dan mengembalikan jarak dalam sentimeter atau 0 (nol) jika tidak ada ping echo dalam batas jarak yang ditentukan.