LISTING PROGRAM
// Declare your global variables here unsigned char x,buflcd[16];
unsigned int nilai_ADC,counter,set;
float nilai_total, nilai_hasil, nilai_rata,jarak,nilai_jarak,jarak_rata; int frekuensi=0; // External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void) {
// Place your code here frekuensi++;
}
// Timer1 overflow interrupt service routine interrupt [TIM1_OVF] void timer1_ovf_isr(void)
lcd_gotoxy(x,y); lcd_putsf(teks); //lcd_clear(); }
// Voltage Reference: AVCC pin
#define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (0<<ADLAR)) // Read the AD conversion result
unsigned int read_adc(unsigned char adc_input) {
ADMUX=adc_input | ADC_VREF_TYPE;
// Delay needed for the stabilization of the ADC input voltage delay_us(10);
// Start the AD conversion ADCSRA|=(1<<ADSC);
// Wait for the AD conversion to complete while ((ADCSRA & (1<<ADIF))==0);
// Declare your local variables here // Input/Output Ports initialization // Port A initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
// Port B initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=P PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (1<<PORTB0);
// Port C initialization
// Function: Bit7=In Bit6=In Bit5=Out Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRC=(0<<DDC7) | (0<<DDC6) | (1<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
// Port D initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
// State: Bit7=T Bit6=P Bit5=P Bit4=P Bit3=P Bit2=T Bit1=P Bit0=P PORTD=(1<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (1<<PORTD3) | (0<<PORTD2) | (1<<PORTD1) | (1<<PORTD0);
// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 31,250 kHz // Mode: Normal top=0xFFFF // OC1A output: Disconnected // OC1B output: Disconnected // Noise Canceler: Off
// Input Capture on Falling Edge // Timer Period: 1 s
// Timer1 Overflow Interrupt: On // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off
TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (1<<CS12) | (0<<CS11) | (0<<CS10);
TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (1<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);
// External Interrupt(s) initialization // INT0: On
// INT0 Mode: Any change // INT1: Off
// INT2: Off
GICR|=(0<<INT1) | (1<<INT0) | (0<<INT2);
MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (1<<ISC00); MCUCSR=(0<<ISC2);
GIFR=(0<<INTF1) | (1<<INTF0) | (0<<INTF2); // ADC initialization
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: ADC Stopped ADMUX=ADC_VREF_TYPE;
ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);
SFIOR=(1<<ADHSM) | (0<<ADTS2) | (0<<ADTS1) | (0<<ADTS0);
lcd_init(16);
if(tombol1==0) {lcd_clear();tampil_lcd(0,0,"mode"); tampil_lcd(7,0,"auto");
while (echo==1)
nilai_rata = (float)nilai_hasil / ADC_samp; // nilai rata-rata nilai_total =(nilai_rata * 4.8825125);
sprintf(buflcd,"nl:%2.2f mV",nilai_total); lcd_gotoxy(0,0);lcd_puts(buflcd);
sprintf(buflcd,"jrk:%2.2f cm",jarak); lcd_gotoxy(0,1);lcd_puts(buflcd);
if(switch1==0 & ((jarak+0.5)<nilai_total)){delay_ms(200);pompa_aktif=1;} if ((jarak+0.5)>=nilai_total){pompa_aktif=0;}
if(tombol1==0) tbl_set=1; }
while(mode_volume==1 & tbl_set==0){
if(tombol2==0) {set=set+50;delay_ms(250);} if(tombol3==0) {set=set-50;delay_ms(250);} if (set<50) set=3000;
if (set>3000) set=50;
sprintf(buflcd,"set vol:%2d ml",set); lcd_gotoxy(0,0);lcd_puts(buflcd); if(tombol1==0) {tbl_set=1;vol=0;} while(switch1==0 && vol<set){ #asm("sei");
pompa_aktif=1;
FOTO PERANCANGAN ALAT PENGISI CAIRAN OTOMATIS MENGGUNAKAN SENSOR HAMBATAN GESER BERDASARKAN
SKEMATIK RANGKAIAN PERANCANGAN ALAT PENGISI CAIRAN OTOMATIS MENGGUNAKAN SENSOR HAMBATAN GESER BERDASARKAN ATMEGA8535
U
n
iv
e
r
s
ita
s
Su
m
a
te
r
a
U
ta
r
DAFTAR PUSTAKA
Andi, Nalwan Paulus.2004.Panduan Praktis Penggunaan dan Antarmuka Modul LCD M1632.Jakarta:PT.Alex Media Komputindo.
Elektur.1996.302 Rangkaian Elektronika.Penerjemahan P.Pratomo dkk.Jakarta: Percetakan PT Gramedia.
Lingga, W. 2006. Belajar Sendiri Pemrograman AVR ATMega8535. Yogyakarta: Andi Offset.
Paulus Andi Nalwan.2003.Teknik Antarmuka dan Pemrograman Mikrokontroler AT89S51, Cetakan Pertama, Jakarta : PT Gramedia.
BAB III
PERANCANGAN ALAT DAN PEMBUATAN SISTEM
3.1. Diagram Blok Sistem
Diagram merupakan pernyataan hubungan yang berurutan dari suatu atau lebih komponen yang memiliki kesatuan kerja tersendiri dan setiap blok komponen mempengaruhi komponen yang lainnya. Diagram blok merupakan salah satu cara yang paling sederhana untuk menjelaskan cara kerja dari suatu sistem. Dengan diagram blok kita dapat menganalisa cara kerja rangkaian dan merancang hardware yang akan dibuat secara umum.
Adapun diagram blok dari sistem yang dirancang, seperti yang diperlihatkan pada gambar 3.1.
Gambar 3.1. Diagram Blok Sistem
a. Blok Sensor Ultrasonik sebagai pengukur ketinggian cairan didalam gelas yang telah terisi.
b. Blok Sensor Geser Resistif sebagai pengukur ketinggian gelas.
c. Blok Sensor Flowmeter sebagai pengukur jumlah volume cairan yang telah disalurkan.
d. Input keypad sebagai input pilihan mode pada sistem alat
e. Limit switch sebagai penanda gelas telah diletakkan atau diangkat dari sistem alat. f. Blok mikrokontroller sebagai pengolah data dari sensor dan mengendalikan
Waterpump.
g. Blok LCD sebagai penampil hasil/data pengukuran. h. Blok driver relay sebagai pengendali on/off waterpump. i. Blok Waterpump sebagai penyalur cairan.
3.2. Rangkaian Mikrokontroler ATMega8535
Rangkaian sistem minimum mikrokontroler ATMEGA 8535 dapat dilihat pada gambar 3.2. di bawah ini :
Dari gambar 3.2, Rangkaian tersebut berfungsi sebagai pusat kendali dari seluruh sistem yang ada. Komponen utama dari rangkaian ini adalah IC Mikrokontroler ATMega8535. Semua program diisikan pada memori dari IC ini sehingga rangkaian dapat berjalan sesuai dengan yang dikehendaki.
Pin 12 dan 13 dihubungkan ke XTAL 16,000 MHz dan dua buah kapasitor 22pF. XTAL ini akan mempengaruhi kecepatan mikrokontroler ATMega8535 dalam mengeksekusi setiap perintah dalam program. Pin 9 merupakan masukan reset (aktif rendah). Pulsa transisi dari tinggi ke rendah akan me-reset mikrokontroler ini.
Untuk men-download file heksadesimal kemikrokontroler, Mosi, Miso, Sck, Reset, Vcc dan Gnd dari kaki mikrokontroler dihubungkan ke USB via programmer. Kaki Mosi, Miso, Sck, Reset, Vcc dan Gnd pada mikrokontroler terletak pada kaki 6, 7, 8, 9, 10 dan 11. Apabila terjadi keterbalikan pemasangan jalur ke ISP Programmer, maka pemrograman mikrokontroler tidak dapat
dilakukan karena mikrokontroler tidak akan bisa merespon.
3.3. Rangkaian Sensor Ultrasonik
Rangkaian sensor ultrasonik dapat dilihat pada gambar 3.3. di bawah ini :
Di dalam blok sensor ultrasonic ada 2 rangkaian yang saling berhubungan yaitu Transmitter sebagai pengirim data dari objek ke benda dan Receiver sebagai penerima data dari benda ke objek.
Jarak antara ultrasonic tranducer Rx dan Tx mempengaruhi kinerja alat dalam aplikasi ini. Pengaturan resistor variabel R6 pada rangkaian receiver dapat dilakukan saat rangkaian dinyalakan yaitu dengan acuan tampilan LCD. Bila LCD selalu menampilkan “Distance = 001 cm” berarti jendela komparator terlalu sempit sehingga dapat di-trigger oleh gelombang ultrasonic langsung dari Tx bukan pantulan dari benda di depannya.
Proses pengukuran jarak dipicu dengan mengirimkan pulsa negatif (logika 0 / 0 V) selama 20 µs. Setelah perintah diterima dan dikenali, modul ultrasonic akan mulai mengukur jarak dengan menggunakan ultrasonic ranger. Selama modul sedang dalam proses mengukur jarak Proses pengukuran jarak akan berlangsung antara 100 µs – 25 ms tergantung pada berapa jarak obyek dan pengukuran apa saja yang dilakukan. Proses pengukuran tersebut memberi waktu untuk mengganti pin mikrokontroler yang dihubungkan ke pin SIG menjadi input dan menyiapkan mikrokontroler untuk menghitung lebar pulsa.
Setelah proses pengukuran selesai, modul ultrasonik akan mengirimkan data hasil pengukuran berupa pulsa negatif yang lebarnya proporsional terhadap jarak obyek yang diukur/dideteksi. Pulsa selebar 10 µs menyatakan jarak 1 mm. Jadi misalkan lebar pulsa yang dikirim adalah 10 ms, maka hasil pengukuran adalah 100 cm. Gambar 3.4 menunjukkan pulsa keluaran gelombang ultrasonik.
Gambar 3.4. Keluaran Pulsa Ultrasonik
Pada alat ini, display yang digunakan adalah LCD (Liquid Crystal Display) 16 x 2. Untuk blok ini tidak ada komponen tambahan karena mikrokontroler dapat memberi data langsung ke LCD, pada LCD Hitachi - M1632 sudah terdapat driver untuk mengubah data ASCII output mikrokontrole rmenjadi tampilan karakter. Pemasangan potensio sebesar 5 KΩ untuk mengatur kontras karakter yang tampil. Gambar 3.5 berikut merupakan gambar rangkaian LCD yang dihubungkan ke mikrokontroler.
Gambar 3.5. Rangkaian LCD
Dari gambar 3.5, rangkaian ini terhubungke PA.0... PA7, yang merupakan pin I/O dua arah dan pin fungsi khusus, yaitu sebagai Analog and Digital Converter. Nilai yang akan tampil pada LCD display akan dapat dikendalikan oleh Mikrokontroller ATMega8535.
3.5. Rangkaian Relay
Gambar 3.6. Rangkaian Relay Pengendali Waterpump
Relay merupakan salah satu komponen elektronik yang terdiri dari lempengan logam sebagai saklar dan kumparan yang berfungsi untuk menghasilkan medan magnet. Pada rangkaian ini digunakan relay 12 volt.
3.6. Rangkaian Input Push Button dan Limit Switch
Gambar 3.7. Rangkaian Input Push Button & Limit Switch
3.7. Perancangan Rangkaian Sensor Potensio Geser
Perancangan ini menggunakan sensor potensio geser/resistor geser. Berbeda dengan potensiometer turn, jenis reistor ini akan berubah hambatan nya apabila di geser bukan diputar. Prinsip yang digunakan pada resistor jenis ini adalah prinsip pembagi tegangan. Adapun perancangan rangkaian potensio geser pada sistem diperlihatkan pada gambar 3.8. dibawah ini :
Gambar 3.8. Rangkaian Sensor Potensio Geser
Dengan prinsip rangkaian diatas maka semakin tinggi saklar digeser maka semakin besar tegangan yang dihasilkan oleh sensor ini.
3.8. Perancangan Sensor Flowmeter
Pada rangkaian ini menggunakan sebuah Water Flow sensor terdiri dari katup plastik, rotor air, dan sensor hall efek. Ketika air mengalir melalui gulungan rotor-rotor, perubahan kecepatan aliran dengan tingkat yang berbeda sesuai output sinyal pulsa dari sensor hall efek. Kelebihan sensor ini adalah hanya membutuhkan 1 sinyal (SIG) selain jalur 5V dc dan Ground. Adapun perancangan snsor flowmeter dapat dilihat pada gambar 3.9. dibawah ini.
Gambar 3.9. Rangkaian Sensor Flowmeter
3.9. Diagram Alir ( Flow Chart )
Gambar 3.10. Flowchart Cara Kerja Sistem
Program dimulai dari start dan dilanjutkan dengan inisialisasi untuk memetakan memori dan port – port yang akan digunakan untuk keperluan pembacaan sensor dan port – port untuk menampilkan ke LCD.
Kemudian mikrokontroler akan memeriksa pemilihan mode yang digunakan. Pada mode manual, kita harus memasukan jumlah nilai volume air yang diinginkan (dikeluarkan). Kemudian pompa air akan aktif, lalu sensor waterflow akan memerika apakah volume air yang terisi lebih kecil daripada jumlah volume air yang diinginkan.
Jika ‘Tidak’, maka sensor waterflow akan mendeteksi terus – menerus. Jika ‘Ya’, maka pompa air akan dimatikan.
Pada mode otomatis, gelas akan diukur ketinggiannya secara otomatis oleh potensiometer geser, kemudian dilakukan pendeteksian penekanan tombol ON.
Jika ‘Tidak’, tidak akan ada proses yang dijalankan (sensor potensiometer geser akan terus mengukur ketinggian gelas).
Jika ‘Ya’, pompa air akan diaktifkan. Setelah pompa air aktif, dilakukan pengukuran ketinggian level cairan dalam gelas menggunakan sensor ultrasonic, lalu sensor ultrasonic memeriksa apakah ketinggian level cairan lebih besar atau sama dengan ketinggian gelas.
Jika ‘Ya’, pompa air akan dimatikan.
BAB IV
PENGUJIAN ALAT DAN ANALISA RANGKAIAN
4.1. Pengujian Rangkaian Mikrokontroler ATMega8535
Pengujian pada rangkaian mikrokontroler ATMega8535 ini dapat dilakukan dengan menghubungkan rangkaian ini dengan rangkaian power supply sebagai sumber tegangan. Kaki 10 dihubungkan dengan sumber tegangan 5 volt, sedangkan kaki 11 dihubungkan dengan ground. Kemudian tegangan pada kaki 10 diukur dengan menggunakan Voltmeter. Dari hasil pengujian didapatkan tegangan pada kaki 10 sebesar 4,9 volt. Langkah selanjutnya adalah memberikan program sederhana pada mikrokontroler ATMega 8535, program yang diberikan adalah sebagai berikut:
#include <mega8535.h>
#include <delay.h>
#include <stdio.h>
while (1)
{
// Place your code here
PORTC=0x00;
Delay_ms(1000);
PORTC=0xFF;
Delay_ms(1000);
}
4.2. Pengujian dan Analisa Rangkaian Sensor Ultrasonik
Pada gambar 3.2. dan 3.3. tentang rangkaian transmitter dan receiver terletak dalam 1 komponen melainkan masing-masing mempunyai fungsi. Untuk menganalisa rangkaian ultrasonik dapat di lihat pada tabel 4.1. di bawah ini.
ke - 5 8 10 12 14 16
Pengujian jarak pendeteksian sensor ultrasonik dilakukan dengan mendekatkan dan menjauhkan posisi objek yang ada didepan sensor, dengan kondisi objek merupakan benda padat yang tidak menyerap atau terbuat dari bahan yang lunak. Untuk mengetahui kepekaan sensor ketika diberikan objek yang berbeda dilakukan sebanyak 5 kali pada masing-masing objek.
Hasil pengujian dapat membuktikan bahwa sensor ultrasonik bekerja berdasarkan kemampuan penghalang memantulkan kembali gelombang ultrasonik yang dikirim oleh sensor ultrasonik, gangguan pada pendeteksian sensor dapat diakibatkan oleh penghalang yang tidak mampu memantulkan gelombang bunyi dengan baik dan adanya interferensi gelombang dengan frekuensi yang sama. Pulsa selebar 10 µs menyatakan jarak 1 mm. Jadi misalkan lebar pulsa yang dikirim adalah 10 ms, maka hasil pengukuran adalah 100 cm.
Dapat di simpulkan bahwa cara kerja sensor ini ketika di beri penghalang/ benda yang menghalangi sensor maka akan menimbulkan tegangan sebesar pantulan yang di berikan. Setelah data di dapat berbentuk pulsa selanjutnya di baca oleh mikrokontroller untuk di konversi ke kode ASCII, selanjutnya data di kirim ke PC melalui serial port.
4.3. Pengujian dan Analisa Rangkaian Sensor Potensio Geser
pengukuran gelas dengan tinggi yang berbeda-beda dan membandingkan hasilnya dengan tinggi sebenarnya. Hasil pengujian sensor tinggi gelas ditunjukkan dalam tabel 4.2. berikut.
Tabel 4.2. Data Jarak Pengukuran Potensiogeser
Pengujian yaitu 2,4%. Sementara ralat terkecil sebesar 1,5% pada jarak pengujian 13 cm.
4.4. Pengujian dan Analisa Rangkaian Sensor Flowmeter
Pengujian pada volume air yang terukur bertujuan untuk mengetahui tingkat ketepatan sensor water flowmeter. Volume air yang terukur akan menjadi acuan untuk hasil output yang dikeluarkan dari sensor yang dipakai tersebut. Pengujian sensor terhadap volume air yang terukur dilakukan secara bertahap, dimulai dari dari volume air yang kecil hingga yang besar yaitu dari 100 mililiter sampai dengan 1 liter. Hasil pengujian sensor flowmeter ditunjukkan dalam tabel 4.3. berikut.
Rata-rata 103 316 520 725 947 1037 %Ralat 3% 5,3% 4% 3,5% 5,2% 3,7%
Berdasarkan hasil pengujian diketahui ralat terbesar pada pengujian 300 ml yaitu 5,3%. Sementara ralat terkecil sebesar 3% pada pengujian 100 ml.
4.5. Pengujian Rangkaian Relay
Jika diinputkan logika high dari mikro yang terhubung pada port C5 maka relay akan aktif dan mengeluarkan tegangan 12 Volt. Saat diinputkan logika low dari mikro, maka relay tidak aktif dan tidak mengeluarkan tegangan.
Listing programnya adalah sebagai berikut: #include <mega8535.h>
Saat program dijalankan, relay akan aktif dan menarik solenoid, kemudian satu detik kemudian, relay non aktif. begitu seterusnya. Solenoid yang berfungsi sebagai pengunci pintu dalam pengujian ini bisa berjalan dengan baik seperti yang diharapkan. Pengujian pada relay dapat dilihat pada tabel 4.4.
Tabel 4. 4. Pengujian Relay
No. Detik ke- Logika mikro Kondisi Relay Status motor
1. 1 High Terhubung Hidup
Pada rangkaian ini untuk mengaktifkan atau menon-aktifkan relay digunakan transistor tipe NPN. Dari gambar 3.6. dapat dilihat bahwa negatif relay dihubungkan ke kolektor dari transistor NPN (C945) dan positif relay dihubungkan pada tegangan 12 volt., ini berarti jika transistor dalam keadaan aktif maka kolektor akan terhubung ke emittor dimana emittor langsung terhubung ke ground yang menyebabkan tegangan di kolektor menjadi 0 volt, keadaan ini akan mengakibatkan relay aktif. Disaat relay aktif maka kaki-kaki relay yang berfungsi sebagai Normally Close sudah mendapatkan tegangan 12 volt. Sementara kaki-kaki relay yang berfungsi sebagai Normally Open masih belum mendapatkan tegangan 12 volt sebelum ada inputan (inputan berupa logika high atau 5 volt).
Sebaliknya jika transistor tidak aktif, maka kolektor tidak terhubung ke emitor, sehingga tegangan pada kolektor menjadi 12 volt, keadaan ini menyebabkan relay tidak aktif. Resistor didalam rangkaian berfungsi sebagai pull up untuk menaikkan tegangan agar inputan mikrokontroler sanggup mengaktifkan relay. Dioda dihubungkan secara terbalik untuk mengantisipasi sentakan listrik yang terjadi pada saat relay berganti posisi dari on ke off agar tidak merusak komponen di sekitarnya, sentakan itu hanya terjadi ketika relay dinonaktifkan, pada saat ini arus akan terus mengalir melalui kumparan dan arus ini akan dialirkan ke dioda. Tanpa adanya dioda sentakan listrik itu akan mengalir ke transistor, yang mengakibatkan kerusakan pada transistor.
4.6. Pengujian Input Push Button dan Limit Switch
Keypad yang digunakan pada penelitian ini merupakan keypad aktif low. Keypad ini dapat dihubungkan langsung pada port mikrokontroler. Dimana port yang dipakai untuk pengujian keypad pada penelitian ini adalah portB7 dan dari portD0-portD1 & portD7.
Keypad ini bekerja dengan sistem aktif low. Setiap penekanan pada salah satu keypad akan membuat pin pada port yang terhubung dengan keypad akan berlogika low. Hasil pengujian keypad ditunjukkan dalam tabel 4.5.
Tabel 4.5. Hasil pengamatan pada pengujian keypad
2 0 1
3 0 1
Limit switch 0 1
Dengan adanya respon yang terlihat pada port disetiap penekanan keypad, maka keypad tersebut dianggap berfungsi dan dapat digunakan dalam penelitian ini.
4.7. Pengujian Rangkaian LCD
Rangkaian LCD dihubungkan ke PB.0 .... PB.6, yang merupakan pin I/O dua arah dan pin fungsi khusus, yaitu sebagai Timer/Counter, komparator analog dan SPI mempunyai fungsi khusus sebagai pengiriman data secara serial. Sehingga nilai yang akan tampil pada LCD display akan dapat dikendalikan oleh Mikrokontroller ATMega8535.
Pada bagian ini, mikrokontroler dapat memberi data langsung ke LCD. Pada LCD Hitachi - M1632 sudah terdapat driver untuk mengubah data ASCII output mikrokontroler menjadi tampilan karakter.
lcd_putsf("ekstensi"); delay_ms(500);
} }
Program ini telah berjalan dengan baik dan sesuai dengan kebutuhan pada perancangan.
4.8. Pengujian Sistem Secara Keseluruhan
Pengujian keseluruhan sistem dilakukan dengan menyambungkan blok perangkat keras dan perangkat lunak yang telah dibuat kemudian menjalankan sistem. Dengan pengujian ini dapat dianalisis apakah alat ini bekerja sesuai dengan spesifikasi yang diharapkan. Proses pengujian ini melibatkan 2 mode pengisian pada sistem yaitu mode auto dan mode volume. Pada mode auto, pengisian gelas akan ditentuakan dari ketinggian potensio geser dalam mendeteksi ketinggian mulut gelas dan sensor ultrasonik dalam mendeteksi ketinggian pengisian permukaan air. Pengujian mode ini menggunakan 6 buah gelas dengan ketinggian yang berbeda-beda. Masing-masing gelas akan diisi berdasarkan ketinggian mulut gelas. Parameter penuh didalam pengujian ini adalah sampai mulut gelas. Hasil pengujian sistem dengan mode auto dapat dilihat pada tabel 4.6 dibawah ini.
Tabel 4.6. Pengujian Sistem dengan Mode Auto
Gelas ke- Ketinggian
dengan error terbesar 1 cm. Error ini dapat terjadi karena adanya riak pada permukaan air sehingga sensor tidak dapat mengukur jarak dengan tepat. Pengisian air dapat berhenti sebelum air tumpah / melebihi ketinggian mulut gelas.
Pada mode volume, sistem akan mengisi wadah berdasarkan parameter yang diinput pada sistem, parameter yang di input 50 mL - 1000 mL dengan rentang 100 mL. Hasil pengujian sistem dengan mode volume dapat dilihat pada tabel 4.7. dibawah ini.
Tabel 4.7. Pengujian Sistem dengan Mode Volume Volume
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Setelah dilakukan pengujian hasil perancangan alat pengisi cairan otomatis, dapat di ambil beberapa kesimpulan :
dapat di ambil beberapa kesimpulan :
1. Telah berhasil dirancang sebuah alat yang dapat mengisi cairan ke dalam gelas secara otomatis menggunakan sensor ultrasonik, limit switch dan sensor hambatan geser, serta dapat mengisi cairan ke dalam gelas berdasarkan inputan volume menggunakan sensor flow meter dan limit switch.
2. Alat ini telah berfungsi sesuai rancangan dengan error pada mode otomatis terbesar 1 cm dan pada mode volume dengan error terbesar 30 ml.
5.2. Saran
Beberapa tambahan yang diperlukan dalam meningkatkan kemampuan alat ini adalah: 1. Alat ini masih memerlukan bantuan manusia untuk membantu dalam
pengukuran ketinggian gelas. Untuk lebih sempurna, alat ini dapat dikembangkan agar mampu mendeteksi ketinggian gelas tanpa bantuan manusia dengan sensor yang berbeda.
BAB II
LANDASAN TEORI
Pengetahuan yang mendukung perencanaan dan realisasi alat dalam skripsi ini, meliputi : limit switch, sensor resistif geser, sensor ultrasonik, sensor flowmeter, mikrokontroler, dan codevision AVR.
2.1. Perangkat Keras (Hardware) 2.1.1. Limit Switch
Limit switch merupakan jenis saklar yang dilengkapi dengan katup yang berfungsi menggantikan tombol. Namun sistem kerja limit switch berbeda dengan saklar pada umumnya, jika pada saklar umumnya sistem kerjanya akan diatur/ dikontrol secara manual oleh manusia (baik diputar atau ditekan). Sedangkan limit switch dibuat dengan sistem kerja yang berbeda, limit switch dibuat dengan sistem kerja yang dikontrol oleh dorongan atau tekanan (kontak fisik) dari gerakan suatu objek pada aktuator, sistem kerja ini bertujuan untuk membatasi gerakan ataupun mengendalikan suatu objek/mesin tersebut, dengan cara memutuskan atau menghubungkan aliran listrik yang melalui terminal kontaknya. Bentuk fisik limit switch dapat dilihat pada gambar 2.1.
Gambar 2.1. Bentuk Fisik Limit Swicth
Gambar 2.2. Sistem Kerja Limit Switch
Limit switch memiliki 2 kontak yaitu NO (Normally Open) dan kontak NC (Normally Close) dimana salah satu kontak akan aktif jika tombolnya tertekan. Konstruksi dan simbol limit switch dapat dilihat seperti gambar 2.3. di bawah.
Gambar 2.3. Konstruksi dan Simbol Limit Switch
2.1.2. Sensor Resistif Geser (Potensiometer Geser)
Gambar 2.4. Bentuk Fisik Potensiometer Geser
Cara kerja potensiometer geser yaitu dengan cara menggeserkan Wiper-nya dari kiri ke kanan atau dari bawah ke atas sesuai dengan pemasangannya. Biasanya menggunakan Ibu Jari untuk menggeser wiper-nya.
2.1.3. Sensor Ultrasonik HC-SR04
Sensor ultrasonik adalah sensor yang bekerja berdasarkan prinsip pantulan gelombang dimana sensor menghasilkan gelombang pantulan ke benda yang kemudian menangkapnya kembali dengan perbedaan waktu sebagai dasar perhitungannya.. Perbedaan waktu antara gelombang pantulan yang di kembalikan dan yang diterima kembali adalah berbanding lurus dengan jarak atau tinggi objek yang memantulkannya.. Jenis objek yang dapat di indranya adalah padat, cair dan butiran. Tanpa kontak jarak 2 cm sampai 4 meter dengan akurasi 3 mm dan dapat dengan mudah dihubungkan dengan mikrokontroler malalui satu pin I/O saja. Bentuk fisik sensor ultrasonik dapat dilihat pada gambar 2.5.
Gambar 2.5. Bentuk Fisik Sensor Ultrasonik HC-SR04
Spesifikasi: :
b. 8 modul dapat digunakan bersama dalam satu sistem I2C-bus yang hanya membutuhkan 2 pin I/O mikrokontroler saja.
c. Membutuhkan catu daya tunggal +5 VDC, dengan konsumsi arus 17 mA typ (tanpa sensor infrared ranger).
d. Terdapat 2 mode operasi yaitu full operation dan reduced operation. Pada mode reduced operation beberapa komponen ultrasonic ranger akan dimatikan (saat idle) dan konsumsi arus mejadi 13 mA typ.
e. Terdiri dari sebuah ultrasonic ranger dengan spesifikasi: Mengukur jarak dari 2 cm hingga 4 m tanpa dead zone atau blank spot. Obyek dalam jarak 0 - 2 cm dideteksi sebagai 2 cm. Menggunakan burst sinyal kotak 16 Vp-p dengan frekuensi 40 kHz.
f. Dapat dihubungkan dengan maksimum 2 buah infrared ranger Sharp GP2D12 yang memiliki jangkauan pengukuran 10 - 80 cm.
g. Data keluaran sudah siap pakai dalam satuan mm (untuk antarmuka I2C) sehingga mengurangi beban mikrokontroler.
h. Ketelitian pengukuran jarak (ranger) adalah 5mm.
i. Siklus pengukuran yang cepat, pembacaan dapat dilakukan tiap 25 ms (40 Hz
l. Tidak diperlukan waktu tunda sebelum melakukan pengukuran berikutnya. m. Kompensasi kesalahan dapat diatur secara manual untuk mengurangi pengaruh
faktor perubahan suhu lingkungan dan faktor reflektifitas obyek.
Cara menggunakan sensor ultrasonik yaitu: ketika kita memberikan tegangan positif pada pin Trigger selama 10uS, maka sensor akan mengirimkan 8 step sinyal ultrasonik dengan frekuensi 40kHz. Selanjutnya, sinyal akan diterima pada pin Echo. Untuk mengukur jarak benda yang memantulkan sinyal tersebut, maka selisih waktu ketika mengirim dan menerima sinyal digunakan untuk menentukan jarak benda tersebut.
menghasilkan gelombang ultrasonik (umumnya berfrekuensi 40kHz) ketika sebuah osilator diterapkan pada benda tersebut. Secara umum, alat ini akan menembakkan gelombang ultrasonik menuju suatu area atau suatu target. Setelah gelombang menyentuh permukaan target, maka target akan memantulkan kembali gelombang tersebut. Gelombang pantulan dari target akan ditangkap oleh sensor, kemudian sensor menghitung selisih antara waktu pengiriman gelombang dan waktu gelombang pantul diterima. Cara kerja sensor ultrasonik dengan transmitter dan receiver dapat dilihat pada gambar 2.6.
Gambar 2.6. Cara kerja sensor ultrasonik dengan transmitter dan receiver (atas), sensor ultrasonik dengan single sensor yang berfungsi sebagai transmitter dan receiver sekaligus
Secara detail, cara kerja sensor ultrasonik adalah sebagai berikut:
b. 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.
c. 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.1.4. Sensor Flowmeter EGO A-7
Sensor flowmeter terdiri dari tubuh katup plastik, rotor air, dan sensor efek hall. Ketika air mengalir melalui, gulungan rotor-rotor.Kecepatan perubahan dengan tingkat yang berbeda aliran. Sesuai sensor efek hall output sinyal pulsa. Kelebihan sensor ini adalah hanya membutuhkan 1 sinyal (SIG) selain jalur 5V dc dan Ground. Bentuk fisik sensor flowmeter dapat dilihat pada gambar 2.7.
Gambar 2.7. Bentuk Fisik Sensor Flowmeter EGO A-7
potensial antara kedua sisi divais tersebut disebut potensial Hall. Potensial Hall ini sebanding dengan medan magnet dan arus listrik yang melalui divais.
2.1.5. Mikrokontroller Atmega 8535
Mikrokontroler merupakan sebuah single chip yang didalamnya telah dilengkapi dengan CPU (Central Processing Unit), RAM (Random Access Memori), ROM (Read Only Memori), Input dan Output, Timer/Counter, Serial com port secara spesifik digunakan untuk aplikasi – aplikasi kontrol dan aplikasi serbaguna. Perangkat ini sering digunakan untuk kebutuhan kontrol tertentu seperti pada sebuah penggerak motor. Read Only Memori (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Memori penyimpanan program dinamakan sebagai memori program. Random Access Memori (RAM) isinya akan langsung hilang ketika IC kehilangan catudaya yang dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data.
Mikrokontroler biasanya dilengkapi dengan UART (Universal Asychronous Receiver Transmitter) yaitu port serial komunikasi serial asinkron, USART (Universal Syncrhronous and Asyncrhronous Serial Receiver and Transmitter) yaitu port yang digunakan untuk komunikasi serial sinkron dan asinkron yang kecepatannya 16 kali lebih cepat dari UART, SPI (Serial Port Interface), SCI (Serial Communication Interface), Bus RC (Intergrated circuit Bus) merupakan 2 jalur yang terdapat 8 bit,
CAN (Control Area Network) merupakan standart pengkabelan SAE (Society of Automatic Engineers).
membuat paket-paket bit data menjadi terdistorsi sehingga data yang dikirim atau diterima bisa mengalami error.
Komunikasi serial adalah komunikasi yang pengiriman datanya per-bit secara berurutan dan bergantian. Komunikasi ini mempunyai suatu kelebihan yaitu hanya membutuhkan satu jalur dan kabel yang sedikit dibandingkan dengan komunikasi paralel. Pada prinsipnya komunikasi serial merupakan komunikasi dimana pengiriman data dilakukan per bit sehingga lebih lambat dibandingkan komunikasi parallel, atau dengan kata lain komunikasi serial merupakan salah satu metode komunikasi data di mana hanya satu bit data yang dikirimkan melalui seuntai kabel pada suatu waktu tertentu.
Mikrokontroler saat ini sudah dikenal dan digunakan secara luas pada dunia industri. Banyak sekali penelitian atau proyek mahasiswa yang menggunakan berbagai versi mikrokontroler yang dapat dibeli dengan harga yang relative murah. Mikrokontroler saat ini merupakan chip utama pada hampir setiap peralatan elektronika canggih. Mikrokontroler AVR memiliki arsitektur RISC 8 bit, dimana semua instruksi dikemas dalam kode 16 bit (16 bit word) dan sebagian besar instruksi dieksekusi dalam satu siklus clock, berbeda dengan instruksi CS51 yang membutuhkan siklus 12 clock. AVR berteknologi RISC (Reduce Instruction Set Computing), sedangkan seri MCS51berteknologi CISC (Complex Instruction Set Computing). Secara umum, AVR dikelompokkan menjadi beberapa kelas, yaitu keluarga AT90Sxx, keluarga ATMega dan AT86RFxx. Pada dasarnya yang membedakan masing – masing kelas adalah memori, peripheral dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama.
2.1.5.1. Fitur ATMega8535
Fitur-fitur yang dimiliki oleh mikrokontroler ATmega8535 adalah sebagai berikut: 1. Saluran I/O sebanyak 32 buah, yaitu port A, port B, port C, dan port D.
2. ADC internal sebanyak 8 saluran.
3. Tiga buah Timer/Counter dengan kemampuan pembandingan. 4. CPU yang terdiri atas 32 buah register.
5. SRAM sebesar 512 byte.
6. Memori Flash sebesar 8 kb dengan kemampuan Read While Write. 7. Port antarmuka SPI
9. Antarmuka komparator analog. 10. Port USART untuk komunikasi serial.
11. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.
Keterangan:
a. Flash adalah suatu jenis Read Only Memory yang biasanya diisi dengan program hasil perencanaan, yang harus dijalankan oleh mikrokontroler.
b. RAM (Random Acces Memory) merupakan memori yang membantu CPU untuk penyimpanan data sementara dan pengolahan data ketika program sedang running. c. EEPROM (Electrically Erasable Programmable Read Only Memory) adalah
memori untuk penyimpanan data secara permanen oleh program yang sedang running.
d. Port I/O adalah kaki untuk jalur keluar atau masuk sinyal sebagai hasil keluaran ataupun masukan bagi program.
e. Timer adalah modul dalam hardware yang bekerja untuk menghitung waktu/pulsa.
f. UART (Universal Asynchronous Receive Transmit) adalah jalur komunikasi data khusus secara serial asynchronous.
g. PWM (Pulse Width Modulation) adalah fasilitas untuk membuat modulasi pulsa. h. ADC (Analog to Digital Converter) adalah fasilitas untuk dapat menerima sinyal
analog dalam range tertentu untuk kemudian dikonversi menjadi suatu nilai digital dalam range tertentu.
i. SPI (Serial Peripheral Interface) adalah jalur komunikasi data khusus secara serial secara serial synchronous.
j. ISP (In System Programming) adalah kemampuan khusus mikrokontroler untuk dapat diprogram langsung dalam sistem rangkaiannya dengan membutuhkan jumlah pin yang minimal.
2.1.5.2. Konfigurasi Pin ATMega 8535
Konfigurasi pin ATmega8535 dengan kemasan 40 pin DIP (Dual Inline Package) dapat dilihat pada gambar xxxxxx. Dari gambar di atas dapat dijelaskan fungsi dari masing-masing pin Atmega8535 sebagai berikut:
3. Port A (PortA0…PortA7) merupakan pin input/output dua arah dan pin masukan ADC.
4. Port B (PortB0…PortB7) merupakan pin input/output dua arah dan dan pin fungsi khusus, yaitu Timer/Counter, komparator Analog dan SPI.
5. Port C (PortC0…PortC7) merupakan pin input/output dua arah dan pin fungsi khusus, yaitu komparator analog dan Timer Oscillator.
6. Port D (PortD0…PortD7) merupakan pin input/output dua arah dan pin fungsi khusus, yaitu komparator analog dan interrupt eksternal serta komunikasi serial. 7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler, pada pin ini
selama lebih dari panjang pulsa minimum akan menghasilkan reset walaupun clock sedang berjalan. RST pada pin 9 merupakan reset dari AVR. Jika pada pin ini diberi masukan low selama minimal 2 machine cycle maka sistem akan di-reset 8. XTAL1 merupakan Input penguat osilator inverting dan input pada rangkaian
operasi clock internal.
9. XTAL2 merupakan Output dari penguat osilator inverting.
10. AVCC merupakan pin masukan tegangan untuk ADC. Pin tegangan suplai untuk port A dan ADC. Pin ini harus dihubungkan ke Vcc walaupun ADC tidak digunakan, maka pin ini harus dihubungkan ke Vcc melalui low pass filter
11. AREFF merupakan pin masukan tegangan referensi ADC.
Adapun konfigurasi pin ATmega8535, seperti yang diperlihatkan pada gambar 2.8.
Berikut ini penjelasan mengenai konfigurasi pin ATMega8535 sebagai berikut : 1. Port A
Pin33 sampai dengan pin 40 merupakan pin dari port A. Merupakan 8 bit directional port I/O. Setiap pin-nya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer port A dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port A (DDRA) harus di-setting terlebih dahulu sebelum port A digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang disesuaikan sebagai input, atau diisi 1 jika sebagai output.
2. Port B
Pin 1 sampai dengan pin 8 merupakan pin dari port B. Merupakan 8 bit directional port I/O. Setiap pin-nya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer port B dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port B (DDRB) harus di-setting terlebih dahulu sebelum port B digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang disesuaikan sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin port B juga memiliki fungsi-fungsi alternatif khusus, seperti yang dapat dilihat dalam tabel 2.1.
Tabel 2.1. Penjelasan pin pada port B
Pin Keterangan
PB.7 SCK (SPI Bus Serial Clock)
PB.6 VISO (SPI Bus Master Input/Slave Output) PB.5 VOSI (SPI Bus Master Output/Slave Input) PB.4 SS (SPI Slave Select Input)
PB.3 AIN1 (Analog Comparator Negative Input)OCC (Timer/Counter0 Output Compare Match Output)
PB.1 T1 (Timer/Counter1 External Counter Input)
PB.0 T0 (Timer/Counter0 External Counter Input)XCK (JSART External Clock Input/Output)
3. Port C
Pin 22 sampai dengan pin 29 merupakan pin dari port C. Port C sendiri merupakan port input atau output. Setiap pin-nya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer port C dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port C (DDRC) harus di-setting terlebih dahulu sebelum port C digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin port C yang disesuaikan sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin port C juga memiliki fungsi-fungsi alternatif khusus, seperti yang dapat dilihat dalam tabel 2.2.
Tabel 2.2. Penjelasan pin pada port C Pin Keterangan
PC.7 TOSC2 (Timer Oscillator Pin 2) PC.6 TOSC1 (Timer Oscillator Pin 1)
PC.1 SDA (Two-Wire Serial Bus Data Input/Output Line) PC.0 SCL (Two-Wire Serial Bus Clock Line)
4. Port D
Tabel 2.3. Penjelasan pin pada port D
Pin Keterangan
PD.0 RDX (UART input line) PD.1 TDX (UART output line) PD.2 INT0 (external interrupt 0 input) PD.3 INT1 (external interrupt 1 input)
PD.4 OC1B (Timer/Counter1 output compareB match output) PD.5 OC1A (Timer/Counter1 output compareA match output) PD.6 ICP (Timer/Counter1 input capture pin)
PD.7 OC2 (Timer/Counter2 output compare match output)
2.1.5.3. Peta Memori ATMega 8535
ATMega8535 memiliki dua jenis memori yaitu Data Memori dan Program Memori ditambah satu fitur tambahan yaitu EEPROM Memori untuk penyimpan data.
1. Program Memori
ATMEGA 8535 memiliki On-Chip In-Sistem Reprogrammable Flash Memory untuk menyimpan program. Untuk alasan keamanan, program memori dibagi menjadi dua bagian, yaitu Boot Flash Section dan Application Flash Section. Boot Flash Section digunakan untuk menyimpan program Boot Loader, yaitu program yang harus dijalankan pada saat AVR reset atau pertama kali diaktifkan.
2. Data Memori
Gambar 2.10. menunjukkan peta memori SRAM pada ATMEGA 8535. Terdapat 608 lokasi address data memori. 96 lokasi address digunakan untuk Register File dan I/O Memori sementara 512 lokasi address lainnya digunakan untuk internal data SRAM. Register file terdiri dari 32 general purpose working register, I/O register terdiri dari 64 register.
Gambar 2.10. Peta Memori Data
3. EEPROM Data Memori
ATMEGA 8535 memiliki EEPROM 8 bit sebesar 512 byte untuk menyimpan data. Loaksinya terpisah dengan sistem address register, data register dan control register yang dibuat khusus untuk EEPROM. Alamat EEPROM dimulai dari $000 sampai $1FF. Peta eprom dapat dilihat pada gambar 2.11.
Gambar 2.11. EEPROM Data Memori
2.1.5.4. Status Register (SREG) ATMega8535
Status register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPU mikrokontroler. Gambar 2.12 menunjukkan status register atmega8535.
Gambar 2.12. Status Register ATMega 8535
1. Bit 7-I : Global Interrupt Enable
Bit harus diset untuk meng-enable interupsi. Setelah itu anda dapat mengaktifkan interupsi mana yang akan digunakan dengan cara meng-enable bit kontrol register yang bersangkutan secara individu. Bit akan di-clear apabila terjadi suatu interupsi yang dipicu oleh hardware, dan bit tidak akan mengizinkan terjadinya interupsi, serta akan diset kembali oleh instruksi RETI.
2. Bit 6-T : Bit Copy Storage
Instruksi BLD dan BST menggunakan bit-T sebagai sumber atau tujuan dalam operasi bit. Suatu bit dalam sebuah register GPR dapat disalin ke bit T menggunakan instruksi BTS, dan sebaliknya bit-T dapat disalin kembali ke suatu bit dalam register GPR menggunakan instruksi BDL.
Bit-S merupakan hasil operasi EOR antara Flag-N (negatif) dan flag V (komplemen dua overflow).
5. Bit 3-V : Two’s Complement Overflow Flag Bit berguna untuk mendukung operasi aritmatika. 6. Bit 2-N : Negative Flag
Apabila suatu operasi menghasilkan bilangan negatif, maka flag-N akan di-set. 7. Bit 1-Z : Zero Flag
Bit akan di-set bila hasil operasi yang diperoleh adalah nol. 8. Bit 0-C : Carry Flag
Apabila suatu operasi menghasilkan carry, maka bit akan di-set.
Port I/O pada mikrokontroler ATMega8535 dapat difungsikan sebagai input ataupun dengan keluaran high atau low. Untuk mengatur fungsi port I/O sebagai input ataupun output perlu dilakukan setting pada DDR dan Port. Logika port I/O dapat berubah-ubah dalam program secara byte atau hanya bit tertentu. Mengubah sebuah keluaran bit I/O dapat dilakukan menggunakan perintah cbi (clear bit I/O) untuk menghasilkan output low atau perintah sbi (set bit I/O) untuk menghasilkan output high. Perubahan secara byte dilakukan dengan perintah in atau out yang menggunakan register bantu.
2.1.6. Tactile Push Button
Gambar 2.13. Bentuk Fisik Push Button Switch
Sebagai device penghubung atau pemutus, push button switch hanya memiliki 2 kondisi, yaitu On dan Off (1 dan 0). Istilah On dan Off ini menjadi sangat penting karena semua perangkat listrik yang memerlukan sumber energi listrik pasti membutuhkan kondisi On dan Off.
Karena sistem kerjanya yang unlock dan langsung berhubungan dengan operator, push button switch menjadi device paling utama yang biasa digunakan untuk memulai dan mengakhiri kerja mesin di industri. Secanggih apapun sebuah mesin bisa dipastikan sistem kerjanya tidak terlepas dari keberadaan sebuah saklar seperti push button switch atau perangkat lain yang sejenis yang bekerja mengatur pengkondisian On dan Off.
2.1.7. Water Pump
Gambar 2.14. Bentuk Fisik Water Pump
2.1.8. LCD ( Liquid Crystal Display )
LCD (liquid crystal display) merupakan suatu alat yang dapat menampilkan karakter ASCI sehingga kita bisa menampilkan campuran huruf dan angka sekaligus. LCD didalamnya terdapat sebuah mikroprosesor yang mengendalikan tampilan, kita hanya perlu membuat program untuk berkomunikasi. Bentuk fisik LCD dapat dilihat pada gambar 2.15.
Gambar 2.15. Bentuk Fisik LCD
Adapun konfigurasi dan deskripsi dari pin-pin LCD antara lain: a. VCC (Pin 1)
Merupakan sumber tegangan +5V. b. GND 0V (Pin 2)
Merupakan sambungan ground. c. VEE (Pin 3)
Merupakan Register pilihan 0 = Register Perintah, 1 = Register Data. e. R/W (Pin 5)
Merupakan read select, 1 = read, 0 = write. f. Enable Clock LCD (Pin 6)
Merupakan masukan logika 1 setiap kali pengiriman atau pembacaan data. g. D0 – D7 (Pin 7 – Pin 14)
Merupakan Data Bus 1 -7. h. Anoda ( Pin 15)
Merupakan masukan tegangan positif backlight. i. Katoda (Pin 16)
Merupakan masukan tegangan negatif backlight.
Display karakter pada LCD diatur oleh pin EN, RS dan RW. Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa sebuah data sedang dikirimkan. Untuk mengirimkan data ke LCD, maka melalui program EN harus dibuat logika low “0” dan set pada dua jalur kontrol yang lain RS dan RW. Ketika dua jalur yang lain telah siap, set EN dengan logika “1” dan tunggu dan berikutnya di set.
2.1.9. Relay
Penggunaan relay perlu memperhatikan tegangan pengontrolnya serta kekuatan relay men-switch arus/tegangan. Biasanya ukurannya tertera pada body relay. Misalnya relay 12VDC/4 A 220V, artinya tegangan yang diperlukan sebagai pengontrolnya adalah 12Volt DC dan mampu men-switch arus listrik (maksimal) sebesar 4 ampere pada tegangan 220 Volt. Sebaiknya relay difungsikan 80% saja dari kemampuan maksimalnya agar aman, lebih rendah lagi lebih aman. Relay jenis lain ada yang namanya reedswitch atau relay lidi. Relay jenis ini berupa batang kontak terbuat dari besi pada tabung kaca kecil yang dililitin kawat. Pada saat lilitan kawat dialiri arus, kontak besi tersebut akan menjadi magnet dan saling menempel sehingga menjadi saklar yang on. Ketika arus pada lilitan dihentikan medan magnet hilang dan kontak kembali terbuka (off).
Kontak penghubung relay terdiri dari dua bagian, yaitu : a. Kontak NC (Normally Close)
Kontak penghubung dalam kondisi menutup atau terhubung bila relay tidak mendapat masukan tegangan pada kumparannya. Tetapi bila diberi tegangan yang mencukupi pada kumparannya maka kontak penghubung menjadi terbuka.
b. Kontak NO (Normally Open)
Kontak penghubung dalam kondisi terbuka bila relay tidak mendapat tegangan pada kumparannya. Tetapi bila diberi tegangan yang mencukupi pada kumparannya maka kontak penghubung menjadi tertutup.
2.2. Perangkat Lunak (Software)
2.2.1. Bahasa Pemrograman Mikrokontroler
programmable Flash on-Chip mengizinkan memori program untuk diprogram ulang dalam sistem menggunakan hubungan serial SPI.
2.2.2.CodevisionAVR
CodeVisionAVR merupakan sebuah cross-compiler C, Integrated Development Environtment (IDE), dan Automatic Program Generator yang didesain untuk mikrokontroler buatan Atmel seri AVR. CodeVisionAVR dapat dijalankan pada sistem operasi Windows 95, 98, Me, NT4, 2000, dan XP. Cross-compiler C mampu menerjemahkan hampir semua perintah dari bahasa ANSI C, sejauh yang diijinkan oleh arsitektur dari AVR, dengan tambahan beberapa fitur untuk mengambil kelebihan khusus dari arsitektur AVR dan kebutuhan pada sistem embedded.
File object COFF hasil kompilasi dapat digunakan untuk keperluan debugging pada tingkatan C, dengan pengamatan variabel, menggunakan debugger Atmel AVR Studio. IDE mempunyai fasilitas internal berupa software AVR Chip In-System Programmer yang memungkinkan Anda untuk melakukan transfer program kedalam chip mikrokontroler setelah sukses melakukan kompilasi/asembli secara otomatis. Software In-System Programmer didesain untuk bekerja dengan Atmel STK500/AVRISP/AVRProg, Kanda Systems STK200+/300, Dontronics DT006, Vogel Elektronik VTEC-ISP, Futurlec JRAVR dan MicroTronics ATCPU/Mega2000 programmers/development boards.
Untuk keperluan debugging sistem embedded, yang menggunakan komunikasi serial, IDE mempunyai fasilitas internal berupa sebuah Terminal. Selain library standar C, CodeVisionAVR juga mempunyai library tertentu untuk:
a. Modul LCD alphanumeric b. Bus I2C dari Philips
c. Sensor Suhu LM75 dari National Semiconductor
d. Real-Time Clock: PCF8563, PCF8583 dari Philips, DS1302 dan DS1307 dari Maxim/Dallas Semiconductor
e. Protokol 1-Wire dari Maxim/Dallas Semiconductor
f. Sensor Suhu DS1820, DS18S20, dan DS18B20 dari Maxim/Dallas Semiconductor g. Termometer/Termostat DS1621 dari Maxim/Dallas Semiconductor
h. EEPROM DS2430 dan DS2433 dari Maxim/Dallas Semiconductor i. SPI
k. Delay
l. Konversi ke Kode Gray
CodeVisionAVR juga mempunyai Automatic Program Generator bernama CodeWizardAVR, yang mengujinkan Anda untuk menulis, dalam hitungan menit, semua instruksi yang diperlukan untuk membuat fungsi-fungsi berikut:
a. Set-up akses memori eksternal b. Identifikasi sumber reset untuk chip c. Inisialisasi port input/output
d. Inisialisasi interupsi eksternal e. Inisialisasi Timer/Counter f. Inisialisasi Watchdog-Timer
g. Inisialisasi UART (USART) dan komunikasi serial berbasis buffer yang digerakkan oleh interupsi
h. Inisialisasi Pembanding Analog i. Inisialisasi ADC
j. Inisialisasi Antarmuka SPI k. Inisialisasi Antarmuka Two-Wire l. Inisialisasi Antarmuka CAN
m. Inisialisasi Bus I2C, Sensor Suhu LM75, Thermometer/Thermostat DS1621 dan Real-Time Clock PCF8563, PCF8583, DS1302, dan DS1307
BAB I PENDAHULUAN
1.1. Latar Belakang
Semakin berkembangnya teknologi dan semakin banyaknya kesibukan manusia membuat orang berpikir untuk dapat bekerja lebih efektif dan efisien. Oleh karena itu semua peralatan manusia telah dikembangkan untuk dapat membuat pekerjaan manusia lebih ringan. Salah satu cara mempermudah pekerjaan adalah menjadikan suatu alat mekanik menjadi piranti otomatis. Piranti otomatis dapat membuat pekerjaan lebih cepat dan efisien.
Contohnya dalam hal pengisian air otomatis dari sebuah alat pengisi air (kran air) atau dispenser. Alat pengisi air otomatis semacam ini banyak digunakan pada restoran berskala besar maupun restoran cepat saji di seluruh dunia. Kelemahan alat pengisian air otomatis ini salah satunya gelas yang dapat diisi hanya gelas dengan volume-volume tertentu umumnya dengan pembeda ukuran gelas : kecil, sedang, besar dan sangat besar.
Penggunaan alat pengisi air otomatis semacam itu tentunya kurang fleksibel untuk diaplikasikan pada penjual minuman atau restoran berskala kecil-menengah maupun rumah tangga karena gelas yang digunakan memiliki banyak variasi bentuk dan ukuran.
Untuk mengatasi kelemahan alat pengisi air manual tersebut, penulis akan mencoba membuat perancangan alat pengisi air dalam gelas otomatis dengan judul “PERANCANGAN ALAT PENGISI CAIRAN DALAM GELAS SECARA OTOMATIS MENGGUNAKAN SENSOR ULTRASONIK & SENSOR HAMBATAN GESER BERBASIS ATMEGA8535”.
Disini penulis memilih alat pendeteksi pengisi cairan berbasis Atmega8535 sebagai alat yang di kembangkan karena sangat mempermudah dan membantu dalam perhitungan/pengukuran nilai sehingga nilai yang dihasilkan lebih cepat, tepat dan akurat.
1.2. Rumusan Masalah
1. Bagaimana merencanakan dan membuat suatu alat yang dapat mengisi cairan ke dalam gelas secara otomatis dengan ukuran yang berbeda – beda?
2. Bagaimana merancang alat yang dapat mengisi cairan ke dalam gelas secara otomatis dengan menggunakan program codevision AVR ?
3. Bagaimana merancang alat yang dapat mengisi cairan ke dalam gelas dengan menginput volume menggunakan program codevision AVR ?
1.3. Tujuan Penelitian
Adapun tujuan penelitian skripsi ini adalah untuk:
1. Merancang sebuah alat yang dapat mengisi cairan ke dalam gelas secara otomatis menggunakan sensor ultrasonik dan sensor hambatan geser dan dapat mengisi cairan ke dalam gelas berdasarkan inputan volume menggunakan sensor flow meter dan limit switch.
2. Menghasilkan sebuah alat yang berfungsi sebagai instrument dalam pengisian cairan ke dalam gelas.
1.4. Batasan Masalah
Adapun batasan masalah dalam skripsi ini adalah :
1. Sistem pengisian cairan ke dalam gelas pada mode otomatis terbatas dengan ketinggian wadah (gelas) berkisar antara 7 cm – 14 cm.
2. Sistem pengisian cairan ke dalam gelas pada mode volume terbatas dengan volume cairan 50 mL – 3000 mL.
1.5. Manfaat Penelitian
Adapun manfaat dari penelitian dalam skripsi ini :
1. Mempermudah pekerjaan dalam hal pengisian cairan dalam gelas. 2. Meningkatkan efisiensi waktu secara tepat dan hasilnya akurat.
1.6. Metodologi Penelitian
Adapun metode penulisan yang digunakan dalam menyusun dan menganalisa skripsi ini adalah:
Merencanakan peralatan yang telah dirancang baik software maupun hardware. 3. Pengujian alat
Peralatan yang telah dibuat kemudian diuji apakah telah sesuai yang telah direncanakan.
1.7. Sistematika Penulisan
Sistematika penulisan dalam skripsi ini terdiri dari 5 bab, yaitu: BAB I : PENDAHULUAN
Berisi latar belakang permasalahan, rumusan masalah, batasan masalah, tujuan pembahasan, metodologi pembahasan, dan sistematika penulisan dari penulisan skripsi ini.
BAB II : LANDASAN TEORI
Membahas tentang sensor ultrasonic, limit switch, sensor water flowmeter, sensor resistif geser dan alat – alat pendukung lainnya.
BAB III : PERANCANGAN SISTEM
Membahas tentang perencanaan dan pembuatan sistem secara keseluruhan.
BAB IV : PENGUJIAN RANGKAIAN
Berisi tentang uji coba alat yang telah dibuat, pengoperasian dan spesifikasi alat.
BAB V : PENUTUP
PERANCANGAN ALAT PENGISI CAIRAN DALAM GELAS SECARA OTOMATIS MENGGUNAKAN SENSOR ULTRASONIK & SENSOR
HAMBATAN GESER BERBASIS ATMEGA8535
ABSTRAK
Telah dirancang sebuah alat untuk mengaplikasikan Codevision AVR pada ATMega 8535 dalam mengolah data pengisian cairan pada gelas secara otomatis berdasarkan ketinggian gelas dan secara manual berdasarkan input volume cairan. Pada mode otomatis, gelas akan dideteksi keberadaannya oleh limit switch, kemudian gelas diukur tingginya oleh potensiometer. Selanjutnya, limit switch dan potensiometer mengirimkan data ke mikrokontroler untuk diolah. Kemudian mikrokontroler mengaktifkan waterpump untuk menyalurkan cairan ke dalam gelas. Pengisian cairan di dalam gelas di kontrol oleh sensor ultrasonik HC-SR04 yang disesuaikan dengan hasil pengukuran tinggi gelas oleh potensiometer.
Pada mode volume, setelah menentukan volume cairan yang diinginkan, limit switch akan mendeteksi keberadaan gelas dan mengirimkan data ke mikrokontroler untuk diolah. Selanjutnya, mikrokontroler mengaktifkan waterpump untuk menyalurkan cairan ke dalam gelas. Pengisian cairan di dalam gelas dikontrol oleh flow meter EGO A-7 sesuai dengan jumlah volume yang ditentukan.
Hasil pengujian pada mode otomatis menunjukkan bahwa sistem mampu mengisi cairan ke dalam gelas secara otomatis dengan error 1 cm. Hasil pengujian menunjukkan pada mode volume bahwa sistem mampu mengisi cairan ke dalam gelas dengan error 30 mL.
PERANCANGAN ALAT PENGISI CAIRAN DALAM GELAS SECARA OTOMATIS MENGGUNAKAN SENSOR ULTRASONIK & SENSOR
HAMBATAN GESER BERBASIS ATMEGA8535
ABSTRACT
The purpose of making this essay is to apply CodeVision AVR in ATMega8535 for data processing liquid loading on the glasses automatically based on the height of the glass and manually based on the input volume of fluid. In automatic mode, the glass will be detected by a limit switch, then glass height measured by a potentiometer. Furthermore, limit switches and potentiometers transmit the data to the microcontroller to be processed. Then the microcontroller activate the water pump to dispense the liquid into a glass. Filling the liquid inside the glass in the control by ultrasonic sensor HC-SR04 that is adapted to the measurement results of high glass by a potentiometer.
In volume mode, after determining the volume of fluid, limit switches will detect the presence of glasses and transmits the data to the microcontroller to be processed. Furthermore, the microcontroller activates waterpump to dispense the liquid into a glass. Filling the liquid inside the glass is controlled by a flow meter AGO A-7 in accordance with the amount specified volume.
The test results in automatic mode indicates that the system is capable of filling the liquid into the glasses automatically with an error of 1 cm. The test results show that the volume mode system capable of filling the liquid into a glass with 30 mL error.
PERANCANGAN ALAT PENGISI CAIRAN DALAM GELAS
SECARA OTOMATIS MENGGUNAKAN SENSOR ULTRASONIK
& SENSOR HAMBATAN GESER BERBASIS ATMEGA8535
SKRIPSI
DEVI LARASATI
140821011
DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
PERANCANGAN ALAT PENGISI CAIRAN DALAM GELAS
SECARA OTOMATIS MENGGUNAKAN SENSOR ULTRASONIK
& SENSOR HAMBATAN GESER BERBASIS ATMEGA8535
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Sarjana
DEVI LARASATI
140821011
DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : Perancangan Alat Pengisi Cairan dalam Gelas secara Otomatis Menggunakan Sensor Ultrasonik dan Sensor Hambatan Geser Berbasis Atmega8535
Kategori : Skripsi
Nama : Devi Larasati
Nomor Induk Mahasiswa : 140821011
Program Studi : Sarjana (S-1) Fisika Ekstensi
Departemen : Fisika
Fakultas : Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara
Diluluskan di Medan, Agustus 2016
Disetujui Oleh
Departemen Fisika FMIPA USU Pembimbing, Ketua,
Dr. Marhaposan Situmorang Dr. Bisman P,M.Eng.Sc
PERNYATAAN
PERANCANGAN ALAT PENGISI CAIRAN DALAM GELAS SECARA OTOMATIS MENGGUNAKAN SENSOR ULTRASONIK DAN SENSOR HAMBATAN GESER BERBASIS ATMEGA8535
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Agustus 2016
PENGHARGAAN
Alhamdulillahirobbil’alamin,
Segala puji dan syukur bagi Allah Subhanahuwata’ala yang telah melimpahkan barokah, rahmat, hidayah-Nya dan menganugerahkan kemudahan serta kelancaran sehingga penulis dapat menyelesaikan penulisan tugas proyek ini sesuia waktu yang telah ditetapkan. Sholawat dan salam semoga senantiasa tercurahkan kepada Rasulullah
Sallallahu’alaihiwassalam sang pembawa petunjuk dan selalu menjadi inspirasi dan
teladan bagi penulis.
Skripsi ini disusun untuk melengkapi persyaratan dalam mencapai gelar Sarjana pada Program Studi Fisika Ekstensi Departemen Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
Adapun judul Skripsi ini adalah
PERANCANGAN ALAT PENGISI CAIRAN DALAM GELAS SECARA OTOMATIS MENGGUNAKAN SENSOR ULTRASONIK DAN SENSOR HAMBATAN GESER BERBASIS ATMEGA 8535
Penulis menyadari bahwa tersusunnya Skripsi ini dari Do’a, perhatian, bimbingan, motivasi dan dukungan berbagai pihak, sehingga dengan keikhlasan dan kerendahan hati pada kesempatan ini penulis mengucapkan terima kasih yang sebesar-besarnya kepada :
1. Bapak Dr. Bisman P,M.Eng,Sc selaku dosen pembimbing, yang telah banyak membantu dan mendukung penulis dalam menyelesaikan Skripsi.
2. Seluruh Dosen dan Karyawan Departemen Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
3. Kedua orang tua penulis serta saudara kandung yang telah memberikan bantuan moril maupun materil, semangat dan do’a yang begitu besar kepada penulis. 4. Teman terkhusus Reyfaldi Hermawan yang telah banyak membantu penulis
dalam menyelsaikan skripsi ini.
Penulis menyadari sepenuhnya bahwa dalam pembuatan Skripsi ini masih jauh dari kesempurnaan, untuk itu penulis mengharapkan kritik dan saran dari pembaca yang bersifat membangun dalam penyempurnaan Skripsi ini.
Semoga laporan ini menjadi ibadah yang baik bagi penulis dan menjadi ilmu yang bermanfaat bagi pembaca.
Amin Yaa Rabbal’alamin
Medan, Agustus 2016
PERANCANGAN ALAT PENGISI CAIRAN DALAM GELAS SECARA OTOMATIS MENGGUNAKAN SENSOR ULTRASONIK & SENSOR
HAMBATAN GESER BERBASIS ATMEGA8535
ABSTRAK
Telah dirancang sebuah alat untuk mengaplikasikan Codevision AVR pada ATMega 8535 dalam mengolah data pengisian cairan pada gelas secara otomatis berdasarkan ketinggian gelas dan secara manual berdasarkan input volume cairan. Pada mode otomatis, gelas akan dideteksi keberadaannya oleh limit switch, kemudian gelas diukur tingginya oleh potensiometer. Selanjutnya, limit switch dan potensiometer mengirimkan data ke mikrokontroler untuk diolah. Kemudian mikrokontroler mengaktifkan waterpump untuk menyalurkan cairan ke dalam gelas. Pengisian cairan di dalam gelas di kontrol oleh sensor ultrasonik HC-SR04 yang disesuaikan dengan hasil pengukuran tinggi gelas oleh potensiometer.
Pada mode volume, setelah menentukan volume cairan yang diinginkan, limit switch akan mendeteksi keberadaan gelas dan mengirimkan data ke mikrokontroler untuk diolah. Selanjutnya, mikrokontroler mengaktifkan waterpump untuk menyalurkan cairan ke dalam gelas. Pengisian cairan di dalam gelas dikontrol oleh flow meter EGO A-7 sesuai dengan jumlah volume yang ditentukan.
Hasil pengujian pada mode otomatis menunjukkan bahwa sistem mampu mengisi cairan ke dalam gelas secara otomatis dengan error 1 cm. Hasil pengujian menunjukkan pada mode volume bahwa sistem mampu mengisi cairan ke dalam gelas dengan error 30 mL.
PERANCANGAN ALAT PENGISI CAIRAN DALAM GELAS SECARA OTOMATIS MENGGUNAKAN SENSOR ULTRASONIK & SENSOR
HAMBATAN GESER BERBASIS ATMEGA8535
ABSTRACT
The purpose of making this essay is to apply CodeVision AVR in ATMega8535 for data processing liquid loading on the glasses automatically based on the height of the glass and manually based on the input volume of fluid. In automatic mode, the glass will be detected by a limit switch, then glass height measured by a potentiometer. Furthermore, limit switches and potentiometers transmit the data to the microcontroller to be processed. Then the microcontroller activate the water pump to dispense the liquid into a glass. Filling the liquid inside the glass in the control by ultrasonic sensor HC-SR04 that is adapted to the measurement results of high glass by a potentiometer.
In volume mode, after determining the volume of fluid, limit switches will detect the presence of glasses and transmits the data to the microcontroller to be processed. Furthermore, the microcontroller activates waterpump to dispense the liquid into a glass. Filling the liquid inside the glass is controlled by a flow meter AGO A-7 in accordance with the amount specified volume.
The test results in automatic mode indicates that the system is capable of filling the liquid into the glasses automatically with an error of 1 cm. The test results show that the volume mode system capable of filling the liquid into a glass with 30 mL error.
DAFTAR ISI
2.1.5. Mikrokontroler ATMega8535 ……… 10
2.1.5.1.Fitur ATMega8535 ……… 12
2.1.5.2.Konfigurasi Pin ATMega 8535 …… 13
2.1.5.3.Peta Memori ATMega 8535 ……… 17
2.1.5.4.Status Register (SREG) ATMega8535 ….. 19
2.1.6. Tactile Push Button ……… 21
2.1.7. Water Pump ………. 21
2.1.8. LCD ………. 22
2.1.9. Relay ………. 23
2.2. Perangkat Lunak (Software) ………. 25
2.2.1. Bahasa Pemrograman Mikrokontroler …… 25
2.2.2. CodevisionAVR ……….……… 25
Bab 3 Perancangan Alat dan Pembuatan Sistem 3.1. Diagram Blok Sistem ……… 28
3.2. Rangkaian Mikrokontroller ATMega8535 ……… 29
3.3. Rangkaian Sensor Ultrasonik ……… 31
3.4. Perancangan Rangkaian LCD ……… 32