Alat Ukur Ketinggian Dan Volume Air Berbasis Mikrokontoler

Alat ukur ketinggian dan volume air - Disini kita akan membahas mengenai cara membuat alat ukur ketinggian dan volume air berbasis mikrokontroler, sebelum mengenal lebih lanjut tentang cara membuat alat ukur ketinggian dan volume air, sebaiknya kita pahami terlebih dahulu sistem yang akan kita gunakan dalam membuat alat ukur ketinggian dan volume air ini.

Alat yang akan dibuat ini merupakan alat ukur ketinggian dan volume air yang serbaguna dalam arti dapat digunakan untuk beberapa penampung cairan yang berbeda-beda sepanjang betuk tandon adalah silinder. Untuk sensor yang kita gunakan dalam membuat alat ini adalah sensor HC-SR04, berdasarkan hal tersebut artikel ini bertujuan untuk merancang  alat ukur ketinggian dan volume air automatis berbasis mikrokontroler dengan LCD sebagai penampil data dari ketinggian dan volume cairan.


Sensor Ultransonik HC-SR04

Sensor ultransonik digunakan untuk mengetahui jarak suatu objek dengan sensor. Cara kerja sensor ini dalam mendeteksi objek adalah dengan mengirimkan gelombang ultrasonik pendek dan kemudian menunggu pantulan dari gelombang yang dipancarkan tadi kembali ke sensor.

sensor HC-SR04

Di dalam kendali mikrokontroler (untuk mengeluarkan pulsa pemicu), sensor mengirimkan gelombang ultrasonik pendek dengan frekuensi 40 kHz. Gelombang ini akan melalui udara kira-kira 1130 kaki / detik, membentur suatu objek dan kemudian kembali ke sensor. Sensor ini menyediakan pulsa keluaran pada mikrokontroler yang akan diteruskan ketika gelombang pantulan terdeteksi oleh sensor.

Mikrokontroler ATmega8535

AVR (Alf and Vegard’s Risc Processor) merupakan seri mikrokontroler CMOS 8-bit buatan Atmel, berbasis arsitektur RISC (Reduced Instruction Set Computer). Secara umum, AVR dapat dikelompokkan menjadi 4 kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga ATmega, dan AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya.

ATmega8535 memiliki bagian sebagai berikut :
  1. Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, dan Port D.
  2. ADC 10 bit sebanyak 8 saluran.
  3. Tiga buah Timer/Counter dengan kemampuan pembanding.
  4.  CPU yang terdiri atas 32 buah register.
  5. Watchdog Timer dengan osilator internal.
  6. SRAM sebesar 512 byte.
  7. Memori flash sebesar 8kb dengan kemampuan Read While Write.
  8. Unit interupsi internal dan eksternal.
  9. Port antarmuka SPI.
  10. EEPROM sebesar 512 byte yang dapat diprogram saat operasi.
  11.  Antarmuka komparator analog.
  12. Port USART untuk komunikasi serial.
  13. Empat kanal PWM.
  14. Tegangan operasi sekitar 4.5-5.5V.


Fitur-fitur ATMega 8535

Beberapa keistimewaan dari AVR ATMega 8535 antara lain:
  1. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.
  2. Kemampuan memori flash 8KB, SRAM sebesar 512 byte, dan EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 512 byte.
  3. ADC (Analog to Digital Converter) internal dengan resolusi 10 bit sebanyak 8 saluran.
  4. Port komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps.
  5. Enam pilihan mode sleep menghemat penggunaan daya listrik.

LCD ( Liquid Crystal Display )


LCD M1632 adalah sebuah modul LCD doTMAtrik dengan konfigurasi 2 baril dengan 16 karakter setiap barisnya. Diberntuk oleh 8 x5 pixel dengan 1 baris pixel terakhir adalah kursor). HD44780 adalah mikrokontroler yang dirancang khusus untuk mengendalikan LCD dan mempunyai kemampuan untuk mengatur proses scanning pada layar LCD. Driver tersebut bertugas mengirimkan data karakter LCD, dan bertugas mengendalikan LCD sesuai dengan perintah yang diberikan melalui pin I/O LCD. CodeVision AVR menyediakan pustaka yang berisi fungsi-fungsi siap pakai yang dapat langsung digunakan untuk mengakses LCD. Penyesuaian yang dilakukan adalah pada konfigurasi port LCD yang harus disamakan dengan konfigurasi pin pada CodeVision AVR.

