Anda di halaman 1dari 9

Ultrasound

Sensor ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah besaran fisis (bunyi) menjadi
besaran listrik dan sebaliknya. Cara kerja sensor ini didasarkan pada prinsip dari pantulan suatu
gelombang suara sehingga dapat dipakai untuk menafsirkan eksistensi (jarak) suatu benda dengan
frekuensi tertentu. Disebut sebagai sensor ultrasonik karena sensor ini menggunakan gelombang
ultrasonik (bunyi ultrasonik).

const int PIN_TRIG = 13;

const int PIN_ECHO = 12;

void setup()

Serial.begin(9600);

pinMode(PIN_TRIG,OUTPUT);

pinMode(PIN_ECHO,INPUT);

void loop() {

digitalWrite(PIN_TRIG,HIGH);

delayMicroseconds(10);

digitalWrite(PIN_TRIG,LOW);

double selang = pulseIn(PIN_ECHO,HIGH);

double waktu_T = selang/2;

float jarak = 0.0343*waktu_T;

Serial.println(jarak);

//Serial.println(" cm ");

delay(1000);

Pada coding Arduino diatas diketahui bahwa

Pin triger ultrasound berada di pn 13 arduino dan pin echo ultrasound berada di pin 12
Serial.begin(9600) >>> menunjukkan kecepatan komunikasi yang digunakan di serial monitor. Itulah
sebabnya,di sketsa kirimSerial terdapat pengaturan kecepatan yang sama melalui fungsi tersebut.

pinMode(PIN_TRIG,OUTPUT); >>> menunjukkan bahwa pin trig sebagai output

pinMode(PIN_ECHO,INPUT);>>> menunjukkan pin echo sebagai input

digitalWrite(PIN_TRIG,HIGH); >>> pin trig akan mengeluarkan akan mengeluarkan gelombang suara

delayMicroseconds(10);>>> setiap waktu 10 micro second

digitalWrite(PIN_TRIG,LOW);>>> pin trig akan berhenti mengeluarkan gelombang suara

double selang = pulseIn(PIN_ECHO,HIGH); >>> kemudian gelombang tersebut akan dibaca oleh pin
echo

double waktu_T = selang/2;>>> kemudian waktu penerimaan gelombang akan dihitung dengan rumus
ini

float jarak = 0.0343*waktu_T;>>> jarak akan dihitung dengan rumus tersebut sesuai dengan data dari
sensor ultrasound

Serial.println(jarak);>>> jarak aka ditampilkann di serial monitor.

Cooding processing

import controlP5.*; // inisialisasi control p5

final int I_P_S = 0; // port yng dibaca arduino

Serial portSerial; // bikin objek dari kelas serial

ControlP5 cp5;

Textlabel labelSuhu; // inisialiasi labelsuhu

float suhu[] = new float[100]; // inisialiasi newflot[100]

int jumlah = 0; // jumlah dimulai dari 0

void setup()

size(800,360); // ukuran
surface.setTitle(" Pemantaun Suhu "); // Menulis pada monitor sebagai title posisi ?

portSerial = new Serial(this,Serial.list()[I_P_S],9600); // menampilkan port

portSerial.bufferUntil('\n');

//GUI

cp5 = new ControlP5(this); // penjelasan cp5 itu new controlP5

// Dibawah adalah buat text dengan nama ".. apa saja " isinya

cp5.addTextlabel("labelJudulSuhu") // mengidentifikasi

.setText("Jarak Sekarang") // textnya

.setPosition(20,65) // tempatnya

.setColorValue(color(0,0,255)) // warnanya

.setFont(createFont("Verdana",30)) //tulisannya dan ukurannya

; //tutup disini

//Dibawah adalah buat text dengan nama”.. apa saja” isinya

labelSuhu = cp5.addTextlabel("labelSuhu") // mengidentifikasi

.setText("00.00") // textnya

.setPosition(20,100) // tempatnya

.setColorValue(color(0xFF,0xFF,0x00)) // warnanya

.setFont(createFont("Times",40)) // tulisannya dan ukurannya

; //tutup disini

fill(0,0,255); //untuk warna teks yang dibuat via text()

} // selesai set up

