BAB IV HASIL DAN PEMBAHASAN
4.6. Pembahasan Software
4.6.2. Program pemotongan
Program pemotongan ini akan di eksekusi setelah tombol start ditekan kemudian portB.0 akan berlogika high yang menandakan relay yang terhubung pada blender dalam kondisi ON dan kemudian timer akan aktif selama 300 detik (5menit). Setelah itu relay akan OFF dan proses pemotongan akan selesai. Gambar 4.24. menunjukan listing program pemotongan.
Gambar 4.24. Listing Program Pemotongan
Gambar 4.25. Tampilan proses pemotongan setelah di eksekusi
4.6.3. Pengaturan motor dc
Pengaturan motor dc akan dieksekusi setelah proses pemotongan selesai. Motor 1 akan ON bergerak naik (cw) sampai menyentuh limit2 yang terhubung pada portB.5, dan motor1 akan OFF. Setelah motor1 OFF, maka motor2 akan ON memutar kekanan (cw) untuk menuangkan akar senggugu pada blender ke dalam gelas sampai menyentuh limit4 yang terhubung pada portB.7, kemudian motor akan berputar berlawanan arah jarum jam (ccw) untuk kembali pada posisi semula sampai menyentuh limit3 yang terhubung pada portB.6.
Setelah blender menyentuh limit3, motor1 akan turun (ccw) sampai menyentuh limit1 yang terhubung pada portB.4 lalu motor1 akan OFF. Gambar 4.26. menunjukan listing program pengaturan motor DC.
Gambar 4.26. Listing Program Pengaturan Motor DC
5.
6.
7.
8.
9.
10.
11.
12.
13.
Gambar 4.27. Motor1 naik Gambar 4.28. Motor2 naik (tuang)
Gambar 4.29. Motor1 kembali
4.6.4. Program pengeringan dan pemanasan air
Pada perancangan ini semula program untuk pengeringan dan panaskan air akan dieksekusi akan dikerjakan bersamaan setelah motor 1 dan motor 2 OFF, maka heater pengering kondisi ON, pemanas air kondisi ON dan kran kondisi OFF. Setelah heater pengering kondisi ON, pemanas air kondisi ON dan kran kondisi OFF kemudian akan menampilkan suhu heater dan pemanas air. Jika suhu pada heater pengering < 60°C dan suhu pemanas air < 100° C, kemudian status akan tertampil pada LCD. Jika suhu pada heater < 60°C dan suhu pemanas air > 100° C, maka heater pengering akan ON dan pemanas air OFF lalu status akan tertampil pada LCD. Jika suhu pada heater > 60°C dan suhu pemanas air < 100° C, maka heater pengering akan OFF dan pemanas air ON, kemudian status akan tertampil pada LCD. Jika suhu pada heater > 60°C dan suhu pemanas air > 100° C, maka pemanas air OFF dan heater pengering akan OFF, lalu status akan tertampil pada LCD. Setelah pemanas air OFF dan heater pengering akan OFF maka kran air akan terbuka selama 5 detik lalu kran akan OFF dan proses selesai. Namun program tersebut dinilai kurang efektif karena memerlukan kontrol dua subsistem yang berulang, yaitu pada saat pengeringan telah selesai dan pemanas air ON, pengering harus memgecek suhu apakah msh 60°C atau tidak, jika tidak maka heater pengering harus ON lagi supaya suhu pengering tidak turun. Proses tersebut membutuhkan waktu lama dalam operasionalnya. Oleh karena itu digunakan program sederhana yang lebih efektif, yaitu program pengeringan dan panaskan air akan dieksekusi setelah proses pengaturan motor DC selesai atau setelah motor1 menyentuh limit1. Proses pengeringan akan berlangsung ketika portB.2 yang terhubung pada relay heater berlogika high, heater akan ON sampai suhu 60°C selama 1 menit lalu OFF.
Setelah proses pengeringan selesai, relay pemanas air yang terhubung pada portB.1 akan ON sampai suhu 100°C. Proses ini akan berlangsung selama 10 menit 48 detik. Untuk proses pengaturan suhu menggunakan fungsi ADC yang terdapat pada portA.6 dan portA.7 mikrokontroler. Gambar 4.30. menunjukan listing program pengeringan dan pemanasan air.
Gambar 4.30. Listing Program Pengeringan Dan Pemanasan Air
Gambar 4.31. Tampilan suhu proses pengeringan dan pemanasan air pada LCD
4.6.5.Program pergerakan kran air
Listing program pergerakan kran air ditunjukkan pada gambar 4.32. Pada saat fungsi ini dieksekusi, mikrokontroler akan memberikan logika high pada motor servo untuk menggerakkan kran air.
Gambar 4.32. Listing program pengendali motor servo
Gambar 4.33. Kran air ON Gambar 4.34. Kran air OFF
Program ini akan dieksekusi setelah pemanas air OFF. Untuk membuka kran air dipergunakan 1 buah motor servo. Motor servo akan bergerak dengan sudut 90° pada saat mikrokontroler memberikan pulsa sebesar 2ms, kran air akan terbuka selama 30 detik setelah itu kran air akan menutup kembali dan proses selesai.
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Dari hasil percobaan dan pengujian alat produksi obat asma seduh berbasis mikrokontroler ATmega8535 dapat disimpulkan bahwa:
1. Sistem yang dirancang telah bekerja dengan baik dengan waktu yang dibutuhkan oleh sistem dari proses pemotongan sampai penyeduhan adalah 19 menit 16 detik.
2. Waktu yang dibutuhkan blender untuk memotong akar senggugu sampai halus adalah 5 menit.
3. Proses pengeringan serbuk dari akar senggugu dengan suhu 30°C-60°C dan 53°C-60°C mempengaruhi hasil penyeduhan. Hasil pengeringan yang lebih baik yaitu pengeringan yang dilakukan dengan suhu 30°C-60°C.
4. Kenaikan tegangan sensor LM35 pada hasil percobaan dibandingkan dengan datasheet per derajatnya memiliki error 1%.
5. Mekanik masih mempunyai kekurangan dalam penuangan serbuk senggugu ke dalam gelas.
5.2. Saran
Saran untuk pengembangan alat produksi obat asma seduh berbasis mikrokontroler ATmega8535 adalah sebagai berikut :
1. Membuat mekanisme alat untuk proses penuangan dengan sedemikian rupa supaya penuangan dapat berjalan dengan lancar.
2. Sebelum melakukan running ke-2 hendaknya batasan suhu pada pengering dan pemanas air ditambah lalu di program ulang supaya tidak ada kadar air pada serbuk senggugu sehingga saat diseduh, serbuk benar-benar larut.
.
62
DAFTAR PUSTAKA
[1] http://www.iptek.net.id/ind/pd_tanobat/view.php?id=157, diakses tanggal 1 September 2012.
[2] Winoto, Ardi, 2008, Mikrokontroler AVR ATmega8/32/16/8535, Bandung : Informatika.
[3] Adrianto, Heri,2008, Pemrograman Mikrokontroler AVR ATmega16 menggunakan Bahasa C (CodeVision AVR), Bandung : Informatika.
[4] Boleystad, Robert and Nashelsky Englewood Cliffs, Electronic Devices and Circuit Theory, New Jersey, 1996
[5] http://wahyu-rudiyan.blogspot.com/2011/05/driver-motor-l293d-l298.html, diakses tanggal 15 Agustus 2012.
[6] http://telinks.wordpress.com/2010/04/09/rangkaian-sensor-suhu-lm35.html, diakses tanggal 25 Oktober 2012.
[7] http://meriwardana.blogspot.com/2011/11/prinsip-kerja-motor-arus-searah- dc.html, diakses tanggal 15 Agustus 2012.
[8] http://meriwardana.blogspot.com/2011/11/prinsip-kerja-relay.html, diakses tanggal 1 September 2012.
[9] http://elektronika-dasar.com/komponen/limit-switch-dan-saklar-push-on/, diakses tanggal 5 September 2012.
[10] http://elektronika-dasar.com/teori-elektronika/motor-servo.html,diakses tanggal 4 Januari 2013.
[11] http://aryutomo.wordpress.com/2010/12/10/pengatur-tegangan-voltage-regulator/, diakses tanggal 4 Januari 2013.
[12] http://ndolem.blogspot.com/2012/08/cara-menghitung-nilai-resistor-pada.html, diakses tanggal 1 Januari 2013.
63
Lampiran Tabel Hasil Pengujian Alat
Tabel L1. Hasil pengujian sensor pada proses pengeringan Suhu pada
Tabel L2. Hasil pengujian sensor pada proses pemanas air Suhu pada
Tabel L2. (Lanjutan) Hasil pengujian sensor pada proses pemanas air Suhu pada
Termometer (°C)
SUHU PADA LCD (°C) Vout SENSOR (V)
1 2 3 1 2 3
76 76 75 76 0.76 0.76 0.76
78 78 76 78 0.78 0.78 0.78
80 80 77 80 0.8 0.8 0.81
82 82 82 81 0.82 0.82 0.82
84 82 84 84 0.84 0.84 0.84
86 85 86 86 0.86 0.86 0.86
88 88 86 88 0.88 0.89 0.89
90 90 90 91 0.9 0.91 0.91
92 92 91 92 0.92 0.92 0.92
94 94 94 94 0.94 0.94 0.94
96 95 96 97 0.96 0.97 0.97
99 99 98 98 0.98 0.99 0.99
100 100 100 107 1.01 1.00 1.07
Listing Program
L.3.Listing Program Keseluruhan
/*****************************************************
This program was produced by the CodeWizardAVR V1.25.8 Professional Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project : PRODUKSI OBAT SEDUH BERBASIS MIKROKONTROLER ATmega8535 Version : 2012
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
// Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) {
// Reinitialize Timer 0 value TCNT0=0x8A;
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input) {
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage delay_us(10);
// Start the AD conversion ADCSRA|=0x40;
// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
// Declare your global variables here void WAKTU(void)
{
//Menampilkan Data Timer Pada LCD
sprintf(baris1,"Timer = %d",Timer) ;lcd_gotoxy(0,0) ;lcd_puts(baris1);
}
void TAMPIL_SUHU_HEATER(void) {
sprintf(baris,"Suhu Heater = %d",SUHU_HEATER) ;lcd_gotoxy(0,1)
;lcd_puts(baris);
}
void TAMPIL_SUHU_AIR(void) {
sprintf(baris1,"Suhu Air = %d",SUHU_AIR) ;lcd_gotoxy(0,1) ;lcd_puts(baris1);
}
}
SUHU_HEATER=(float)ADC_HEATER*500/1023;
}
PORTB.1=0; //Pemanas Air OFF
PORTD.7=1; //memberikan pulsa high
{
while(1)
MOTOR2_CCW();
lcd_gotoxy(3,1);
// Declare your local variables here // Input/Output Ports initialization // Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0b11110000;
DDRB=0b00001111; //PortB 7-0
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;
DDRC=0x00; //LCD
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00;
DDRD=0xFF;
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 11,719 kHz // Mode: Normal top=FFh // OC0 output: Disconnected
TCCR0=0x05;
TCNT0=0x8A;
OCR0=0x00;
TCCR1A=0xa3;
TCCR1B=0x0b;
TCNT1=0x0000;//000016 bit OCR1A=0x03ff;
OCR1B=0x03ff;
// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: 1500.000 kHz // Mode: Normal top=FFh // OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization // INT0: Off
// INT1: Off // INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x01;
// Analog Comparator initialization // Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 750,000 kHz // ADC Voltage Reference: AREF pin // ADC High Speed Mode: Off
// ADC Auto Trigger Source: Free Running
ADMUX=ADC_VREF_TYPE & 0xff;
delay_ms(2); //pulsa servo high diberikan selama 2 ms sudut 90 kran tutup PORTD.7=0;
delay_ms(1000);
lcd_clear();
while (1) {
// Place your code here
if(PIND.6==1) //Tombol Start Di Tekan {
lcd_clear();
lcd_gotoxy(3,0);
lcd_putsf("LOADING...");
delay_ms(500);
lcd_clear();
START();
} else {
lcd_gotoxy(2,0);
lcd_putsf("TEKAN TOMBOL");
lcd_gotoxy(5,1);
lcd_putsf("START");
} };
}