konfigurasi pin LCD M1632


  1. Pin 1 (GND): pin ini berhubungan dengan tegangan +5 volt yang merupakan tegangan untuk sumber daya dari HD44780 (khusus untuk modul M1632 keluaran Hitachi, pin ini adalah VCC).
  2. Pin 2 (VCC): pin ini berhubungan dengan tegangan 0 volt (ground) dari modul LCD (khusus untuk modul M1632 keluaran Hitachi, pin ini adalah GND).
  3. Pin 3 (VEE/VLCD): Tegangan pengatur kontras LCD, kontras mencapai nilai maksimum pada saat kondisi pin ini pada tegangan 0 volt.
  4. Pin 4 (RS): Register Select, pin pemilih register yang akan diakses. Untuk akses ke register data, logika dari pin ini adalah 1 dan untuk akses ke register perintah, logika dari pin ini adalah 0.
  5. Pin 5 (R/W): logika 1 pada pin ini menunjukkan bahwa modul LCD sedang pada mode pembacaan dan logika 0 menunjukkan bahwa modul LCD sedang pada mode penulisan. Untuk aplikasi yang tidak membutuhkan pembacaan pada modul LCD, pin ini dapat langsung dihubungkan ke ground.
  6. Pin 6 (E): Enable Clock LCD, pin mengaktifkan clock LCD. Logika 1 pada pin ini diberikan pada saat penulisan atau pembacaan data.
  7. Pin 7-14 (D0-D7): Data Bus, kedelapan pin modul LCD ini adalah bagian dimana aliran data sebanyak 4 bit ataupun 8 bit mengalir saat proses penulisan maupun pembacaan data.
  8. Pin 15 (Anoda): berfungsi untuk tegangan positif dari backlight modul LCD sekitar 4,5 volt (hanya terdapat untuk M1632 yang memiliki backlight).
  9. Pin 16 (Katoda): tegangan negatif backlight modul LCD sebesar 0 volt (hanya terdapat untuk M1632 yang memiliki backlight).

Pemrograman Dengan Bahasa C


Mikrokontroler AVR dirancang sesuai sifatsifat pengkodean bahasa C, sehingga bahasa inilah yang kemudian cenderung digunakan daripada bahasa lainnya seperti bahasa basic ataupun pascal. Bahasa C yang digunakan pada AVR ini adalah ANSI (American National Standard Institute) C. Alasan utama pemilihan bahasa C ini karena bahasa C merupakan gabungan dari bahasa tingkat tinggi dan juga bahasa tingkat rendah, yang menyediakan kemampuan operasi-operasi bit, byte, alamat-alamat memori, dan register. Bahasa C yang digunakan untuk memprogram mikrokontroler ini disebut sebagai embedded C, yang selanjutnya oleh compiler listing program C ini diubah menjadi bahasa tingkat rendah mikrokontroler yang bersangkutan yang kemudian diterjemahkan menjadi kode-kode bahasa mesin yang selanjutnya diprogramkan ke dalam chip mikrokontroler. Bahasa C yang digunakan hampir semuanya sesuai dengan standard dari ANSI dengan penambahan beberapa fungsi untuk disesuaikan dengan arsitektur AVR dan sistem pada mikrokontroler.

Perancangan Sistem 

Blok Diagram Sistem Keseluruhan

Komponen-komponen yang digunakan dalam system pengukur volume cairan otomatis adalah:
  1. Sensor HC-SR04 Ultrasonik Range Finder timing diagram: berfungsi sebagai sensor level cairan.
  2. Mikrokontroler AVR AT-Mega8535: berfungsi mengatur kinerja sistem dalam manajemen data sebagai unit masukan untuk keperluan setting secara manual di tempat.
  3. Modul LCD M1632 berfungsi menampilkan nilai volume cairan.


blok diagram sistem keseluruhan

Perancangan Perangkat Keras


Berikut ini adalah diagram blok dari perangkat keras sistem.

