• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI

2.6 Pompa

Pompa bekerja dengan cara memindahkan sujumlah volume air melalui ruang suction menuju ke ruang outlet dengan menggunakan impeller, sehingga seluruh ruang udara terisi oleh air dan menimbulkan tekanan fluida yang ditarik melalui dasar sumber air menuju penampungan. Air yang terdapat dalam ruang impeller akan digerakkan menggunakan subuah motor. Selama impeller tersebut berputar,

air akan terus didorong keluar menuju ke pipa penyaluran atau outlet air. Pada mesin pompa ini, ada saluran hisap dan ada saluran buang, ketika pompa dihidupkan atau dihubungkan dengan tegangan, maka pompa akan berputar sehingga di bagian dalam pompa terjadi vacuum karena adanya perbedaan tegangan, sehingga air yang ada di dalam gallon air akan terhisap ke pipa penampungan. Untuk melindungi pompa dari kerusakan, terdapat sebuah saklar otomatis pada semua jenis pompa air.

Pompa dalam perancangan ini merupakan blok output yang dikontrol oleh sinyal dari mikrokontroler pin D.6. Pada perancangan kali ini, pompa yang menggunakan catu daya 12V DC oleh karena itu diperlukan driver untuk dapat mengoperasikannya dengan sinyal kontrol dari mikrokontroler.

Gambar 2.9 Pompa air 12V DC

2.8 Potensiometer

Perancangan ini menggunakan potensiometer untuk mengukur volume wadah yang akan diisi. Komponen ini digunakan untuk mengisi nilai variabel volume sesuai dengan volume gelas yang diletakkan di bawah kran. Subfungsi ini berfungsi mengoperasikan motor DC beserta drivernya, potensiometer yang dihubungkan ke ADC mikrokontroler untuk mengukur volume gelas.

Gambar 2.10 Potensiometer Mono

2.9 Relay

Relay adalah Saklar (Switch) yang dioperasikan secara listrik dan merupakan komponen Electromechanical (Elektromekanikal) yang terdiri dari 2 bagian utama yakni Elektromagnet (Coil) dan Mekanikal (seperangkat Kontak Saklar/Switch).

Relay menggunakan Prinsip Elektromagnetik untuk menggerakkan Kontak Saklar sehingga dengan arus listrik yang kecil (low power) dapat menghantarkan listrik yang bertegangan lebih tinggi.

BAB 3

PERANCANGAN DAN PEMBUATAN

3.1 Diagram Blok Rangkaian

Mikrokontroler Suplay

potentiometer

Buzzer Sensor jarak

Tombol push button

Driver Pompa Pompa

Driver Pompa Pompa

Gambar 3.1 Diagram Blok Sistem

3.1.1 Fungsi Tiap Blok

1. Blok mikrokontroller : Sebagai kontroler

2. Blok potentiometer : Sebagai pengukur volume gelas

3. Sensor ultrasonic : Sebagai sensor pendeteksi adanya gelas

4. Blok power supply : Sebagai penyedia tegangan ke sistem dan sensor 5. Blok driver relay : Sebagai rangkaian pengendali relay

6. Blok relay : Sebagai pemisah tegangan DC dan AC 7. Blok input : Sebagai tombol pengisian air

8. Blok pompa : Sebagai mesin pengisi air

3.2 Rangkaian Regulator Power Supply

Gambar 3.2 Gambar Rangkaian Regulator Power Supply

Gambar di atas adalah adalah rangkaian penstabil tegangan. Rangkaian regulator di atas menggunakan tegangan 12V. Rangkaian mikrokontroler hanya membutuhkan tegangan sebesar 5 volt sedangkan power supply 12V, oleh karena itu dibutuhkan IC LM7805 sebagai penstabil tegangan, agar tegangan yang di keluarkan 5 Volt.

3.3 Rangkaian Mikrokontroller Atmega32

Gambar 3.3 Rangkaian Sistem Minimum Mikrokontroler ATMega32

Rangkaian sistem minimum mikrokontroler ATMEGA32 tersebut berfungsi sebagai pusat kendali dari seluruh sistem yang ada. Komponen utama dari rangkaian ini adalah IC Mikrokontroler Atmega32. Semua program diisikan pada memori dari IC ini sehingga rangkaian dapat berjalan sesuai dengan yang dikehendaki.

