• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI

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