diagram blok sistem

Tiap-tiap bagian dapat dijelaskan sebagai berikut.
  1. Sensor Jarak HC-SR04 merupakan sensor 
    yang akan mendeteksi adanya benda di depan 
    sensor, keluaran sensor ini berupa tegangan 
    digital yang langsung diolah oleh sistem 
    mikrokontroler ATmega8535.
  2. LCD (Liquid Crystal Display) dan driver 
    LCD berfungsi sebagai media tampilan 
    selama proses pengendalian berlangsung.
  3. Catu daya berfungsi sebagai suplai sistem 
    keseluruhan.
  4. Mikrokontroler ATmega8535 yang berfungsi sebagai pusat pengendalian pada sistem pengukur volume otomatis ini yang dapat diprogram dengan menggunakan bahasa C.

Sensor Ultrasonik HC-SR04


Sensor ini memiliki 4 kaki (Pin) yang berfungsi sebagai berikut Pin Ground, Pin Supply 5V, Pin Echo dan Trigger, seperti Gambar diatas. Dalam perancangan alat ini, pin echo dan trigger sensor ultrasonik dihubungkan dengan port B.6 dan B.7 pada AVR sedangkan pin supply 5V dan Ground dihubungkan dengan catu daya. Sensor ini berfungsi untuk mengubah besaran fisis yang berupa jarak menjadi besaran elektris tegangan. Sensor ini bekerja dengan mengirimkan gelombang ultrasonik yang memiliki frekuensi dibawah pendengaran manusia kemudian akan menyediakan pulsa keluaran yang berhubungan langsung dengan waktu yang dibutuhkan bagi pantulan gelombang ultrasonik untuk mencapai sensor. Dengan mengukur waktu dari gelombang pantulan yang sampai ke sensor ini maka tinggi tabung yang tidak terisi cairan dapat dihitung dengan mudah. Untuk menghitung tinggi tabung yang tidak terisi cairan dapat diukur oleh sensor dapat dihitung sebagai berikut. Untuk tiap 1 cm waktu yang dibutuhkan untuk gelombang pantulan adalah



Sehingga untuk menentukan tinggi cairan dari sensor dapat dihitung dengan membandingkan waktu pantulan tp dengan waktu per cm (t) lalu dikalikan dengan 1 cm.

Sistem Minimum AVR ATMega 8535

Pada Sistem pengukur volume cairan ini,
sistem minimum mikrokontroler memegang 
peranan penting, yakni sebagai rangkaian sentral 
yang mengatur kinerja sistem, bagian ini 
dirancang untuk mampu mengakomodasi dan 
menangani setiap kejadian yang mungkin terjadi. 
Baik dalam pengelolaan/ menajemen data, 
maupun penanganan terhadap kegagalan proses. 
Sistem mikrokontroler ATMega8535 dibentuk dari beberapa piranti masukan-keluaran. Hubungan mikrokontroler ATMega8535 dengan piranti masukan keluaran seperti sensor HC-SR04 pada port PB.6 dan PB.7, dan LCD pada port A.

LCD

Modul LCD dihubungkan dengan PORTC
pada mikrokontroler ATMega8535. Modul LCD 
ini memerlukan suatu driver yang skematiknya 
dapat dilihat pada gambar berikut :


Perancangan Perangkat Lunak

Mikrokontroler tidak akan dapat bekerja tanpa adanya software/perangkat lunak di dalamnya. Software ini sering disebut sebagai firmware. Yaitu suatu urutan perintah/ instruksi yang harus dikerjakan oleh CPU, baik itu sperhitungan aritmatika, manajemen memory, maupun akses input/output. Mikrokontroler keluarga AVR, dirancang untuk mengakomodasi bahasa tingkat menengah yaitu bahasa C. Sehingga, pemrogram akan sangat dimudahkan dalam pembuatan maupun pengembangan firmware yang hendak ditanamkan pada sistem. Selain hal di atas, CodeVision AVR telah menyediakan pustaka fungsi dan prosedur siap pakai, yang terdokumentasi dalam library yang tersedia. Sehingga, akses terhadap suatu periferal spesifik (contoh: LCD) sangat mudah dilakukan. Cukup menggunakan fungsi-fungsi yang telah tersedia.

