## PENERAPAN SENSOR ULTRASONIK PADA SISTEM PENGISIAN ZAT CAIR DALAM TABUNG SILINDER BERBASIS MIKROKONTROLER ATmega 16
Holy Lydia Wiharto 1 , Subekti Yuliananda 2
1 Teknik Elektro, Fakultas Teknik, Universitas 17 Agustus 1945 Surabaya e-mail : holydia@untag-sby.ac.id
2 Teknik Elektro, Fakultas Teknik, Universitas 17 Agustus 1945 Surabaya e-mail : subekti.untag@gmail.com

## Abstract
Ultrasonic sensor has the ability to measure the distance to an object up to 300 cm by emitting ultrasonic waves. Ultrasonic waves  emitted propagating in air at  the  speed  of  sound  waves  344m  /  sec.  Reflected  wave  is  used  to  detect  the object  distance.  By  using  a  microcontroller  as  a  data  processing,  a  liquid comprising  system  can  be  created.  Microcontroller  can  control  the  motor dreiver relay to  activate the pump to fille the  tube and stop it if the liquid level in cylindrical tube has been reached. This system uses ultrasonic sensors GH- 311, the microcontroller ATmega16, and a dc motor. The test results show, in general,  GH-311 ultrasonic  sensor  can  be  applied  to  read  the  distance  to  the surface of the liquid, in detection range of 2cm-300cm. The system  works and keep filling the tube during the waterlevel   in the tube has not reached 17 cm (as setting point). The water pump stops once the water level has exceeded 17 cm.
Keyword s: Ultrasonic Sensor, Microcontroller, control, automatic

## 1. PENDAHULUAN
Proses  yang  dilakukan  berulang-ulang  menjadi  kurang  efisien  bila  dilakukan  secara manual.  Dengan  menggunakan  perangkat  elektronik,  proses  manual  dapat  dilakukan  secara otomatis.  Transdecer  adalah  perangkat  elektronik  yang  merubah  besaran  fisik  (gerak  mekanik, panas,  tekanan,  level  ketinggian,  dll.)  menjadi  besaran  listrik.  Transducer  dapat  difungsikan sebagai indera dan masukan bagi perangkat elektronik lain. Sensor ultrasonik adalah transducer yang mengubah waktu rambat  gelombang  ultrasonik menjadi jarak tempuh galombang melalui konversi banyaknya pulsa  yang diterima per  detik, sehingga sensor  ultrasonik dapat mengukur jarak obyek.

## 1.1. Tujuan
Penggunaan  sensor  ultrasonik  GH-311  untuk  mengendalikan  tinggi  air  dalam  tabung silinder sehingga didapat sistem pengisisan air secara otomatis

## 1.2. Tinjauan Pustaka

