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