Pembacaan Sensor Level Cairan

Cara kerja dari alat ini adalah mikrokontroler ATmega 8535 di aktifkan dengan memberikan tegangan yang dihasilkan oleh power supply. Kemudian ATmega 8535 yang telah diisi program akan mengaktifkan sensor ultrasonik ping. Tinggi permukaan cairan diukur dengan memanfaatkan sensor ultrasonik. Sensor ultrasonik memancarkan gelombang ultrasonik dan dipantulkan oleh permukaan cairan kemudian diterima oleh penerima dalam sensor. Waktu yang diperlukan gelombang tersebut untuk dipancarkan dan diterima kembali, data tersebut bukan ketinggian cairan melainkan suatu jarak hasil pengukuran sensor (Tsensor), yang kemudian dikonversi ke dalam besaran jarak (cm) oleh mikrokontroler dan diolah untuk memperoleh tinggi cairan yaitu dengan rumus Tcairan = Ttabung – Tsensor , setelah mendapatkan Tcairan maka volume cairan dapat dihitung dengan rumus V = πR2 x Tcairan. Hasil perhitungan tadi kemudian ditampilkan dalam LCD.

Codingan menggunakan CodevisionAVR Untuk Menghitung volume :

while (1)
      { 
      
      counter = 0;

      trigger = 1;
      delay_us(10);
      trigger = 1 ;
      delay_us(10);
      trigger = 0;


      while (echo == 0){};
      while (echo == 1)

      {
        counter++;
      }
    
      jarak = ((counter/58)*1);
      
      for(x=0;x<99;x++)
    
    
      lcd_clear();
      lcd_gotoxy(0,1);
    
      sprintf(data,"Jarak = %d Cm",jarak);
      lcd_puts(data);
      delay_ms(100);      
      

Tair=25-jarak;
      volume=Tair*64;
      ftoa(jarak,3,data);
      
      lcd_gotoxy(0,0);
      ftoa(jarak,3,data);
      sprintf(data,"volume = %i ml",volume);
      lcd_puts(data);
      delay_ms(200);
      lcd_clear();
      unsigned int jarak,counter;
float s_hysrf;

void HY_SRF05()
      
      {
       DDRB.6=1;//     pin TRIGGER
       PORTB.6=1;
       delay_us(10);
       PORTB.6=0;
       DDRB.7=0;//     pin ECHO
       counter = 0;
       while (PINB.7==0);
       while (PINB.7==1)
       
       {counter++;
       if ( counter > 13000) break;
       } 
       
        s_hysrf=(float)counter/34.0;

      lcd_init(16);
      lcd_gotoxy(0,0);
        sprintf(data,"%3.0f",s_hysrf);
        lcd_puts(data);
}

void main(void)
{
while (1)
      {
       HC-SR04();
      };
}


Silahkan Modifikasi codingan diatas sesuai dengan lebar dan tinggi dari tabung cairan yang anda gunakan.

 Penutup
 Artikel ini saya buat setelah membuat sendiri alar ukur ketinggian dan volume air, dari hasil pembuatan alat saya, ternyata hasil yang sebenarnya tidak sama persis dengan hasil yang dikeluarkan oleh LCD melalui mikrokontroler. Jadi kesimpulannya silahkan anda mencoba membuat alat tersebut dengan teliti, karena saya sudah beberapa gagal dalam proses pembuatannya. Jika ada pertanyaan silahkan sertakan komentar anda di bawah. Sekian dulu artikel saya mengenai cara membuat alat ukur ketinggian dan volume air berbasis mikrokontroler, semoga bermanfaat untuk para pembaca. Terimakasih.

4 comments

Permisi pak, apa di indonesia ada yang menjual alat pengukur volume air berbasis mikrometer? Kalau ada boleh minta kontak atau web yang bisa dihubungi

kontak aja mas melalui email : benedictowen09@gmail.com

kalo misalnya dalam skala besar gitu misalnya kaya sungai apa ada yg perlu diganti? secara ukuran media pengecekannya juga lebih besar ?

permisi, bagaimana cara untuk mengkonversi satuan dalam liter? mohon penjelasannya