Pin 12 dan13 dihubungkan ke XTAL 12 MHz dan dua buah kapasitor 30pF. XTAL ini akan mempengaruhi kecepatan mikrokontroler Atmega32 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 ke mikrokontroler, Mosi, Miso, Sck,

Reset, Vcc dan Gnd dari kaki mikrokontroler dihubungkan ke RJ45. RJ45 sebagai konektor yang akan dihubungkan ke ISP Programmer. Dari ISP Programmer inilah dihubungkan ke komputer melalui port paralel.

Kaki Mosi, Miso, Sck, Reset, Vcc dan Gnd pada mikrokontroler terletak pada kaki 17, 18, 19, 1, 7 dan 8. Apabila terjadi keterbalikan pemasangan jalur ke ISP Programmer, maka pemograman mikrokontroler tidak dapat dilakukan karena mikrokontroler tidak akan bisa merespon.

3.4 Rangkaian Potensiometer

Potensiometer yang digunakan pada rangkaian ini potensiometer yang berkaki tiga atau sering disebut juga dengan potentiometer mono. Pada system ini potentiometer berfungsi sebagai pengukur ketinggian gelas, cara keja rangkaian ini yaitu, potentiometer kaki 1 dihubungkan ke Vcc dan kaki 2 out dihubungkan ke ADC mikrokontroler, kemudian kaki 3 hubungkan ke GND. Setiap potentiometer berputar maka akan mengalami beda potensial, atau disebut juga dengan perubahan tegangan, tegangan tersebut akan dibaca oleh mikrokontroler.

Rangkaian lengkap dapat dilihat dibawah ini.

Gambar 3.4 Rangkaian Potensiometer

3.5 Rangkaian Sensor Jarak

Pada rancangan ini menggunakan sensor jarak sensor jarak yaitu sensor ultrasonic.

Tipe sensor ultrasonic yaitu HCSR 04. Cara kerja sensor pada rangkaian adalah sebagai berikut: Sensor akan memancarkan sebuah gelombang ultrasonic dengan frekuensi 40 kHz kemudian sensor akan mendeteksi pantulan gelombang ultrasonic tersebut jika mengenai suatu objek pemantul.

Antara dipancarkan gelombang ultrasonic dengan diterimanya kembali gelombang tersebut terdapat selisih waktu dan dengan mengetahui kecepatan suara kecepatan suara diudara maka dapat dihitung jarak objek dengan sensor.

Dengan persamaan:

S = V × t (1)

Dimana:

S = jarak objek dengan sensor V = kecepatan suara (340 m/s) t = waktu pantul ultrasonic

Gambar 3.5 Rangkaian Skematik Sensor Ultrasonik PING

3.6 Rangkaian Push Button

Gambar 3.6 Rangkaian Push Button

Rangkaian diatas berfungsi untuk menginstruksi mikrokontroler bahwa air segera diisi kedalam gelas. Rangkaian pushbutton pada rangkaian ini langsung dihubungkan ke PORT yang tersedia pada mikrokontroler, ketika pushbutton ditekan maka port pada mikro akan terhubung langsung ke GND.

3.7 Rangakain Driver Relay

Gambar 3.7 Rangkaian Relay Motor

Komponen utama dari rangkaian ini adalah relay. Relay ini memisahkan tegangan 5 Volt dengan 12 Volt dari beban yang dihubungkan dengan sumber tegangan 12 volt.

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, ini berarti jika positif relay (kaki 1) dihubungkan ke sumber tegangan 12 volt dan negative relay (kaki 2) dihubungkan ke ground, maka kumparan akan menghasilkan medan magnet, dimana medan magnet ini akan menarik logam yang mengakibatkan saklar terhubung.

Pada rangkaian ini untuk mengaktifkan atau menon-aktifkan relay digunakan transistor type PNP. Dari gambar dapat dilihat bahwa negative relay dihubungkan ke kolektor akan terhubung ke emitor dimana emitor langsung terrhubung ke ground yang menyebabkan tegangan di kolektor menjadi 0 volt, keadaan ini akan mwngakibatkan relay aktif.

