BAB 3 PERANCANGAN ALAT 3.1. Perancangan Rangkaian Catu Daya Rangkaian ini berfungsi untuk mensupplay tegangan ke seluruh rangkaian yang ada. Rangkaian Catu daya (Power Supply Adaptor) ini terdiri dari satu keluaran, yaitu 5 volt. Keluaran 5 volt digunakan untuk mensupplay tegangan ke rangkaian mikrokontroller AVR Atmega8535, rangkaian IDS2560, dan LCD. Rangkaian catu daya ditunjukkan pada gambar 3.1 berikut ini : Gambar 3.1. Rangkaian Catu Daya Baterai merupakan sumber tegangan DC. Kemudian tegangan akan disearahkan dengan menggunakan jembatan dioda, selanjutnya akan diratakan oleh
kapasitor 220 μf. Regulator tegangan 5 volt (7805) digunakan agar keluaran yang dihasilkan tetap 5 volt walaupun terjadi perubahan pada tegangan masukannya. LED hanya sebagai indikator apabila Catu daya dinyalakan. Tegangan 5 volt DC langsung diambil dari keluaran jembatan dioda penyearah gelombang penuh. 3.2. Perancangan Rangkaian LM35 dengan Mikrokontroller AVR Atmega8535 Gambar 3.2. Rangkaian LM35 dengan Mikrokontrolller AVR ATmega8535 Sensor LM35 memiliki tegangan kerja 5 Volt namun outputnya hanya antara 0.01 Volt sampai 1.00 Volt mengingat LM35 yang digunakan adalah seri DZ sehingga
range pengukuran hanya berkisar antara 0 100 C dengan perubahan sebesar 10mV/1 C. Dengan ketelitian yang dimiliki maka sensor tersebut dapat diterapkan langsung dengan Mikrokontroller AVR ATmega8535 yang memiliki ADC internal 10 bit. Pada gambar diatas output dari LM35 dapat langsung di koneksikan ke ADC internal Mikrokontroller AVR ATmega8535. Hasil pengukuran tegangan LM35 dan pengukuran suhu dengan termometer analog akan ditabulasi dalam tabel pengamatan berikut. Tabel 3.1 Hasil Pengujian LM35 dengan Termometer Analog Suhu Termometer Analog ( C) Tegangan Keluaran LM35 (mv) Konversi Tegangan ke suhu oleh LM35 ( C) 30 294 29,4 35 346 34,6 40 393 39,3 45 441 44,1 Rangkaian diatas berfungsi untuk mengendalikan seluruh sistem. Kompoen utama dari rangkaian ini adalah IC mikrokontroller ATmega8535. Pada IC inilah semua program diisikan, sehingga rangkaian dapat berjalan sesuai dengan yang dikehendaki. Mikrokontroller ini memiliki 32 port I/O, yaitu port A, port B, port C dan port D. Pin 33 sampai 40 adalah Port A yang merupakan port ADC, dimana port ini dapat menerima data analog. Pin 1 sampai 8 adalah port B. Pin 22 sampai 29 adalah port C. Dan Pin 14 sampai 21 adalah port D. Pin 10 dihubungkan ke sumber tegangan 5 volt. Dan pin 11 dihubungkan ke ground. Rangkaian mikrokontroller ini menggunakan komponen kristal sebagai sumber clock-nya. Nilai kristal ini akan
mempengaruhi kecepatan mikrokontroller dalam mengeksekusi suatu perintah tertentu. Pin 12 dan 13 dihubungkan ke XTAL 8 MHz dan dua buah kapasitor 22pF. XTAL ini akan mempengaruhi kecepatan mikrokontroller AVR Atmega8535 dalam mengaksekusi setiap perintah dalam program. Pada pin 9 dihubungkan dengan sebuah kapasitor dan sebuah resistor yang dihubungkan ke ground. Kedua komponen ini berfungsi agar program pada mikrokontroller dijalankan beberapa saat setelah power aktif. Lamanya waktu antara aktifnya power pada IC mikrokontroller dan aktifnya program adalah sebesar perkalian antara kapasitor dan resistor tersebut. 3.3. Perancangan Rangkaian LCD Gambar 3.3. Rangkaian Display LCD LCD terdiri dari sejumlah memory yang digunakan untuk display. Semua teks yang kita tuliskan ke LCD adalah disimpan didalam memory ini, dan LCD secara berturutan membaca memory ini untuk menampilkan teks ke LCD itu sendiri.
Pada peta memori tersebut, daerah yang berwarna biru ( 00 s/d 0F dan 40 s/d 4F ) adalah display yang tampak. Sebagaimanan yang anda lihat, jumlahnya sebanyak 16 karakter per-baris dengan dua baris. Angka pada setiap kotak adalah alamat memori yang bersesuaian dengan posisi dari layar. Demikianlah karakter pertama di sudut kiri atas adalah menempati alamah 00h. Posisi karakter berikutnya adalah alamat 01h dan seterusnya. Akan tetapi, karakter pertama dari baris 2 sebagaimana yang ditunjukkan pada peta memori adalah pada alamat 40h. Dimikianlah kita perlu untuk mengirim sebuah perintah ke LCD untuk mangatur letak posisi kursor pada baris dan kolom tertentu. Instruksi Set Posisi Kursor adalah 80h. Untuk ini kita perlu menambahkan alamat lokasi dimana kita berharap untuk menempatkan kursor. Sebagai contoh, kita ingin menampilkan kata World pada baris ke dua pada posisi kolom ke sepuluh. Sesuai peta memori, posisi karakter pada kolom 11 dari baris ke dua, mempunyai alamat 4Ah, sehingga sebelum kita tulis kata World pada LCD, kita harus mengirim instruksi set posisi kursor, dan perintah untuk instruksi ini adalah 80h ditambah dengan alamat 80h+4Ah =0Cah. Sehingga dengan mengirim perintah Cah ke LCD, akan menempatkan kursor pada baris kedua dan kolom ke 11 dari DDRAM. Set Alamat Memori DDRAM RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 1 A A A A A A A Catatan: A : Alamat RAM yang akan dipilih Sehingga alamat RAM LCD adalah 000 0000 S/D 111 1111 b atau 00 s/d 7Fh
3.4. Perancangan Rangkaian ISD2560 Gambar 3.4. Rangkaian ISD2560 Perancangan pada rangkaian penyimpanan pesan ini, terbagi atas empat tahapan, yaitu : 1. Proses perekaman suara dari micropon ke PC (Personal Computer). 2. Proses pengalamatan ISD2560. 3. Proses perekaman suara dari PC ke rangkaian penyimpan pesan. 4. Prooses play/record (P/R).
BAB 4 ANALISA RANGKAIAN 4.1. Diagram Blok dan Cara Kerja Rangkaian EXTERNAL POWER SUPLY POWER SUPLY LCD IC LM35 μc ATmega 8535 ISD 25560 SPEAKER Gambar 4.1. Diagram blok rangkaian Thermometer Digital Berbasis Mikrokontroller AVR ATmega8535 dengan Output Suara dan Display Digital
a. Power supply berfungsi sebagai sumber tegangan dari seluruh sistem agar sistem dapat bekerja. b. AVR ATmega8535 merupakan pusat kendali dari seluruh rangkaian. Dimana mikrokontroller akan mengecek sinyal yang dikirimkan oleh sensor, kemudian memprosesnya dan mengirimkan perintah ke ISD2560 dan LCD. c. Sensor berfungsi untuk mendeteksi suhu yang ada. d. ISD2560 berfungsi untuk memproses data yang dikirim oleh mikrokontroller dan menyesuaikannya dengan suara yang telah direkam lalu mengirim kembali data tersebut ke speaker. e. LCD berfungsi sebagai indikator keluaran yang menampilkannya dalam bentuk tulisan. f. Speaker berfungsi sebagai indikator keluaran dalam bentuk suara dimana hasil keluarannya sama dengan hasil yang ditampilkan LCD. 4.2. Diagram Alir (flowchart) Adapun diagram alir (flowchart) dari sistem thermometer digital output suara dan tapilan display digital adalah sebagai berikut :
START Tekan Tombol Start Prosesing Menunggu 60 menit Baca Data Masuk Tidak Ya 35 data 41 data < 35 atau data > 41 Output suara suhu anda (sesuai data yang dibaca) C Tampil LCD (Suhu tidak Terbaca) Tampilkan LCD END Gambar 4.2. Diagram alir (flowchart) dari sistem Thermometer Digital Berbasis Mikrokontroller AVR ATmega8535 dengan Output Suara dan Display digital
Program diawali start yang berarti rangkaian dihidupkan dengan menekan tombol start pada rangkaian. Kemudian rangkaian akan melakukan prosesing selama 60 detik untuk mendeteksi suhu yang ada dan suhu (data) yang dibaca adalah suhu yang terdeteksi pada detik ke-60 dari prosesing pada rangkaian. Kemudian, jika suhu yang terdeteksi berada diantara 35 41 C maka mikrokontroller akan mengirim perintah ke ISD2560 yang kemudian akan diproses yang nantinya output akan dikeluarkan melalui speaker sebagai indikator suara, dan mikrokontroller juga mengirim data ke LCD yang outputnya dikeluarkan dalam bentuk tampilan tulisan. Namun, jika suhu yang terdeteksi lebih kecil dari 35 C dan lebih besar dari 41 C, maka mikrokontroller akan mengirim perintah yang tidak terbaca ke ISD2560 sehingga speaker tidak menghasilkan suara (diam) dan mikrokontroller juga mengirim data ke LCD yang menampilkan suhu tidak terbaca. 4.3. Program Adapun program yang digunakan pada thermometer digital dengan output suara dan display digital adalah sebagai berikut : #include <mega8535.h> #include <delay.h> #include <stdio.h> #define alamat PORTD
#define pr PORTB.0 #define ce PORTB.1 #define key PINB.6 // Alphanumeric LCD Module functions #asm.equ lcd_port=0x15 ;PORTC #endasm #include <lcd.h> #define ADC_VREF_TYPE 0x00 // 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 ic_aktif(void) ce = 0; // ic aktif delay_ms(250); ce = 1; // ic tidak aktif delay_ms(2000); void main(void) long int adc0,suhu; int i,j; unsigned char save[16]; ce = 1; pr = 1; PORTD = 0XFF; DDRD = 0XFF;
DDRB.0 = 1; DDRB.1 = 1; PORTB.6 = 1; DDRB.6 = 0; // ADC initialization // ADC Clock frequency: 1000.000 khz // ADC Voltage Reference: AREF pin // ADC High Speed Mode: Off // ADC Auto Trigger Source: None ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x82; SFIOR&=0xEF; // LCD module initialization lcd_init(16); lcd_gotoxy(0,0); lcd_putsf("tekan mulai"); while (1) // Place your code here ce = 1; //ISD2560 DI NON AKTIFKAN pr = 1; // ISD2560 BERMODE PLAY
j = 0; alamat=0; while ( key == 0 ) alamat = 0; lcd_clear(); for ( i = 0; i <= 60; i++) j ++; sprintf(save, "proses..: %-i", i); lcd_gotoxy(0,0); lcd_puts(save); lcd_gotoxy(j,1); lcd_putsf("..>>>"); delay_ms(1000); if (j == 15)j=0; lcd_clear(); adc0 = read_adc(0); // MENGKONVERSI ANALOG DI PINA.0 suhu = (adc0 * 5000)/1023; // lcd_gotoxy(0,0); lcd_putsf("thermo.. suara");
if ( suhu < 350 ) lcd_putsf("tak terbaca"); if ( suhu >= 410 ) lcd_putsf("tak terbaca"); if (suhu < 355 && suhu >=350) lcd_putsf("suhu: 35 C"); alamat = 0x01;
if ( suhu < 360 && suhu >= 355) lcd_putsf("suhu: 35.5 C"); alamat = 0x02; //============================================ if ( suhu < 365 && suhu >= 360) lcd_putsf("suhu: 36 C"); alamat = 0x18; if ( suhu < 370 && suhu >= 365)
lcd_putsf("suhu: 36.5 C"); alamat = 0x04; //========================================== if ( suhu < 375 && suhu >= 370) lcd_putsf("suhu: 37 C"); alamat = 0x06; if ( suhu < 380 && suhu >= 375)
lcd_putsf("suhu: 37.5 C"); alamat = 0x07; if ( suhu < 385 && suhu >= 380) lcd_putsf("suhu: 38 C"); alamat = 0x08; if ( suhu < 390 && suhu >= 385)
lcd_putsf("suhu: 38.5 C"); alamat = 0x09; if ( suhu < 395 && suhu >= 390) lcd_putsf("suhu: 39 C"); alamat = 0x0a; if ( suhu < 400 && suhu >= 395) lcd_putsf("suhu: 39.5 C");
alamat = 0x0c; if ( suhu < 405 && suhu >= 400) lcd_putsf("suhu: 40 C"); alamat = 0x0e; if ( suhu < 410 && suhu >= 405)
lcd_putsf("suhu: 40.5 C"); alamat = 0x10; if ( suhu < 415 && suhu >= 410) lcd_putsf("suhu: 41 C"); alamat = 0x11; ;
BAB 5 KESIMPULAN DAN SARAN 5.1. Kesimpulan Setelah melalui tahapan perancangan dan pengujian sistem secara keseluruhan, maka dapat diambil kesimpulan sebagai berikut : 1. Thermometer yang telah didesain memiliki output berupa audio (pesan suara) dan display digital dengan range suhu 35 C - 41 C dengan akurasi (± 0.3 C). 2. Pemograman AVR ATmega8535 dengan bahasa C lebih baik dari bahasa pemograman lainnya. 3. Dari hasil pengujian waktu respon thermometer badan yang didesain memiliki error 0.11%. 4. IC suara ISD2560 dapat merekam suara selama 60 detik dan dapat direkam sampai 100.000 kali, dan dioperasikan dalam mode address bit artinya setiap kata yang direkam memiliki alamat sendiri.
5.2. Saran Adapun saran yang diberikan dalam pembuatan thermometer digital dengan output suara dan tampilan display digital ini adalah sebagai berikut : 1. Untuk mendapatkan akurasi pengukuran suhu yang lebih detail dapat mempergunakan sensor suhu dengan akurasi tinggi (± 0.1 C). 2. Untuk mengatasi output suara yang terputus putus, maka pada waktu pemutaran kembali suara yang telah direkam seharusnya memanfaatkan sinyal EOM (End Of Message) dari ISD2560 yang menunjukkan proses memutar kembali suara yang telah direkam telah selesai. 3. Penulis berharap, kelanjutan dari peranvangan alat ini dapat memberikan manfaat yang lebih besar untuk dunia perancangan elektronika dalam pengaplikasiannya, khususnya dalam dunia industri.