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 :
- Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C,
dan Port D.
- ADC 10 bit sebanyak 8 saluran.
- Tiga buah Timer/Counter dengan kemampuan pembanding.
- CPU yang terdiri atas
32 buah register.
- Watchdog Timer dengan osilator internal.
- SRAM sebesar 512 byte.
- Memori flash sebesar 8kb dengan kemampuan Read While Write.
- Unit interupsi internal dan eksternal.
- Port antarmuka SPI.
- EEPROM sebesar 512 byte yang dapat diprogram saat operasi.
- Antarmuka komparator
analog.
- Port USART untuk komunikasi serial.
- Empat kanal PWM.
- Tegangan operasi sekitar 4.5-5.5V.
Fitur-fitur ATMega 8535
Beberapa keistimewaan dari AVR ATMega 8535 antara lain:
- Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan
maksimal 16 MHz.
- Kemampuan memori flash 8KB, SRAM sebesar 512 byte, dan
EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 512 byte.
- ADC (Analog to Digital Converter) internal dengan resolusi
10 bit sebanyak 8 saluran.
- Port komunikasi serial (USART) dengan kecepatan maksimal 2,5
Mbps.
- 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
- 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).
- Pin 2 (VCC): pin ini
berhubungan dengan tegangan 0 volt (ground) dari modul LCD (khusus untuk modul
M1632 keluaran Hitachi, pin ini adalah GND).
- Pin 3 (VEE/VLCD): Tegangan pengatur kontras LCD, kontras
mencapai nilai maksimum pada saat kondisi pin ini pada tegangan 0 volt.
- 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.
- 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.
- Pin 6 (E): Enable
Clock LCD, pin mengaktifkan clock LCD. Logika 1 pada pin ini diberikan pada
saat penulisan atau pembacaan data.
- 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.
- Pin 15 (Anoda): berfungsi untuk tegangan positif dari
backlight modul LCD sekitar 4,5 volt (hanya terdapat untuk M1632 yang memiliki
backlight).
- 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:
- Sensor HC-SR04 Ultrasonik Range Finder timing diagram:
berfungsi sebagai sensor level cairan.
- Mikrokontroler AVR AT-Mega8535: berfungsi mengatur kinerja
sistem dalam manajemen data sebagai unit masukan untuk keperluan setting secara
manual di tempat.
- 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.
- 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.
- LCD (Liquid Crystal Display) dan driver
LCD berfungsi sebagai media tampilan
selama proses pengendalian berlangsung.
- Catu daya berfungsi sebagai suplai sistem
keseluruhan.
- 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.
ADS HERE !!!