Sebaliknya jika transistor tidak aktif, maka kolektor tidak terhubung ke emitor, sehingga tegangan pada kolektor menjadi 12 volt, keadaan ini menyebabkan tidak aktif Kumparan pada relay akan menghasilkam tegangan singkat yang besar ketika relay dinon-aktifkan dan ini dapat merusak transistor yang ada pada rangkaian ini.

Untuk mencegah kerusakan pada transistor tersebut sebuah dioda harus dihubungkan ke relay tersebut . Dioda dihubungkan secara terbalik sehingga secara normal dioda ini tidak menghantarkan.

Penghantaran hanya terjadi ketika relay dinonaktifkan, pada saat ini arus akan terus mengalir melalui kumparan dan arus ini akan dialirkan ke dioda. Tanpa adanya dioda arus sesaat yang besar itu akan mengalir ke transistor, yang mengakibatkan kerusakan pada transistor.

3.8 Rangkaian LCD (Liquid Crystal Display)

Pada alat ini, display yang digunakan adalah LCD (Liquid Crystal Display) 2×16.

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 mikrokontroler menjadi tampilan karakter.

Pemasangan potensio sebesar 10 KΩ untuk mengatur kontras karakter yang tampil. Gambar 3.8 berikut merupakan gambar rangkaian LCD yang dihubungkan ke mikrokontroler.

Gambar 3.8 Rangkaian LCD

Dari gambar 3.8, rangkaian ini terhubung ke PB.1 - PB.7, yang merupakan pin I/O dua arah dan pin fungsi khusus, yaitu sebagai Timer/Counter, komperator analog dan SPI mempunyai fungsi khusus sebagai pengiriman data secara serial.

Sehingga nilai yang akan tampil pada LCD display akan dapat dikendalikan oleh Mikrokontroller Atmega32.

3.9 Flowchart Sistem

Start

Selesai Inisialising

Masukkan Volume Air

Deteksi gelas?

Input tombol untuk mulai pengisian air

ya tidak

Pompa Hidup

Air == Volume?

tidak

ya

Pompa Mati

Gambar 3.9 Flowchart Sistem

Adapun cara kerja alat dari diagram blok dan flowchart di atas yaitu, pada program untuk tahap awal, program menginisialisai PORT PORT yang digunakan sesuai dengan register yang telah ada. Kemudian push button bernilai 0 ketika ditekan, nilai 0, ini digunakan untuk memindahkan fungsi. Pada proses subrutin program pertama user harus menset volume gelas. Ketika sudah di set, letakkan gelas dibawah keran, bisa keran panas dan dingin. Maka air akan mengalir sesuai volume gelas yang telah diset.

BAB 4

PENGUJIAN DAN HASIL

4.1 Pengujian Rangkaian Power Supply

Pengujian rangkaian power supply ini bertujuan untuk mengetahui tegangan yang dikeluarkan oleh rangkaian tersebut, dengan mengukur tegangan keluaran dari power supply menggunakan multimeter digital. Setelah dilakukan pengukuran maka diperoleh besarnya tegangan keluaran sebesar 5 volt. Dengan begitu dapat dipastikan apakah terjadi kesalahan terhadap rangkaian atau tidak. Jika diukur, hasil dari keluaran tegangan tidak murni sebesar +5 Volt, tetapi +5.03Volt. Hasil tersebut dikarenakan beberapa faktor, diantaranya kualitas dari tiap-tiap komponen yang digunakan nilainya tidak murni.Selain itu, tegangan jala-jala listrik yang digunakan tidak stabil.

4.2 Pengujian Rangkaian Mikrokontroler Atmega32

Karena pemrograman menggunakan mode ISP (In System Programming) mikrokontroler harus dapat diprogram langsung pada papan rangkaian dan rangkaian mikrokontroler harus dapat dikenali oleh program downloader.

Pada pengujian ini berhasil dilakukan dengan dikenalinya jenis mikrokontroler oleh program downloader yaitu Atmega32.

Gambar 4.1 Informasi Signature Mikrokontroler