## a. Sensor Ultrasonik
Sebagai  pengambil  data  diperlukan  sensor ultrasonik.  Sensor  ultrasonik  terdiri  dari  dua bagian,  yaitu  rangkaian  pemancar  gelombang  ultrasonik  (transmitter)  dan  rangkaian penerima gelombang ultrasonik (receiver).
Sensor  ultrasonik  mentransmisi  gelombang  ultrasonik  dengan  kecepatan  diatas  jangkauan pendengaran  manusia  dan  mengeluarkan  pulsa  yang  sesuai  dengan  waktu  yang  dibutuhkan gelombang  untuk  kembali  ke  sensor.  Sensor  ultrasonik  GH-311  terdiri  dari  sebuah  chip pembangkit  sinyal  frekuensi  40KHz , sebuah  speaker  ultrasonik  dan  sebuah  mikropon ultrasonik.  Speaker  ultrasonik  mengubah  gelombang  ultrasonik  dengan  frekuensi  40  KHz menjadi suara, sedangkan mikrofon ultrasonik berfungsi untuk mendeteksi pantulan gelombang ultrasonik. Sensor ini mendeteksi jarak obyek dengan cara memancarkan gelombang ultrasonic selama t burst (200  μs) dan  mendeteksi  pantulannya  (echo).  Sensor  GH-311  memancarkan gelombang  dikendalikan  dari  mikrokontroler  (pulsa trigger dengan t out min.  2  μs.  GH-311 mempunyai  3  pin  utama,  pin  1  untuk  tegangan  catu  Vdd  (+  5Vdc),  pin  2  adalah  SIG Signal merupakan pin keluaran (I/O), dan pin 3 V SS untuk dihubungkan ke tanah (GND).
Gambar 1. Skema Koneksi Sensor Ultrasonik GH-311
Jangkauan ukur sensor GH-311 berkisar 2cm (0.8 inci) hingga 300 cm. Jarak. obyek yang terlalu kecil dan bahan obyek yang lembut dan permukaan yang tidak rata sulit terdeteksi,
Gambar 2.
Arah Pancar dan Sudut Pantul Gelombang Ultrasonik

## b. Mikrokontroler ATmega16
Sebagai pengolah data masukan dari sensor ultrasonik digunakan ATmega16. ATmega 16 merupakan  seri  mikrokontroler Complementary  Metal  Oxide  Semiconductor (CMOS)  8-bit berbasis  arsitektur  RISC (Reduced  Instruction  Set  Computer ).  Hampir  semua  instruksi dieksekusi  dalam  satu  siklus  clock.  ATmega16  mempunyai  32  register  general-purpose, timer/counter  fleksibel  dengan  mode  compare,  interupsi  internal  dan  eksternal,  serial  UART, programmable  Watchdog  Timer , power  saving  mode ,  ADC  dan  PWM,  mempunyai In-System Programmable (ISP) Flash  on-chip yang  memungkinkan  memori  program  untuk  diprogram ulang (read/write) dengan koneksi secara Serial Peripheral Inteface (SPI).
ATmega16  memilki  keunggulan  dibandingkan  dengan  mikrokontroler  tipe  MCS  51 dengan arsitektur Complex Instruction Set Compute , yaitu mampu mengeksekusi program lebih cepat, karena sebagian besar instruksi dieksekusi dalam 1 siklus clock .
ATmega16  mempunyai throughput mendekati  1 Millions  Instruction  Per  Second (MIPS)  per MHz,  sehingga  konsumsi  daya  menjadi  rendah  terhadap  kecepatan  proses  eksekusi  perintah. Beberapa keunggulan dari ATmega16 :
a. Mikrokontroler AVR 8 bit memilliki kemampuan tinggi dengan konsumsi daya rendah.
b. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16MHz.
c. Memiliki kapasitas Flash memori 16 Kbyte, EEPROM 512 Byte dan SRAM 1 Kbyte.
d. Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C dan Port D. e. CPU yang terdiri dari 32 buah register.
f. Unit interupsi dan eksternal.
g. Port USART untuk komunikasi serial.
h. Fitur peripheral :
 3 Timer/Counter dengan kemampuan perbandingan ( compare ):
 2 Timer/Counter 8 bit dengan Prescaler terpisah dan Mode Compare  1 Timer/Counter 16 bit dengan Prescaler terpisah, Mode  Compare dan Mode Capture
 Real Time Counter dengan Oscillator tersendiri
 4 kanal PWM
 8 kanal ADC:
 8 Single-ended Channel dengan keluaran hasil konversi 8 dan 10 resolusi (register ADCH dan ADCL)
 7 Diferrential Channel hanya pada kemasan Thin Quad Flat Pack (TQFP)
 2 Differential Channel dengan Programmable Gain
 Antarmuka Serial Peripheral Interface (SPI) Bus
 Watchdog Timer dengan Oscillator Internal
 On-chip Analog Comparator
i. Non-volatile program memory
Gambar 3. Konfigurasi pin ATmega16 dalam Dual In-line Package (DIP)
Fungsi pin ATMega 16:
1. VCC (pin 10) berfungsi sebagai masukan catu daya +5v.
2. GND (pin 11 dan 31) pin Ground .
3. Port A (pin 33 – 40), pin input/output juga merupakan pin masukan ADC.
4. Port B (pin 1 – 8), pin input/output dan merupakan pin khusus.
Tabel 1 Fungsi Khusus Port B
Pin Fungsi Khusus PB0 XCK (USART External Clock Input/Output ) T0 ( Timer/Counter0 External Counter Input ) PB1 T1 ( Timer/Counter1 External Counter Input ) PB2 INT2 ( External Interupt 2 Input ) AIN0 ( Analaog Comparator Negative Input ) PB3 OC0 ( Timer/Counter0 Output Compare Macth Output ) AIN1 ( Analaog Comparator Negative Input ) PB4 (SPI Slave Select Input ) PB5 MOSI (SPI Bus Master Output /Slave Input ) PB6 MISO (SPI Bus Master Input/Slave Output ) PB7 SCK (SPI Bus Serial Clock)
5. Port C (pin 22 – 29), pin input/output dan memiliki fungsi khusus
Tabel 2 Fungsi Khusus Port C 9 Pin Fungsi Khusus PC0 SCL ( Two-wire Serial Bus Clock Line ) PC1 SDA ( Two-wire Serial BusData Input/Output Line ) PC2 TCK ( Joint Test Action Group Test Clock ) PC3 TMS ( JTAG Test Mode Select ) PC4 TDO ( JTAG Data Out ) PC5 TDI ( JTAG Test Data In ) PC6 TOSC1 ( Timer Oscillator pin 1 ) PC7 TOSC2 ( Timer Oscillator pin 2 )
6. Port D (pin 14 – 21) ialah pin input/output dan memiliki fungsi khusus.
Tabel 3 Fungsi Khusus Port D 10 Pin Fungsi Khusus PD0 RXD (USART Input Pin ) PD1 TXD (USART Output Pin ) PD2 INT0 ( External Interupt 0 Input ) PD3 INT1 ( External Interupt 1 Input ) PD4 OC1B ( Timer/Counter1 Output Compare B Macth Output ) PD5 OC1A ( Timer/Counter1 Output Compare A Macth Output ) PD6 ICP ( Timer/Counter1 Input Capture Pin ) PD7 OC2 ( Timer/Counter2 Output Compare Macth Output )
7. RESET (pin 9), pin yang digunakan untuk me-reset mikrokontroler.
8. XTAL1 dan XTAL2, ialah pin masukan external clock.
9. AVCC (pin 30), pin masukan tegangan untuk ADC.
10. AREF (pin 32), pin masukan tegangan referensi untuk ADC.

## 1.3. Pemrograman Mikrokontroler ATmega16

## Pemrograman
Menggunakan  bahasa  BASIC  tingkat  tinggi  BASCOM-AVR.  Program  Basic Compiler  berbasis  Windows  untuk  mikrokontroler  AVR  seperti  ATMega8535, ATMega16, dan lainnya

## Variabel
Digunakan  untuk  menyimpan  data  sementara.  Variabel  diberi  nama  atau dideklarasikan  terlebih  dahulu  sebelum  digunakan,  dengan  deklarasi  variable  sebagai berikut:
 dimulai dengan huruf (bukan angka).
 Tidak ada nama variabel yang sama dalam sebuah program.
 Maksimal 32 karakter.
 Tanpa menggunakan spasi, pemisahan bisa dilakukan dengan garis bawah.
 Tidak  menggunakan  karakter-karakter  khusus  yang  digunakan  sebagai  operator BASCOM.

## Operator
Operator  digunakan  dalam  pengolahan  data  pemrograman  dan  biasanya membutuhkan  dua  variabel  atau  dua  parameter,  operator  dituliskan  diantara  kedua parameter. Operator-operator BASCOM-AVR.
Tabel 4. Operator Aritmatik
Tabel 5. Operator Relasional

## Tabel 6 Operator Logika

## 2. METODE
Dalam  menyelesaikan  penelitian  digunakan  siklus  penyelesaian  seperti  pada  diagram  alir berikut.
Gambar 4.

## Diagram Alir Penelitian
a. Perancangan Diagram Blok Sistem
Gambar 4.
Diagram Blok Sistem Pengisian Air dalam Tabung Silinder
 Sensor ultrasonik :  Sebagai pengambil data dan masukkan data  untuk mikrokontroler.
 Mikrokontroler :  Sebagai pusat proses data dan instruksi.
 Driver motor
:  Rangkaian untuk menyalakan dan mematikan pompa.
 Pompa
:  Perangkat yang dikendalikan.
Sistem  pengisi  air  sebagai  berikut,  sensor  ultrasonik  memancarkan  gelombang  ultrasonik melalui transmitter, gelombang ultrasonik yang mengenai permukaan air dalam tabung silinder akan  dipantulkan  kembali  dan  diterima  oleh receiver .  Sensor  ultrasonik  GH-311  sebagai pengambil data jarak sensor ke permukaan air. Data ini sebagai masukkan untuk mikrokontroler ATmega16,  diolah  untuk  mendapatkan  tinggi  air  dalam  tabung.  Data  yang  telah  diolah dibandingkan  dengan  ketinggian  air  yang  diinginkan  (  h ref )  yang  tersimpan  di  mikrokontroler ATmega16 sebagai database. Selisih (Error) yang dihasilkan diproses untuk mengaktifkan atau mematikan pompa pengisian air.

## b. Perancangan Perangkat Keras
Perancangan  perangkat  keras  dibagi  menjadi  3  bagian,  yaitu  rangkaian  peng- input data (sensor  ultrasonik),  rangkaian  pengolah  data  (mikrokontroler),  dan  rangkaian  penggerak  relay (driver  motor  dan  motor).  Alat  pengisi  cairan  dalam  tabung  silinder  dirancang  dengan menggunakan  sensor  ultrasonik  tipe  GH-311  dan  diproses  oleh  mikrokontroler  ATmega16. Sensor  ultrasonik berfungsi  sebagai pengambil data untuk dibandingkan dengan database  pada mikrokontroler .
Gambar 5. Rangkaian Sensor Ultrasonik GH-311
Apabila  pin  AV CC pada  sensor  ultrasonik  diberi  tegangan  +5VDC,  maka  sensor  akan memancarkan  gelombang  ultrasonik  melalui transmitter dan  apabila  gelombang  tersebut mengenai  permukaan  zat  cair  dalam  tabung,  maka  gelombang  ultrasonik  akan  dipantulkan kembali dan diterima oleh receiver . Data dari rangkaian transmitter dan hasil ukur dari receiver pada  pin  I/O  dihubungkan  dengan  mikrokontroler  di  Port  PD.6/ICP1  digunakan  untuk  men- trigger  mikrokontroler  dan  pin echo di  ultrasonik  terhubung  dengan  mikrokontroler  di  Port PD.7/OC2  digunakan  untuk  menentukan timer  counter yang  dihasilkan  sejak  pertama  kali gelombang  ultrasonik dipancarkan oleh transmitter  sampai diterima  kembali gelombang pantul oleh  receiver,  data  ini  akan  disimpan  oleh  mikrokontroler,  dan  diproses  untuk  menentukan tinggi air yang dicapai dalam tabung silinder. Data tinggi air hasil proses  dibandingkan dengan data base tinggi air dalam tabung yang ditargetkan (tinggi referensi). Selisih tinggi diolah oleh mikrokontroler untuk menaktifkan relay, motor penggerak, dan pompa air.
Rangkaian  driver  motor  berfungsi  sebagai interface antara  mikrokontroler  dengan  pompa air 220VAC. Rangkaian dirancang dirancang dengan menggunakan: Resistor 220 Ω, Transistor
TIP  31,  Optocoupler  4N2,  Dioda 1A,  Relay  +5VDC/220VAC  SPDT, dan  Mikrokontroler  port PB.1/T1
Pada saat data aktual ketinggian zat cair dalam tabung silinder sama dengan database yang tersimpan  pada  mikrokontroler  telah  tercapai,  maka  mikrokontroler  yang  terhubung  dengan driver  motor  pada  port  PB.1/T1  akan  berlogika  “1”  sehingga  driver  motor  menjadi  Normally Close (close-loop), dan terjadi proses pengisian air, sedangkan bila tinggi air sdh tercapai, maka port  PB.1/T1  akan  berlogika  “0”  atau  menjadi  Normally  Open  (open-loop),  dan  pengisian tabung berhenti.
Mikrokontroler ATmega16 merupakan pusat kontrol dari alat pengisi zat cair dalam tabung silinder  yang  terhubung  dengan  perangkat  sensor  ultrasonik,  dan  rangkaian  driver  motor. ATmega16  berfungsi  sebagai  pengolah  data  dari  sensor  ultrasonik  kemudian  diproses  untuk mengaktifkan dan mematikan pompa air melalui rangkaian driver motor.
Tinggi  air  dalam  tabung  ( setting  point )  yang  diinginkan  17  cm  tersimpan  di  data  base mikrokontroler.
Gambar 6. Rangkaian Alat Pengisi zat cair  Otomatis

## c. Perencanaan Perangkat Lunak
Perencanaan  perangkat  lunak  pada  mikrokontroler  menggunakan  bahasa  pemrograman BASCOM AVR, dengan diagram alur program mikrokontroler seperti pada gambar 7 . Perencanaan  perangkat  lunak  adalah  memprogram  IC  mikrokontroler  sehingga  sistem  yang dikehendaki  dapat  berjalan  dengan  optimal.  Dilakukan  dengan  memasukkan  data  dari  sensor ultrasonik,  berupa  jarak  antara  sensor  dan  permukaan  zat  cair,  kemudian  diproses  untuk menentukan  tinggi  zat  caira,  pabila  data  berupa  ketinggian  air  yang  telah  diproses  oleh ATmega16  telah  sesuai  dengan  ketinggian  yang  ada  pada  database  mikrokontroler  maka dilanjutkan  dengan  memproses  relay  driver  motor  untuk  menyalakan  atau  mematikan  pompa air.  Perangkat  lunak  yang  dibuat  dimasukkan  ke  mikrokontroler  menggunakan  perangkat
downloder Dimulai dari program perintah memasukkan data dari sensor ultrasonik, apabila data berupa  ketinggian  air  bak  mandi  yang  telah  diproses  oleh  ATmega16  telah  sesuai  dengan ketinggian  yang  ada  pada  database  mikrokontroler  maka  dilanjutkan  dengan  memproses  relay driver motor untuk menyalakan atau mematikan pompa air.
Gambar 7. Diagram Alir Algoritma Sistem Pengisian Tabung Silinder
Langkah pertama yang dilakukan adalah menyiapkan perangkat sebagai berikut: a. Software BASCOM AVR
b. Software Progisp 172
c. Downloader ISP V2.0
d. Minimum system mikrokontroler ATmega16
e. Minimum system relay driver motor

## 3. HASIL DAN PEMBAHASAN
Pengujiannya  dilakukan  untuk  mengetahui  ketepatan  ukur  rangkaian  sensor,  kerja  relay, dan kerja sistem. Pengujian alat pengisi tabung silinder ini menggunakan tabung silinder dengan diameter  9  cm  dan  tinggi  20  cm.  Pada  awal  pengujian  kondisi  tabung  dalam  kondisi  kosong, rangkaian  sensor  ultrasonik  diletakkan  diatas  tabung  untuk  mengukur  jarak  antara  sensor  ke permukaan air. Hasil ukur data jarak ini diolah oleh mikrokontroler untuk menentukan tinggi air dalam  tabung  dan  dibandingkan  dengan  nilai  referensi  tinggi  yang  air  yang  diinginkan (database).  Nilai  Hasil  perhitungan  selisih  tinggi  air  ini  digunakan  mikrokontroler  untuk
mengendalikan relay driver motor untuk mengaktifkan atau mematikan kontaktor ke pompa air pengisi tabung air.
Pengujian dimulai dari kondisi tabung silinder kosong, kemudian diamati dan diambil data tinggi air saat pompa mengisi tabung dan tinggi air dalam saat pompa berhenti mengisi tabung.
Tabel  7.
Pengujian Sistem Pengisani Air dalam Tabung Silinder
Tinggi                    Jarak sensor GH-311            Tinggi air               Kondisi relay/ Tabung silinder      ke permukaan air                   dalam tabung         motor dreiver/ Diukur dengan penggaris                                     pompa air [ cm]                              [cm]                              [cm]                        [cm]
20                                 20                                   0                       menyala/mengisi 20                                 17                                   3                       menyala/mengisi 20                                 15                                   5                       menyala/mengisi 20                                 10                                 10                       menyala/mengisi 20                                   5                                  15                      menyala/mengisi 20                                   3                                  17                      menyala/mengisi 20                                2                                18                      tidak menyala
Pada saat tabung kosong, pompa bekerja mengisi tabung, pompa air tetap mengisi tabung selama  tinggi  air  dalam  tabung  belum  mencapai  tinggi  referensi  17  cm  (setting  point).  Pompa air berhenti mengisi setelah tinggi air sudah melebihi 17 cm.

## 4. KESIMPULAN DAN SARAN
1.  Secara  umum  sensor  Ultrasonik  GH-311  dapat  digunakan  untuk  mengukur  tinggi  air dalam tabung pada jarak jangkau 2 cm hingga 300 cm.
2.  Untuk  hasil  yang  lebih  akurat  dapat  dilakukan  menggunakan Parallax  Ping  Ultrasonic sensor .
5. REFERENSI
A .  Winoto,  “Mikrokontroler  AVR  ATmega8/16/32/8535  dan  Pemrogramannya”,  Bandung:
Informatika, 2013.
D. Wiyono, “Panduan praktis mikrokontroler keluarga AVR”, Surabaya, 2008
Dany, Herlambang. Dasar Teori Mikrokontroler Atmega16, tersedia di http://usu.ac.id/bitstream/ 123456789/ 28677/4/Chapter%20II.pdf
Fardiaz, Srikandi. 1992. Polusi air dan udara . Jogjakarta : Kanisi
5
Winoto,  “Mikrokontroler  AVR  ATmega8/16/32/8535  dan  Pemrograman  nya”,
Bandung: Informatika, 2011.
D. Wiyono, “Panduan praktis mikrokontroler keluarga AVR”, Surabaya, 2008
http://pdf.datasheetbank.com/datasheet-download/188473/0/ETC/GH-311 .
http://www.datasheetbank.com/datasheet/ETC/GH-311.html