void draw()
{

background(0x8D,0xE8,0xD5);

// Buat Kerangka Grafik

strokeWeight(4); //tebal garis 4

stroke(0);// warna 0 = gelap

line(298,30,298,290); //grs sumbu Y : x tetap pada 298 dan y dari 30 ke 290

line(298,290,750,290);// grs sumbu X ; pada Y = 290 dengan x dari 298 s/d 750

strokeWeight(1); // tebal garis 1

stroke(255); // warna 255 paling terang = putih

//buat kisi2 sebanyak 5 garis horizontal

for (float j=0; j<5; j++) // untuk pengulangan

line(300,40+50*j,750,40+50*j); // garisnya

text("50",275,45);

text("40",275,95);

text("30",275,145); >>>> text ini untuk menentukan sumbu y pada grafik

text("20",275,195);

text("10",275,245);

// Gambar Grafik Suhu

stroke(255,0,0) ; //grafik warna merah

strokeWeight(2); //tebalnya 5

if (jumlah != 0) //jumlah awalnya nol, saat ada data di serialEvent jumlah menjadi + 1;

int XAwal = 300; // Xawal adalah 300


int YAwal = int(290 - 5*suhu[0]) ; // ini amplitudonya data awalnya

int XSekarang,YSekarang; // menginiasialisasi

for (int indeks = 1; indeks<jumlah; indeks++) // awalnya indeks = 1; jumlah = 1

// ini dijalankan terus tanpa ke draw awal

YSekarang = int(240 - 50);// ini nilai suhunya

XSekarang = int(300 + 5*suhu[indeks]); // pindah ke X berikutnya;

line(XSekarang,YAwal,XSekarang,YSekarang); // ini garis grafiknya untuk satu data

XAwal = 300; // XAwal adalah 300

YAwal = 240; // YAwal adalah 240

// fungsi serialEvent(argumen Serial dan argumen port)

void serialEvent(Serial port)

String strSuhu = portSerial.readStringUntil('\n');

labelSuhu.setText(strSuhu); //data strSuhu diletakkan pada labelSuhu

// strSuhu = int(trim(strSuhu)); mengidentifikasi

jumlah++; // jumlah ditambah 1

if(jumlah==101) // jumlah sama dengan 101

jumlah = 1; // jumlah adalah 1

suhu[jumlah-1]= int(trim(strSuhu)); // prosesnya

Pada cooding processing di atas diketahui bahwa

strokeWeight(4); //tebal garis 4

stroke(0);// warna 0 = gelap


line(298,30,298,290); //grs sumbu Y : x tetap pada 298 dan y dari 30 ke 290

line(298,290,750,290);// grs sumbu X ; pada Y = 290 dengan x dari 298 s/d 750

strokeWeight(1); // tebal garis 1

stroke(255); // warna 255 paling terang = putih

//buat kisi2 sebanyak 5 garis horizontal

for (float j=0; j<5; j++) // pengulangan

line(300,40+50*j,750,40+50*j); //garis

text("50",275,45);

text("40",275,95);

text("30",275,145); >>>> text ini untuk menentukan sumbu y pada grafik

text("20",275,195);

text("10",275,245);

// Gambar Grafik Suhu

stroke(255,0,0) ; //grafik warna merah

strokeWeight(2); //tebalnya 5

if (jumlah != 0) //jumlah awalnya nol, saat ada data di serialEvent jumlah menjadi + 1;

int XAwal = 300; // XAwal adalah 1

int YAwal = int(290 - 5*suhu[0]) ; // ini amplitudonya data awalnya

int XSekarang,YSekarang; //menginialisasi

for (int indeks = 1; indeks<jumlah; indeks++) // awalnya indeks = 1; jumlah = 1

// ini dijalankan terus tanpa ke draw awal

YSekarang = int(240 - 50);// ini nilai suhunya


XSekarang = int(300 + 5*suhu[indeks]); // pindah ke X berikutnya;

line(XSekarang,YAwal,XSekarang,YSekarang); // ini garis grafiknya untuk satu data

XAwal = 300; // XAwal adalah 300

YAwal = 240; // Yawal adalah 240

// fungsi serialEvent(argumen Serial dan argumen port)

void serialEvent(Serial port)

String strSuhu = portSerial.readStringUntil('\n');

labelSuhu.setText(strSuhu); //data strSuhu diletakkan pada labelSuhu

// strSuhu = int(trim(strSuhu)); // mengidentifikasi

jumlah++; // jumlah ditambah 1

if(jumlah==101); // jumlah sama dengan 101

jumlah = 1; // jumlah adalah 1

suhu[jumlah-1]= int(trim(strSuhu)); // prosesnya

Pada processing setelah Arduino upload data Arduino akan dikirim ke processing menggunakan
komunikasi serial untuk memunculkan grafik jarak ultrasound.

Pada pembuatan keranga grafk di processing

strokeWeight(4); //tebal garis 4

stroke(0);// warna 0 = gelap

bentuk pembuatan garis denga >>>> line(X1,Y1,X2,Y2)

maka garis aka terbentuk di processing


line(298,30,298,290); //grs sumbu Y : x tetap pada 298 dan y dari 30 ke 290

line(298,290,750,290);// grs sumbu X ; pada Y = 290 dengan x dari 298 s/d 750

for (float j=0; j<5; j++) >>> pada bagian ini j=0 kemudiann apabila j kurang dari 5 maka dia akan
ditambah satu sampai hasil dari j itu 5

line(300,40+50*j,750,40+50*j); >>> pada bagian ini X1=300 dan Y1=40+50*j begitu juga dengan
X2=750 dan Y2=40+50*j . ini menandakan bahwa Y selalu berubah tergantung dengan jumlah j

text("50",275,45);

text("40",275,95);

text("30",275,145); >>>> text ini untuk menentukan sumbu y pada grafik

text("20",275,195);

text("10",275,245);