Atmega32 menggunakan kristal dengan frekuensi 8 MHz, apabila Chip Signature sudah dikenali dengan baik dan dalam waktu singkat, bisa dikatakan rangkaian mikrokontroler bekerja dengan baik dengan mode ISP-nya.

4.3 Pengujian Rangkaian Sensor Jarak

Sensor ultrasonic ping akan bekerja jika mendapat suplay tegangan sebesar 5 V DC. Di mana tegangan 5V DC dihubungkan dengan konektor Vcc dan ground pada sensor. Untuk konektor SIG dapat dihubungkan dengan mikrokontroler.

Konektor SIG adalah sebagai control sensor ini dalam pendeteksian objek sekaligus pembacaan jarak objek dengan sensor ini. Progam dapat mensetting sensor ini dengan jarak yang telah ditentukan sesuai dengan ring deteksi dari sensor ultrasonic ping ini. Ketika sensor disetting jaraknya maka dengan jarak yang telah ditentukanlah sensor akan bekerja dalam pendeteksian objek. Langkah selanjutnya adalah memberikan program sederhana pada Sensor Ultrasonik.

Program yang diberikan adalah sebagai berikut :

4.4 Pengujian Rangkaian Push Button

Rangkaian push button ini, memanfaatkan tegangand dari mikrokontroler dan dengan switch. Ketika switch ditekan maka port yang terhubung ke switch akan terhubung ke GND secara langsung. Rangkaian ini berfungsi sebagai set dalam pengisian air didalam gelas.

4.5 Pengujian Rangkaian Driver Relay dan Solenoid Valve

Untuk pengujian relay yaitu diberikan tegangan pada pada kaki basis di transistor, maka transistor C945 akan aktif. Hal ini menyebabkan kumparan pada relay dialiri arus listrik. Dengan demikian, kontak relay akan terhubung. Dioda berfungsi sebagai komponen pengaman transistor arus balik yang mungkin timbul akibat dari aktifnya kumparan relay. Maka transistor dalam keadaan tidak aktif, untuk pengujian relay dengan program di bawah ini.

#include <mega32.h>

#include <delay.h>

void main(void) {

DDRA=0x01;

PORTA=0x01;

DDRB=0x00;

PORTB=0x00;

DDRC=0x00;

PORTC=0x00;

DDRD=0x00;

PORTD=0x00;

while (1) {

PORTB.0=1;

delay_ms(1000);

PORTB.0=0;

delay_ms(1000);

} }

Setelah program di download ke mikrokontroler, relay dan solenoid akan mengalami kondisi terbuka dan tertutup selama 1 detik.

4.6 Pengujian Interfacing LCD 2×16

Bagian ini hanya terdiri dari sebuah LCD dot matriks 2×16 karakter yang berfungsi sebagai tampilan hasil pengukuran dan tampilan dari beberapa keterangan. LCD dihubungkan langsung ke Port B dari mikrokontroler yang berfungsi mengirimkan data hasil pengolahan untuk ditampilkan dalam bentuk alfabet dan numerik pada LCD. Display karakter pada LCD diatur oleh pin EN, RS dan RW: Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa anda sedang mengirimkan sebuah data. Untuk mengirimkan data ke LCD, maka melalui program EN harus dibuat logika low “0” dan set ( high ) pada dua jalur kontrol yang lain RS dan RW. Jalur RW adalah jalur kontrol Read/

Write. Ketika RW berlogika low (0), maka informasi pada bus data akan dituliskan pada layar LCD. Ketika RW berlogika high ”1”, maka program akan

melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi umum pin RW selalu diberi logika low ( 0 ).

Berdasarkan keterangan di atas maka kita sudah dapat membuat progam untuk menampilkan karaker pada display LCD. Adapun program yang diisikan ke mikrokontroller adalah sebagai berikut:

Program di atas akan menampilkan kata “Tes LCD” di baris pertama pada display LCD 2x16. Pada alat dalam penelitian ini, Saat keseluruhan rangkaian diaktifkan.

4.7 Pengujian Rangkaian Potensiometer

Potensiometer pada rangkaian ini befungsi sebagai set volume air yang akan dikeluarkan, potensiometer memiliki 3 pin diantaranya Vcc, output dan GND.

Output di hubungkan ke ADC pada mikrokontroler maka data akan di ubah dari analog menjadi digital dengan ADC 10 bit. Untuk pengujian rangkaian potensiometer dapat menggunakan penggalan program sebagai berikut:

while (1) {

lcd_clear();

lcd_gotoxy(3,0);

lcd_putsf("bit”);

bit=read_adc(0);

volt=bit*0.004887;

ftoa(volt,1,buff);

lcd_gotoxy(6,1);

lcd_puts(buff);

delay_ms(1000);

}

Dengan program diatas, maka mikorokontroler akan memproses data analog menjadi digital kemudian akan ditampilakan pada LCD 16×2 yang telah

disediakan library oleh codevison AVR. Data yang akan ditampilkan berupa tegangan. Karena ADC 10 bit memiliki range = 5/ 1023 atau 0,004887. Maka dengan ini ADC pada mikrokontroler memiliki ketelitian 0,004.

4.8 Pengujian Keseluruhan

/******************************************************

This program was created by the CodeWizardAVR V3.12 Advanced Automatic Program Generator

© Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

Project : Version :

Date : 5/1/2016 Author :

Company : Comments:

Chip type : ATmega32A Program type : Application AVR Core Clock frequency: 4.000000 MHz Memory model : Small

External RAM size : 0 Data Stack size : 512

******************************************************/

#include <mega32a.h>

#include <delay.h>

#include <stdio.h>

#include <stdlib.h>

#define triger PORTD.1

#define pin_triger DDRD.1

#define echo PIND.0

#define pin_echo DDRD.0

#define buzzer PORTC.2

#define pump_panas PORTC.5

#define pump_dingin PORTC.6

#define triger1 PORTD.2

#define pin_triger1 DDRD.2

#define echo1 PIND.3

#define pin_echo1 DDRD.3

int panas,dingin;

int volume;

int waktu;

float debit;

unsigned char buf[33];

unsigned char buf1[33];

unsigned int counter,jarak_panas;

unsigned int counter1,jarak_dingin;

#define input_bawah PINC.4

#define input_atas PINC.3

int data=0,x;

int hitung;

int volume_gelas;

// Alphanumeric LCD functions

#include <alcd.h>

// Declare your global variables here

#define ADC_VREF_TYPE ((0<<REFS1) | (0<<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 (echo==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=T

PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) |

(0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

// Port C initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In

DDRC=(1<<DDC7) | (1<<DDC6) | (1<<DDC5) | (0<<DDC4) | (0<<DDC3) | (1<<DDC2) | (0<<DDC1) | (0<<DDC0);

// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) |

(1<<PORTC4) | (1<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);

// 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=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) |

(0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF

// OC0 output: Disconnected

TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01)

| (0<<CS02) | (0<<CS01) | (0<<CS00);

TCNT0=0x00;

OCR0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Disconnected // OC1B output: Disconnected // Noise Canceler: Off

// Input Capture on Falling Edge

// Timer1 Overflow Interrupt: Off // 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) | (0<<CS12) | (0<<CS11) | (0<<CS10);

TCNT1H=0x00; // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF

// OC2 output: Disconnected ASSR=0<<AS2;

TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);

TCNT2=0x00;

OCR2=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) |

(0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);

// External Interrupt(s) initialization // INT0: Off

// INT1: Off // INT2: Off

MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);

MCUCSR=(0<<ISC2);

// USART initialization // USART disabled

UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN)

| (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);

// Analog Comparator initialization // Analog Comparator: Off

// The Analog Comparator's positive input is // connected to the AIN0 pin

// The Analog Comparator's negative input is // connected to the AIN1 pin

ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);

SFIOR=(0<<ACME);

ADMUX=ADC_VREF_TYPE;

ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (1<<ADPS1) | (0<<ADPS0);

SFIOR=(0<<ADTS2) | (0<<ADTS1) | (0<<ADTS0);

// SPI initialization // SPI disabled

SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);

// TWI initialization // TWI disabled

TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);

// Alphanumeric LCD initialization // Connections are specified in the

// Project|Configure|C Compiler|Libraries|Alphanumeric

lcd_init(16);

lcd_gotoxy(0,1);

lcd_gotoxy(0,0);

}

volume =hitung/170;

debit=volume/waktu;

itoa(debit,buf);

lcd_gotoxy(14,1);

lcd_puts(buf);

delay_ms(100);

} }

}

Dari program di atas, maka didapat data sebagai berikut:

Tabel 4.1 Data Hasil Percobaan No. Set volume

Persentase kesalahan (error) rata-rata 4,41 %

Dari data percobaan di atas, maka dapat diketahui debit air yang mengalir yaitu : Debit air =

= 1820mL 36 s

= 50, 55 mL/s

Berikut adalah grafik hubungan antara volume air yang diisi berbanding volume gelas sebenarnya:

Gambar 4.2 Grafik Waktu vs Volume

BAB 5 PENUTUP

5.1 Kesimpulan

Berdasarkan pengujian dan analisis dispenser pengisi gelas otomatis menggunakan sensor ultrasonik, dapat ditarik kesimpulan sebagai berikut :

1. Berdasarkan hasil pengujian yang telah dilakukan, maka sistem kerja secara keseluruhan dari sistem otomasi aliran air pada dispenser berdasarkan ukuran wadah telah dapat berfungsi dengan baik dan sesuai dengan yang diharapkan.

2. Keluaran sistem berupa pompa dapat dikontrol aktif dan tidak sesuai sinyal kontrol dari mikrokontroler Atmega32 yang dihubungkan dengan driver relay.

3. Dispenser dapat mengisi gelas otomatis hingga penuh dengan mengintegrasikan sensor keberadaan gelas, pengukur tinggi gelas, serta pompa yang dikontrol oleh mikrokontroler dengan error terbesar 3,33%.

5.2 Saran

Saran yang dapat disampaikan untuk perancangan alat selanjutnya antara lain:

1. Perangkat ini masih dapat dikembangkan sehingga pengaturan aliran air panas maupun dingin keduanya dapat dilakukan secara otomatis dengan sensor tanpa menggunakan tombol.

2. Proses pembacaan jarak oleh sensor ultrasonik PING))) dapat dibuat lebih akurat lagi agar mengurangi pembacaan yang salah agar selain objek yang dimaksud tidak ikut terbaca oleh sensor.

DAFTAR PUSTAKA

Bejo, A. 2008. C dan AVR Rahasia Kemudahan Bahasa C dalam Mikrokontroller ATMega8535, Edisi I. Yogyakarta: Graha Ilmu

Eko Putra, Agfianto. 2002. Teknik Antarmuka Komputer Konsep dan Aplikasi.

Yogyakarta: Graha Ilmu

Pramono, Djoko. 1999. Mudah Menguasai Bahasa C. Jakarta: PT Elex Media Komputindo

http://www.atmel.com/images/2503s.pdf Diakses pada tanggal 10 April 2016 http://www.micropik.com/PDF/HCSR04.pdf

Diakses pada tanggal 10 April 2016

http://elektro.studentjournal.ub.ac.id/index.php/teub/article/viewFile/157/120 Diakses pada tanggal 10 April 2016

http://lib.unnes.ac.id/6127/1/3442X.pdf Diakses pada tanggal 10 April 2016

http://www.academia.edu/9295570/sistem_kendali_otomatis_pada_dispenser Diakses pada tanggal 24 April 2016

http://elektronika-dasar.web.id/teori-elektronika/lcd-liquid-cristal-display/

Diakses pada tanggal: 30 April 2016 http://buletin.melsa.net.id/okt/1020/bahasa-c.htm

Diakses Pada tanggal 12 Mei 2016

GAMBAR RANGKAIAN LENGKAP

LEMBAR EKSPEDISI PERBAIKAN TUGAS AKHIR

NAMA : DesyRosrianiPurba

NIM : 132408012

DEPARTEMEN : FISIKA

JUDUL : SISTEM OTOMASI DISPENSER MENGGUNAKAN

SENSOR ULTRASONIK BERBASIS ATMEGA32

No NamaDosen Jabatan TandaTangan

1 Dr.KeristaSebayang, MS Pembimbing 2 Dr. MesterSitepu, M.Sc. M.Phill Penguji

Medan, Juni 2016 Hormat saya

DesyRosrianiPurba

Dokumen terkait