Komparasi Dengan dan Tanpa Pengkondisi Sinyal Pada Sensor LM35 Berbasis Mikrokontroler ATMega32
KOMPARASI DENGAN DAN TANPA PENGKONDISI SINYAL
PADA SENSOR LM35 BERBASIS MIKROKONTROLER
ATMega32
TUGAS AKHIR
HIDAYATI IRSAN 122408041
PROGRAM STUDI D-3 FISIKA DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2015
(2)
KOMPARASI DENGAN DAN TANPA PENGKONDISI SINYAL
PADA SENSOR LM35 BERBASIS MIKROKONTROLER
ATMega32
TUGAS AKHIRDiajukan Untuk Melengkapi Tugas Dan Memenuhi Syarat Memperoleh Ahli Madya
HIDAYATI IRSAN 122408041
PROGRAM STUDI D-3 FISIKA DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2015
(3)
PERSETUJUAN
Judul : Komparasi Dengan dan Tanpa Pengkondisi Sinyal Pada Sensor LM35 Berbasis Mikrokontroler ATMega32
Kategori : Tugas Akhir
Nama : HIDAYATI IRSAN
Nomor Induk Mahasiswa : 122408041
Program Studi : Diploma III (D-III) Fisika
Departemen : Fisika
Fakultas : Matematika Dan Ilmu Pengetahuan Alam Universitas Sumatra Utara
Diluluskan di Medan, 28 Juli 2015
Disetujui Oleh
Prodi D-3 Fisika FMIPA USU
Ketua, Pembimbing,
Dr. Susilawati, M.Si Dr. Kerista Tarigan, M.Eng.Sc NIP. 197412072000122001 NIP. 196002031986011001
(4)
PERNYATAAN
Komparasi Dengan dan Tanpa Pengkondisi Sinyal Pada
Sensor LM35 Berbasis Mikrokontroler ATMega32
TUGAS AKHIR
Saya mengakui bahwa tugas akhir ini adalah hasil karya sendiri. Kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 28 Juli 2015
HIDAYATI IRSAN NIM. 122408041
(5)
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Kuasa, dengan limpahan berkat-NYA penyusunan proyek ini dapat diselesaikan dalam waktu yang ditetapkan.
Ucapan terima kasih penulis sampaikan kepada berbagai pihak yang telah banyak membantu penulis dalam penyelesaian Tugas Akhir ini yaitu kepada:
1. Bapak Prof. Dr. Sutarman, M.Sc, selaku Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
2. Ibu Dr. Marpongahtun, M.Sc selaku Pembantu Dekan I Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara. 3. Ibu Dr. Susilawati, M.Si selaku ketua Program Studi D-3 Fisika Fakultas
Matematika dan Ilmu Pengetahuan Alam universitas Sumatera Utara. 4. Bapak Dr. Ferdinan Sinuhaji, MS selaku sekertaris program studi D3
Fisika FMIPA USU.
5. Bapak Dr.Kerista Tarigan, MEng.Sc, selaku pembimbing yang telah membimbing saya dan mengarahkan kepada penulis dalam menyelesaikan Tugas Akhir ini.
6. Seluruh Staf Pengajar / Pegawai program studi fakultas MIPA Universitas Sumatera Utara.
7. Ayahanda dan Ibunda tercinta yang telah memberikan bantuan berupa dukungan moril dan materil yang sangat membantu dalam menyelesaikan Laporan Proyek ini.
8. Senior kami Fathurrahman yang telah memberikan bantuan berupa ilmu dan motivasi dalam menyelesaikan Laporan Proyek ini.
(6)
9. Kepada semua rekan-rekan Fisika Instrumentasi 2012 yang memberikan bantuan penulis untuk menyelesaikan Tugas Akhir ini.
10.Semua pihak yang turut membantu dalam pengerjakan Tugas Akhir yang tidak dapat disebutkan satu persatu.
Penulis menyadari dalam penyusunan tugas akhir ini masih terdapat kekurangan dan masih jauh dari kesempurnaan. Oleh karena itu, penulis sangat terbuka terhadap saran maupun kritikan dalam sebuah diskusi yang membangun dari pembaca.
Akhir kata penulis ucapkan terima kasih kepada semua pihak yang telah membantu saya dalam menyelesaikan tugas akhir ini.
Medan, Juli 2015
(7)
KOMPARASI DENGAN DAN TANPA PENGKONDISI SINYAL PADA SENSOR LM35 BERBASIS MIKROKONTROLER ATMega32
ABSTRAK
Penelitian ini bertujuan untuk mengetahui prinsip kerja dari data Komparasi sensor suhu berbasis mikrokontroler ATmega32 dengan personal computer (PC) sebagai tampilan. Metode yang digunakan dalam penelitian ini adalah metode merancang simulasi alat untuk mendeteksi dan merekam data-data suhu di dalam sebuah ruangan atau suhu benda-benda dalam setiap detik. Oleh karena itu, data loging untuk sensor suhu, berfungsi sebagai pencatat data suhu dan menampilkan hasil pencatatan suhu secara terus-menerus melalui monitor PC. Sensor suhu yang digunakan adalah tipe LM35, yang membaca suhu dengan range pengukuran dari 0°C sampai 80 °C. Kemudian hasil pembacaan suhu dikirim ke mikrokontroler ATmega32 untuk diproses sebelum dikirim melalui USB to TTL menuju ke monitor PC untuk ditampilkan dalam bentuk tabel. Untuk membuat database dan tampilan pada layar monitor digunakan software Visual Basic 6.0. Dari hasil pengujian data logging sensor suhu ini dapat digunakan untuk mengukur suhu ruangan dan suhu suatu benda dengan kenaikan/penurunan suhu sebesar 0,5 °C dan ditambah dengan penguatan sebanyak 6 kali dengan IC Op Amp 741 maka dapat diakurasi 0.083 V. Error dari pengukuran sensor adalah 1,02%.
(8)
DAFTAR ISI
Halaman
PENGHARGAAN ... i
ABSTRAK ... iii
DAFTAR ISI ... iv
DAFTAR TABEL ... vi
DAFTAR GAMBAR ... vii
BAB I. PENDAHULUAN... 1
1.1 Latar Belakang Masalah ... 2
1.2 Rumusan Masalah ... 2
1.3 Tujuan Penulisan ... 3
1.4 Batasan Masalah ... 3
1.5 Sistematika Penulisan ... 3
BAB II. LANDASAN TEORI ... 6
2.1 Mikrokontroller ATMega32 ... 6
2.1.1 Arsitektur Mkrokontroler AVR ATmega32 ... 7
2.1.2 Konfigurasi Pin ATmega32 ... 9
2.1.3 Deskripsi pin-pin pada Mikrokontroler ATmega32 ... 10
2.1.4 Peta Memory ATMega32 ... 15
2.2 LCD (Liquid Crystal Display) ... 18
2.2.1 Pengendali / Kontroler LCD (Liquid Cristal Display) ... 20
2.2.2 Konfigurasi Pin LCD (Liquid Cristal Display) ... 21
2.3 Sensor Suhu LM35 ... 25
2.3.1 Spesifikasi Sensor Suhu LM35 ... 26
2.4 IC Op-Amp LM 741 ... 26
2.4.1 Spesifikasi IC Op-Amp LM 741 ... 27
2.4.2 Konfigurasi Pin IC Op-Amp 741 ... 28
2.4.3 Jenis Kapasitor Yang Digunakan ... 33
2.5 WTV020-SD Modul Suara Kartu SD ... 30
2.7 Bahasa Pemograman C ... 32
2.7.1 Struktur Bahasa C ... 34
2.7.2 Pengenal ... 34
2.7.3 Tipe Data ... 35
2.7.4 Konstanta Dan Variabel ... 37
2.7.5 IDENTIFIER ... 38
2.8 Pengukuran Tegangan Output LM35 Dengan dan Tanpa Pengkondisi Sinyal... 39
BAB III. PERANCANGAN DAN PEMBUATAN ... 41
3.1 Diagram Blok ... 41
(9)
3.2 Rangkaian Power Supply (PSA) ... 42
3.3 Rangkaian Mikrokontroler ATmega32... 44
3.4 Perancangan Rangkaian LCD ... 45
3.5 Rangkaian LM35 dan pengondisi sinyal/ Op Amp... 46
3.6 Rangkaian USB to TTL ... 48
3.7 Rangkaian Modul Suara Wtv 020 ... 48
3.8 FLOWCHART SISTEM ... 50
BAB IV. HASIL DAN PEMBAHASAN ... 51
4.1 Pengujian Rangkaian LM35 dan pengondisi sinyal/ Op Amp ... 51
4.2 Pengujian Rangkaian Regulator ... 52
4.3Pengujian Rangkaian Mikrokontroler ATMega32... 53
4.4 Interfacing LCD 2x16 ... 54
4.5 Pengujian Rangkaian USB to TTL ... 56
4.6 Pengujian Rangkaian Modul Suara WTV 020 ... 60
BAB V. KESIMPULAN DAN SARAN ... 61
5.1 Kesimpulan ... 61
5.2 Saran... 62
DAFTAR PUSTAKA ... 63
(10)
DAFTAR TABEL
Tabel 2.1 Operasi Dasar LCD ... 22
Tabel 2.2 Konfigurasi Pin LCD ... 22
Tabel 2.3 Konfigurasi LCD ... 23
Tabel 2.4 Tipe Data ... 37
Tabel 4.1 Pengujian Rangkaian LM35 dan pengondisi sinyal/Op Amp .... 51
Tabel 4.1.1 Pengujian Rangkaian LM35 Dengan dan Tanpa Pengkondisi Sinyal ... 52
(11)
DAFTAR GAMBAR
Gambar 2.1 Arsitektur AVR ATMega8532 ... 8
Gambar 2.2 Konfigurasi Pin Mikrokontroler ATMega8532 ... 10
Gambar 2.3 Organisasi memori ATMega8532... 15
Gambar 2.4 (a) Register I/O Sebagai Memori Data ... 17
(b) Register I/O sebagai I/O ... 17
Gambar 2.5 LCD (Liquid Crystal Display) ... 18
Gambar 2.6 Konfigurasi Pin LCD (Liquid Cristal Display) ... 21
Gambar 2.7 Sensor Suhu LM 35 ... 25
Gambar 2.8 Spesifikasi Sensor Suhu LM 35 ... 26
Gambar 2.9 Bentuk Op-Amp LM 741 ... 27
Gambar 2.10 Konfigurasi Pin Op-Amp 741 ... 28
Gambar 3.1 Diagram Blok ... 41
Gambar 3.2 Rangkaian Power Supplay Adaptor (PSA)... 43
Gambar 3.3 Rangkaian sistem minimum mikrokontroler ATMEGA32 .... 44
Gambar 3.4. Rangkaian LCD... 46
Gambar 3.5 Rangkaian LM35 dan Op Amp ... 47
Gambar 3.6 Rangkaian USB to TTL ... 48
Gambar 3.7 Rangkaian Modul Suara WTV 020... 48
Gambar 3.9 FLOWCHART SYSTEM ... 50
Gambar 4.1 Gambar tegangan output ic regulator 7805... 53
(12)
KOMPARASI DENGAN DAN TANPA PENGKONDISI SINYAL PADA SENSOR LM35 BERBASIS MIKROKONTROLER ATMega32
ABSTRAK
Penelitian ini bertujuan untuk mengetahui prinsip kerja dari data Komparasi sensor suhu berbasis mikrokontroler ATmega32 dengan personal computer (PC) sebagai tampilan. Metode yang digunakan dalam penelitian ini adalah metode merancang simulasi alat untuk mendeteksi dan merekam data-data suhu di dalam sebuah ruangan atau suhu benda-benda dalam setiap detik. Oleh karena itu, data loging untuk sensor suhu, berfungsi sebagai pencatat data suhu dan menampilkan hasil pencatatan suhu secara terus-menerus melalui monitor PC. Sensor suhu yang digunakan adalah tipe LM35, yang membaca suhu dengan range pengukuran dari 0°C sampai 80 °C. Kemudian hasil pembacaan suhu dikirim ke mikrokontroler ATmega32 untuk diproses sebelum dikirim melalui USB to TTL menuju ke monitor PC untuk ditampilkan dalam bentuk tabel. Untuk membuat database dan tampilan pada layar monitor digunakan software Visual Basic 6.0. Dari hasil pengujian data logging sensor suhu ini dapat digunakan untuk mengukur suhu ruangan dan suhu suatu benda dengan kenaikan/penurunan suhu sebesar 0,5 °C dan ditambah dengan penguatan sebanyak 6 kali dengan IC Op Amp 741 maka dapat diakurasi 0.083 V. Error dari pengukuran sensor adalah 1,02%.
(13)
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Pada era modern ini, perkembangan teknologi elektronika berkembang dengan pesat. Salah satu komponen elektronika yang berkembang pesat tersebut adalah sensor dan pengendali mikro single-board. Meskipun terdapat beraneka ragam sensor, kebanyakan sensor terutamasensor suhu memiliki rentang terukur yang sempit serta akurasi yang rendah namun memiliki biaya yang tinggi. Disamping itu, terdapat banyak pengendali mikro single-board yang tidak berbasis open source sehingga sangat sulit untuk membuatnya. Alat ini dibuat dengan menggunakan aplikasi dari Mikrokontroler ATMega32, karena hal ini dapat mempermudah dalam penggunaannya untuk mengontrol sebuah alat. Selain karena bentuk fisiknya yang kecil sehingga dapat dibawa kemana saja, harganya yang cukup relatif murah dan dapat langsung bekerja apabila mendapat tegangan dan apabila sudah terdapat program di dalamnya. Mikrokontroler ini juga memiliki kelebihan lain diantaranya adalah dapat langsung berinteraksi (memberikan tegangan pengontak ).
Dimana range suhu yang terukurnya cukup lebar dan memiliki akurasi yang cukup tinggi serta tergolong ekonomis. Dalam penulis membuat sebuah alat pengontrol suhu ruangan dengan menggunakan Mikrokontroler ATMega32 dan menampilkannya dengan menggunakan LCD untuk tugas proyek dengan beberapa aplikasi diantaranya pengontrolan penguatan tegangan suhu agar mendapatkan nilai akurasi dan ketepatan. Alasan utama pemilihan mikrokontroler AVR sendiri
(14)
karena merupakan generasi terbaru dari produk sebelumnya, yang mengalami penyempurnaan untuk mempermudah pengisian program. Dengan menggunakan sistem ISP (In – system Programming). Selain itu jumlah port paralel yang digunakan sebagai jalur masukan dan keluaran menjadi lebih banyak. Para desainer sistem elektronika telah diberi suatu teknologi yang memiliki kapabilitas yang sangat maju, tetapi dengan biaya ekonomis yang cukup minimal. Berdasarkan latar belakang tersebut, Penulisan Tugas Akhir dengan judul “Komparasi Dengan dan Tanpa Pengkondisi Sinyal Pada Sensor LM35
Berbasis Mikrokontroler ATMega32.”.
1.2 Rumusan Masalah
Dalam merancang dan membuat Komparasi Dengan dan Tanpa Pengkondisi Sinyal Pada Sensor LM35 Berbasis Mikrokontroler ATMega32.
Penulis akan membahas dan menganalisa rangkaian tersebut secara blok per blok. Komponen yang di gunakan dalam perancangan akan di bahas fungsinya secara umum dan karakteristik tidak di bahas. Perencanaan dan analisa rangkaian, di jelaskan secara blok perblok. Tidak di bahas bagaimana cara pembuatan program dan hasilnya hanya sekilas tentang bagaimana program tersebut berkerja.
1.3 Tujuan Penulisan
Adapun Tujuan dari penulisan tugas akhir ini sebagai berikut:
1. Untuk Pengembangan kreatifitas mahasiswa dalam bidang ilmu instrumentasi pengontrolan dan elektronika sebagai bidang diketahui. 2. Memanfaatkan Sensor LM35 untuk mendeteksi tegangan seakurasi
(15)
3. Untuk membandingkan hasil sensor LM35 sebelum dan sesudah dibuffering
1.4 Batasan Masalah
Dalam perencanaan penulisan ini terdapat beberapa batasan masalah sebagai berikut:
1. Rangakaian Mikrokontroller yang di gunakan adalah mikrokontroller ATMega32.
2. Sensor yang di gunakan adalah Sensor LM35 dan LM741.
1.5 Sistematika Penulisan
Untuk mempermudah pembahasan dan penulisan laporan ini, penulis membuat susunan bab – bab yang membentuk laporan ini dalam sistematika penulisan tugas akhir dengan urutan sebagai berikut:
BAB 1 PENDAHULUAN
Dalam bab ini berisikan mengenai latar belakang, rumusan masalah, tujuan penulisan, batasan masalah, serta sistematika penulisan.
BAB 2 LANDASAN TEORI
Dalam bab ini dijelaskan tentang teori pendukung yang digunakan untuk pembahasan dan cara kerja dari rangkaian dan bahasa program yang digunakan, serta karakteristik dari komponen-komponen pendukung.
(16)
BAB 3 PERANCANGAN DAN PEMBUATAN
Bab ini berisikan tentang proses perancangan dan pembuatan alat. Mulai dari peancangan dan pembuatan system secara hardware atau software
BAB 4 HASIL DAN PEMBAHASAN
Dalam bab ini akan dibahas hasil analisa dari rangkaian dan sistem kerja alat, penjelasan mengenai rangkaian-rangkaian yang digunakan, penjelasan mengenai program yang diisikan ke mikrokontroller ATMega32
BAB 5 KESIMPULAN DAN SARAN
Dalam bab ini menjelaskan kesimpulan dan saran dari alat ataupun data yang dihasilkan dari alat. Bab ini juga merupakan pengembangan tugas akhir ini di masa mendatang.
(17)
BAB II
LANDASAN TEORI
Dalam Bab ini penulis akan membahas tentang komponen- komponen yang di gunakan dalam seluruh unit alat ini. Agar pembahasan tidak melebar dan menyimpang dari topik utama laporan ini, maka setiap komponen hanya di bahas sesuai fungsi nya pada masing- masing unit nya.
2.1 Mikrokontroller ATMega32
Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah chip. Di dalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil RAM, memori program, atau keduanya), dan perlengkapan input output. Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiahnya bisa disebut “pengendali kecil” dimana sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung, mikrokontroler bisa mereduksi komponen IC TTL dan CMOS yang seringkali masih diperlukan untuk aplikasi kecepatan tinggi atau sekedar menambah jumlah saluran masukan dan keluaran (I/O). Dengan kata lain, mikrokontroler adalah versi mini atau mikro dari sebuah komputer karena mikrokontroler sudah mengandung beberapa periferal yang langsung bisa dimanfaatkan, misalnya port paralel, port serial, komparator, konversi digital ke analog (DAC), konversi analog ke digital dan sebagainya hanya menggunakan sistem minimum yang tidak rumit atau kompleks.
(18)
2.1.1 Arsitektur Mikrokontroler AVR ATMega32
Mikrokontroler AVR ATMega32 merupakan sebuah mikrokontroler low power CMOS 8 bit berdasarkan arsitektur AVR RISC. Mikrokontroler ini memiliki karakteristik sebagai berikut.
1. Menggunakan arsitektur AVR RISC
• 131 perintah dengan satuclock cycle
• 32 x 8 register umum 2. Data dan program memori
• 32 KbIn-System Programmable Flash
• 2 Kb SRAM
• 1 KbIn- System EEPROM 3. 8Channel 10-bit ADC
4. Two Wire Interface
5. USART Serial Communication 6. Master/Slave SPI Serial Interface 7. On-Chip Oscillator
8. Watch-dog Timer 9. 32Bi-directionalI/O
10.Tegangan operasi 2,7 – 5,5 V
Arsitektur AVR ini menggabungkan perintah secara efektif dengan 32 register umum. Semua register tersebut langsung terhubung dengan Arithmetic Logic Unit (ALU) yang memungkinkan 2 register terpisah diproses dengan satu perintah tunggal dalam satu clock cycle. Hal ini menghasilkan kode yang efektif dan kecepatan prosesnya 10 kali lebih cepat dari pada mikrokontroler CISC biasa.
(19)
Gambar 2.1 Arsitektur AVR ATMega32
2.1.2 Konfigurasi Pin Mikrokontroler ATMega32
Mikrokontroler ATMega32 memiliki 40 pin untuk model PDIP ditunjukkan pada Gambar 2.2, dan 44 pin untuk model TQFP dan PLCC. Nama-nama pin pada mikrokontroler ini adalah :
1. VCC merupakan pin yang berfungsi sebagai pin masukan catu daya digital.
2. GND merupakan pin ground untuk catu daya digital.
3. Port A (PA0...PA7) merupakan pin I/O 8bit dua arah(bi-directional) dan pin masukan 8 chanel ADC.
(20)
4. Port B (PB0 – PB7) merupakan akan pin I/O 8 bit dua arah (bi-directional)dengan resistor pull-up internal dan pin fungsi khusus, yaitu sebagai Timer/Counter, komperator analog dan SPI.
5. Port C (PC0 – PC7) merupakan pin I/O 8bit dua arah (bi-directional)dan pin fungsi khusus, yaitu TWI, komperator analog, input ADC dan Timer Osilator.
6. Port D (PD0 – PD7) merupakan pin I/O 8 bit dua arah(bi-directional) dan pin fungsi khusus, yaitu komperator analog, interupsi eksternal dan komunikasi serial.
7. RESET merupakan pin yang digunakan untuk mereset mikrokontroler.
8. XTAL1 merupakan input ke penguat osilator pembalik dan input ke internal clock.
9. XTAL2 merupakan out put dari penguat oslator pembalik.
10. AVCC merupakan pin masukan tegangan untuk ADC yang terhubung ke portA.
(21)
Gambar 2.2 Konfigurasi Pin Mikrokontroler ATMega32
2.1.3 Deskripsi Pin-Pin Pada Mikrokontroler ATMega32
1. Port A
Merupakan 8-bit dua arah bi-directional port I/O,dengan menggunakan resistor pull-up internal dimana setiap pinnya dapat diatur per bit. Output buffer Port A dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port A (DDRA) harus disetting terlebih dahulu sebelum Port A digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, kedelapan pin port A juga digunakan untuk masukan8 channel ADC.
2. Port B
Merupakan 8-bit dua arah(bi-directional) port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port B dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port B (DDRB) harus disetting terlebih dahulu
(22)
sebelum Port B digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang bersesuaian sebagai input, atau diisi 1 jika sebagai output.Selain sebagai port I/O 8 bit port B juga dapat difungsikan secara individu sebagai berikut:
• PB7: SCK ( SPI Bus Serial Clock)
• PB6: MISO( SPI Bus Master Input/ Slave Out put)
• PB5: MOSI( SPI Bus Master Output/Slave Input).
• PB4: SS (SPI Slave Select Input)
• PB3: AIN1(Analog Comparator Negatif Input) OC0 (Out put Compare Timer/counter 0)
• PB2: AIN0 (Analog Comparator Positif Input) INT2 (External Interrupt 2 Inpt)
• PB1:T1 (Timer/Counter 1 External Counter Input)
• PB0:T0 (Timer/Counter 0 External Counter Input) XCK (USART External Clock Input/Output)
3. Port C
Merupakan port I/O 8-bit dua arah (bi-directional). Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port C dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port C (DDRC) harus disetting terlebih dahulu sebelum Port C digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin port C yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, Port C juga difungsikan secara individu sebagai berikut:
(23)
• PC6: TOSC1 (Timer Oscillator 1)
• PC1: SDA (Serial Data Input/Output)
• PC0: SCI (Serial Clock) 4. Port D
Merupakan Port I/O 8-bit dua arah (bi-directional) . Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port D dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port D (DDRD) harus disetting terlebih dahulu sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin port D juga memiliki untuk fungsi-fungsi alternatif khusus sebagai berikut:
• PD7: OC2 ( Ouput Compare Timer/Counter 1)
• PD6: ICP1 ( Timer Counter 1 input capture)
• PD5: OC1A ( Output Compare A Timer /Counter1)
• PD4: OC1B ( Output Compare B Timer/Counter 1)
• PD3: INT1 ( External Interrupt 1 Input)
• PD2: INT0 ( External interrupt 0 Input)
• PD1: TXD ( USART Transmit)
• PD0: RXD ( USART Receive) 5. RESET
RST pada pin 9 merupakan pin reset yang akan bekerja bira diberi pulsa rendah (aktif Low) selama minimal 1,5us.
(24)
6. XTAL2
Merupakan out put dari penguat dari osilator pembalik 7. XTAL1
Merupakan input ke penguat osilator pembalik dan input ke internal clock.
8. AVCC
Avcc adalah pin masukan catu daya yang digunakan untuk masukan analog ADC yang terhubung ke Port A. Kaki ini harus secara eksternal terhubung ke Vcc melalui lowpass filter.
9. AREF
AREF adalah pin masukan referensi analog untuk ADC. Untuk operasionalisasi ADC, suatu level tegangan antara AGND dan Avcc harus dibeikan ke kaki ini.
10.AGND
AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND, kecuali jika board memiliki anlaog ground yang terpisah.
(25)
2.1.4 Peta Memori Mikrokontroler ATMega32
Mikrokontroller ATMega32 memiliki 3 jenis memori yaitu memori program, memori data dan memori EEPROM. Ketigannya memiliki ruang-ruang tersendiri dan terpisah seperti terlihat pada gambar 2.3
Gambar 2.3 Organisasi memori ATMega32
1. Memori Program
ATMega32 memiliki kapasitas memori program sebesar 8 Kbyte yang terpetakan dari alamat 0000h – 0FFFh dimana masing-masing alamat memiliki lebar data sebesar 16 bit.Sehingga organisasi memori program seperti ini sering dituliskan dengan 4K x 16 bit.Memori program ini juga terbagi menjadi dua yaitu program boot dan juga bagian program aplikasi. 2. Memori Data
ATMega32 memiliki kapasitas memori data sebesar 608 byte yang terbagi menjadi 3 bagian yaitu register serba guna,register I/O dan SRAM. 32 byte alamat terendah digunakan untuk register serbaguna yaitu R0 –
(26)
R31. 64 byte berikut nya digunakan untuk register I/O yang digunakan untuk mengatur fasilitas timer /counter, interrupsi, ADC, USART, SPI, EEPROM dan port I/O seperti Port A, Port B, Port C, dan Port D. Selanjutnya 512 byte diatasnya digunakan untuk memory data SRAM .
Jika register-register I/O diatas diakses seperti mengakses data pada memori ( Jika kita menggunakan instruksi LD atau ST ) maka register I/O diatas menempati alamat 0020-005F. Tetapi jika register-register I/O diakses seperti mengakses I/O pada umumnya (menggunakan instruksi IN/IOUT) maka register I/O diatas menempati alamat memori 0000h – 003Fh.
Gambar 2.4 (a) Register I/O Sebagai Memori Data, (b) Register I/O
sebagai I/O
3. Memori Data EEPROM
ATMega35 memiliki memori EEPROM sebesar 512 byte yang terpisah dari memori program maupun dari memori data. Memori
(27)
EEPROM ini hanaya dapat diakses dengan menggunakan register-register I/O yaitu register EEPROM Addres ( EEARH-EEARL), register EEPROM Data (EEDR) dan register EEPROM control ( EECR). Untuk megakses memory EEPROM ini diperlakukan sperti mengakses data eksternal sehingga waktu dari eksekusi relatif lebih lama dibadingkan jika kita mengakses data dari SRAM.
2.2 LCD (Liquid Crystal Display)
LCD (Liquid Cristal Display) adalah salah satu jenis display elektronik yang dibuat dengan teknologi CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi memantulkan cahaya yang ada di sekelilingnya terhadap front-lit atau mentransmisikan cahaya dari back-lit. LCD (Liquid Cristal Display) berfungsi sebagai penampil data baik dalam bentuk karakter, huruf, angka ataupun grafik. LCD adalah lapisan dari campuran organik antara lapisan kaca bening dengan elektroda transparan indium oksida dalam bentuk tampilan seven-segment dan lapisan elektroda pada kaca belakang. Ketika elektroda diaktifkan dengan medan listrik (tegangan), molekul organik yang panjang dan silindris menyesuaikan diri dengan elektroda dari segmen. Lapisan sandwich memiliki polarizer cahaya vertikal depan dan polarizer cahaya horisontal belakang yang diikuti dengan lapisan reflektor. Cahaya yang dipantulkan tidak dapat melewati molekul-molekul yang telah menyesuaikan diri dan segmen yang diaktifkan terlihat menjadi gelap dan membentuk karakter data yang ingin ditampilkan.
(28)
Gambar 2.5 LCD (Liquid Crystal Display)
LCD memanfaatkan silicon atau gallium dalam bentuk Kristal cair sebagai pemendar cahaya. Pada layar LCD, setiap matrik adalah susunan dua dimensi piksel yang dibagi dalam baris dan kolom. Dengan demikian, setiap pertemuan baris dan kolom adalah sebuah LED terdapat sebuah bidang latar (backplane), yang merupakan lempengan kaca bagian belakang dengan sisi dalam yang ditutupi oleh lapisan elektroda trasparan. Dalam keadaan normal, cairan yang digunakan memiliki warna cerah. Daerah-daerah tertentu pada cairan akan berubah warnanya menjadi hitam ketika tegangan diterapkan antara bidang latar dan pola elektroda yang terdapat pad sisi dalam lempeng kaca bagian depan.
Keunggulan LCD adalah hanya menarik arus yang kecil (beberapa microampere), sehingga alat atau sistem menjadi portable karena dapat menggunakan catu daya yang kecil. Keunggulan lainnya adalah tampilan yang diperlihatkan dapat dibaca dengan mudah di bawah terang sinar matahari. Di bawah sinar cahaya yang remang-remang dalam kondisi gelap, sebuah lampu (berupa LED) harus dipasang dibelakang layar tampilan.
LCD yang digunakan adalah jenis LCD yang mena mpilkan data dengan 2 baris tampilan pada display. Keuntungan dari LCD ini adalah :
1. Dapat menampilkan karakter ASCII, sehingga dapat memudahkan untuk membuat program tampilan.
(29)
2. Mudah dihubungkan dengan port I/O karena hanya mengunakan 8 bit data dan 3 bit control.
3. Ukuran modul yang proporsional.
4. Daya yang digunakan relative sangat kecil.
2.2.1 Pengendali / Kontroler LCD (Liquid Cristal Display)
Dalam LCD (Liquid Cristal Display) terdapat mikrokontroler yang berfungsi sebagai pengendali tampilan karakter LCD (Liquid Cristal Display). mikrokontroler pada suatu LCD (Liquid Cristal Display) dilengkapi dengan memori dan register.
1. Memori yang digunakan mikrokontroler internal LCD adalah:
• DDRAM (Display Data Random Access Memory) merupakan memori tempat karakter yang akan ditampilkan berada.
• CGRAM (Character Generator Random Access Memory) merupakan memori untuk menggambarkan pola sebuah karakter dimana bentuk dari karakter dapat diubah-ubah sesuai dengan keinginan.
• CGROM (Character Generator Read Only Memory) merupakan memori untuk menggambarkan pola sebuah karakter dimana pola tersebut merupakan karakter dasar yang sudah ditentukan secara permanen oleh pabrikan pembuat LCD (Liquid Cristal Display) tersebut sehingga pengguna tinggal mangambilnya sesuai alamat memorinya dan tidak dapat merubah karakter dasar yang ada dalam CGROM.
(30)
2. Register control yang terdapat dalam suatu LCD diantaranya adalah:
• Register perintah yaitu register yang berisi perintah-perintah dari mikrokontroler ke panel LCD (Liquid Cristal Display) pada saat proses penulisan data atau tempat status dari panel LCD (Liquid Cristal Display) dapat dibaca pada saat pembacaan data.
• Register data yaitu register untuk menuliskan atau membaca data dari atau keDDRAM. Penulisan data pada register akan menempatkan data tersebut keDDRAM sesuai dengan alamat yang telah diatur sebelumnya.
2.2.2 Konfigurasi Pin LCD (Liquid Cristal Display)
Gambar 2.6 Konfigurasi Pin LCD (Liquid Cristal Display)
Operasi dasar pada LCD terdiri dari empat, yaitu instruksi mengakses proses internal, instruksi menulis data, instruksi membaca kondisi sibuk, dan instruksi membaca data. ROM pembangkit sebanyak 192 tipe karakter, tiap karakter dengan huruf 5x7 dot matrik. Kapasitas pembangkit RAM 8 tipe karakter (membaca program), maksimum pembacaan 80x8 bit tampilan data. Perintah
(31)
utama LCD adalah Display Clear, Cursor Home, Display ON/OFF, Display Character Blink, Cursor Shift, dan Display Shift. Tabel 2.2 menunjukkan operasi dasar LCD.
Tabel 2.1 Operasi Dasar LCD
RS R/W Operasi
0 0 Input Instruksi ke LCD
0 1 Membaca Status Flag (DB7) dan alamat counter (DB0 ke DB6)
1 0 Menulis Data
1 1 Membaca Data
Tabel 2.2 Konfigurasi Pin LCD
No. Pin Keterangan Konfigurasi Hubung
1 GND Ground
2 VCC Tegangan +5VDC
3 VEE Ground
4 RS Kendali RS
5 RW Ground
6 E Kendali E/Enable
7 D0 Bit 0
8 D1 Bit 1
9 D2 Bit 2
10 D3 Bit 3
11 D4 Bit 4
12 D5 Bit 5
13 D6 Bit 6
14 D7 Bit 7
15 A Anoda (+5VDC)
(32)
Tabel 2.3 Konfigurasi LCD
Pin Bilangan Biner Keterangan
RS 0 Inisialisasi
1 Data
RW 0 Tulis LCD / W (write)
1 Baca LCD / R (read)
E 0 Pintu data terbuka
1 Pintu data tertutup
Diode adalah komponen aktif dua kutub yang pada umumnya bersifat semikonduktor, yang memperbolehkan arus listrik mengalir ke satu arah (kondisi panjar maju) dan menghambat arus dari arah sebaliknya (kondisi panjar mundur). Diode dapat disamakan sebagai fungsi katup di dalam bidang elektronika. Diode sebenarnya tidak menunjukkan karakteristik kesearahan yang sempurna, melainkan mempunyai karakteristik hubungan arus dan tegangan kompleks yang tidak linier dan seringkali tergantung pada teknologi LCD membutuhkan tegangan dan daya yang kecil sehingga sangat popular untuk aplikasi pada kalkulator, arloji digital, dan instrument elektronika lain seperti Global Positioning System (GPS), baragraph display dan multimeter digital. LCD umumnya dikemas dalam bentuk Dual In Line Package (DIP) dan mempunyai kemampuan untuk menampilkan beberapa kolom dan baris dalam satu panel. Untuk membentuk pola, baik karakter maupun gambar pada kolom dan baris secara bersamaan digunakan metode Screening.
Metode screening adalah mengaktifkan daerah perpotongan suatu kolo dan suatu baris secara bergantian dan cepat sehingga seolah-olah aktif semua. Penggunaan metode ini dimaksudkan untuk menghemat jalur yang digunakan
(33)
untuk mengaktifkan panel LCD. Saat ini telah dikembangkan berbagai jenis LCD, mulai jenis LCD biasa, Passive Matrix LCD (PMLCD), hingga Thin-Film Transistor Active Matrix (TFT-AMLCD). Kemampuan LCD juga telah ditingkatkan daru yang monokrom hingga yang mampu menampilkan ribuan warna.
2.3 Sensor Suhu LM 35
Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan. Sensor Suhu LM35 yang dipakai dalam penelitian ini berupa komponen elektronika elektronika yang diproduksi oleh National Semiconductor. Sensor LM35 bekerja dengan mengubah besaran suhu menjadi besaran tegangan. Tegangan ideal yang keluar dari LM35 mempunyai perbandingan 100°C setara dengan 1 volt. Sensor ini mempunyai pemanasan diri (self heating) kurang dari 0,1°C, dapat dioperasikan dengan menggunakan power supply tunggal dan dapat dihubungkan antar muka (interface) rangkaian control yang sangat mudah.
IC LM 35 sebagai sensor suhu yang teliti dan terkemas dalam bentuk Integrated Circuit (IC), dimana output tegangan keluaran sangat linear terhadap perubahan suhu. Sensor ini berfungsi sebagai pegubah dari besaran fisis suhu ke besaran tegangan yang memiliki koefisien sebesar 10 mV /°C yang berarti bahwa kenaikan suhu 1° C maka akan terjadi kenaikan tegangan sebesar 10 mV.
(34)
Gambar 2.7 Sensor Suhu LM 35
2.3.1 Spesifikasi Sensor Suhu LM 35
Gambar 2.8 Spesifikasi Sensor Suhu IC LM 35
Sensor suhu LM 35 ini tidak memerlukan pengkalibrasian atau penyetelan dari luar karena ketelitiannya sampai lebih kurang seperempat derajat celcius pada temperature ruang. Jangka sensor mulai dari – 55°C sampai dengan 150°C, IC LM35 penggunaannya sangat mudah, difungsikan sebagai kontrol dari indicator tampilan catu daya terbelah. IC LM 35 dapat dialiri arus 60 µ A dari supplay sehingga panas yang ditimbulkan sendiri sangat rendah kurang dari 0 ° C di dalam suhu ruangan. Untuk mendeteksi suhu digunakan sebuah sensor suhu LM35 yang dapat dikalibrasikan langsung dalam C (celcius), LM35 ini difungsikan sebagai basic temperature sensor.
(35)
2.4 IC Op-Amp LM 741
Penguat operasional (Op-Amp) adalah suatu blok penguat yang mempunyai dua masukan dan satu keluaran. Penguat operasional (Op-Amp) dikemas dalam suatu rangkaian terpadu (integrated circuit-IC). Salah satu tipe operasional amplifier (Op-Amp) yang populer adalah LM741. IC LM741 merupakan operasional amplifier yang dikemas dalam bentuk dual in-line package (DIP). Kemasan IC jenis DIP memiliki tanda bulatan atau strip pada salah satu sudutnya untuk menandai arah pin atau kaki nomor 1 dari IC tersebut. Penomoran IC dalam kemasan DIP adalah berlawanan arah jarum jam dimulai dari pin yang terletak paling dekat dengan tanda bulat atau strip pada kemasan DIP tersebut.
Gambar 2.9 Bentuk IC Op-Amp LM 741
2.4.1 Spesifikasi IC Op-Amp LM 741
Op-Amp memiliki karakteristik sebagai berikut:
• Impedansi Input (Zi) besar
• Impedansi Output (Z0) kecil= 0 Penguatan Tegangan (Av) tinggi
• Band Width respon frekuensi lebar
(36)
• Karakteristik operasional amplifier (Op-Amp) tidak tergantung temperatur /suhu.
Op-amp ini digunakan untuk membentuk fungsi-fungsi linier yang bermacam-mcam atau dapat juga digunakan untuk operasi-operasi tak linier, dan seringkali disebut sebagai rangkaian terpadu linier dasar. Penguat operasional (Op-Amp) merupakan komponen elektronika analog yang berfungsi sebagai amplifier multiguna dalam bentuk IC.
2.4.2 Konfigurasi Pin IC Op-Amp 741
Gambar 2.10 Konfigurasi Pin IC Op-Amp 741
Keterangan:
• Jumlah pin ada 8
• Terdapat satu channel penguat
• Input pembalik di pin 2
• Input bukan pembalik di pin 3
• Output di pin 6
• Pin 4 adalah jalur catu negatif (-)
• Pin 7 adalah jalur catu positif (+).
Pada IC ini terdapat dua pin input, dua pin power supply, satu pin output, satu pin NC (No Connection), dan dua pin offset null. Pin offset null
(37)
memungkinkan kita untuk melakukan sedikit pengaturan terhadap arus internal di dalam IC untuk memaksa tegangan output menjadi nol ketika kedua input bernilai nol. IC LM741 berisi satu buah Op-Amp, terdapat banyak tipe IC lain yang memiliki dua atau lebih Op-Amp dalam suatu kemasan DIP. IC Op-Amp memiliki karakteristik yang sangat mirip dengan konsep Op-Amp ideal pada analisis rangkaian. Pada kenyataannya IC Op-Amp terdapat batasan-batasan penting yang perlu diperhatikan.
• Pertama, tegangan maksimum power supply tidak boleh melebihi rating maksimum, karena akan merusak IC.
• Kedua, tegangan output dari IC op amp biasanya satu atau dua volt lebih kecil dari tegangan power supply. Sebagai contoh, tegangan swing output dari suatu op amp dengan tegangan supply 15 V adalah ±13V.
• Ketiga, arus output dari sebagian besar op amp memiliki batas pada 30mA, yang berarti bahwa resistansi beban yang ditambahkan pada output op amp harus cukup besar sehingga pada tegangan output maksimum, arus output yang mengalir tidak melebihi batas arus maksimum.
Muatan-muatan positif akan mengumpul pada salah satu kaki (elektroda) metalnya dan pada saat yang sama muatan-muatan negatif terkumpul pada ujung metal yang satu lagi.
Muatan positif tidak dapat mengalir menuju ujung kutup negatif dan sebaliknya muatan negatif tidak bisa menuju ke ujung kutup positif, karena terpisah oleh bahan dielektrik yang non-konduktif. Muatan elektrik ini “tersimpan” selama tidak ada konduksi pada ujung-ujung kakinya. Kemampuan
(38)
untuk menyimpan muatan listrik pada kapasitor disebuat dengan kapasitansi atau kapasitas.
2.5 WTV020-SD modul suara kartu SD
Modul WTV020-SD adalah suara jenis modul penyimpanan suara rewritable, kapasitas maksimum dari kartu memori SD adalah 1GB. Dapat memuat suara format WAV dan ad4 format suara.
WTV020-SD modul suara menggunakan master core Chip WTV020SD-20S, dengan modus MP3 control, tombol modus satu-ke-satu kontrol (3 suara dengan suara dua), modus power control loop serta kontrol serial lini kedua modus. Modus kontrol diatur dalam chip dari persiapan sampel, tidak dapat diaktifkan selama operasi mode kontrol berbagai, seperti kebutuhan untuk menggunakan apa yang mode kontrol, Divisi I untuk membangun.
Mode MP3 kontrol: play / stop, dan yang berikutnya, pada satu, Volume +, Volume – fungsi. Tombol modus satu-ke-satu kontrol (3 paragraf suara): pemicu yang sesuai kunci suara harus bermain tiga suara dan mengatur volume fungsi pengurangan, semua tombol standar pulsa pemicu tidak mengulangi. Kunci satu-ke-satu mode kontrol (5 paragraf suara): memiliki tiga metode pengendalian
1. Semua tombol tidak retriggerable pulsa,
2. Semua tombol tidak bermain / stop pemicu (single tidak siklus); 3. Semua tombol tidak bermain / Stop (satu siklus ).
Daya loop mode kontrol: pada kekuasaan, tidak perlu memicu setiap port I/O, dan mengarahkan semua kartu memori SD suara Autoplay, dan memiliki kekuasaan dan titik fungsi memori bermain ketika power off dan kemudian
(39)
menyala secara otomatis kekuatan terakhir untuk melanjutkan pemutaran suara. Dua mode kontrol , P04 memiliki play / pause fungsi pulse, , P05 memiliki tingkat play / pause fungsi. Dua-kawat seri mode kontrol: Jam CLK dan mengirim DI baris data oleh mikrokontroler melalui data control modul WTV020-SD. Bebas untuk bermain suara alamat. Kombinasi suara bermain keadaan ini, dapat dilakukan. Suara update langsung melalui SD card reader pada penggantian PC. Modul ini mendukung sistem file FAT. Dukungan 6KHz ke 32KHz, 36KHz sampling rate ad4 suara dan 6KHz ~ 16KHz WAV audio yang sampling rate, otomatis dapat mengenali sampling rate suara, dan format file suara.
2.7 Bahasa Pemograman C
Bahasa C dikembangkan pada Lab Bell pada tahun 1978, oleh Dennis Ritchi dan Brian W. Kernighan. Pada tahun 1983 dibuat standar C yaitu stnadar ANSI ( American National Standards Institute ), yang digunakan sebagai referensi dari berbagai versi C yang beredar dewasa ini termasuk Turbo C.
Dalam beberapa literature, bahasa C digolongkan bahasa level menenganh karena bahasa C mengkombinasikan elemen bahasa tinggi dan elemen bahasa rendah. Kemudahan dalam level rendah merupakan tujuan diwujudkanya bahasa C. pada tahun 1985 lahirlah pengembangan ANSI C yang dikenal dengan C++ (diciptakan oleh Bjarne Struostrup dari AT % TLab). Bahasa C++ adalah pengembangan dari bahasa C. bahasa C++ mendukung konsep pemrograman berorientasu objek dan pemrograman berbasis windows.
Sampai sekarang bahasa C++ terus brkembang dan hasil perkembangannya muncul bahasa baru pada tahun 1995 (merupakan keluarga C
(40)
dan C++ yang dinamakan java). Istilah prosedur dan fungsi dianggap sama dan disebut dengan fungsi saja. Hal ini karena di C++ sebuah prosedur pada dasanya adalah sebuah fungsi yang tidak memiliki tipe data kembalian (void). Hingga kini bahasa ni masih popular dan penggunaannya tersebar di berbagai platform dari windows samapi linux dan dari PC hingga main frame.
Ada pun kekurangan dan Kelebihan Bahasa C sebagai berikut : a. Kelebihan Bahasa C:
• Bahasa C tersedia hampir di semua jenis computer.
• Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis computer.
• Bahasa C hanya menyediakan sedikit kata-kata kunci. hanya terdapat 32 kata kunci.
• Proses executable program bahasa C lebih cepat
• Dukungan pustaka yang banyak.
• C adalah bahasa yang terstruktur
• Bahasa C termasuk bahasa tingkat menengah
penempatan ini hanya menegaskan bahwa c bukan bahasa pemrograman yang berorientasi pada mesin. yang merupakan ciri bahasa tingkat rendah. Melainkan berorientasi pada obyek tetapi dapat dinterprestasikan oleh mesin dengan cepat. secepat bahasa mesin. inilah salah satu kelebihan c yaitu memiliki kemudahan dalam menyusun programnya semudah bahasa tingkat tinggi namun dalam mengesekusi program secepat bahasa tingkat rendah.
(41)
b. Kekurangan Bahasa C:
• Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai.
• Bagi pemula pada umumnya akan kesulitan menggunakan pointer. 2.7.1 Struktur Bahasa C
a. Program bahasa C tersusun atas sejumlah blok fungsi.
b. Setiap fungsi terdiri dari satu atau beberapa pernyataan untuk melakukan suatu proses tertentu.
c. Tidak ada perbedaan antara prosedur dan fungsi.
d. Sstiap program bahasa C mempunyai suatu fungsi dengan nama “main” (Program Utama).
e. Fungsi bisa diletakkan diatas atau dibawah fungsin “main”. f. Setiap statemen diakhiri dengan semicolon (titik koma).
2.7.2 Pengenal
Pengenal (identifier) merupakan sebuah nama yang didefenisikan oleh pemrograman untuk menunjukkan indetitas dari sebuah konstanta, variable, fungsi, label atau tipe data khusus. Pemberian nama sebuah pengenal dapat ditentukan bebas sesuai keinginan pemrogram tetapi harus memenuhi atura berikut :
• Karakter pertama tidak boleh menggunakan angka
• Karakter kedua dapat berupa huruf, angka, atau garis bawah.
(42)
• Bersifat Case Sensitive, yaitu huru capital dan huruf kecil dianggap berbeda.
• Tidak boleh mengunakan kata – kata yang merupakan sitaks maupun operator dalam pemrograman C, misalnya : Void, short, const, if, static, bit, long, case, do, switch dll.
2.7.3 Tipe Data
Tipe data merupakan suatu hal yang penting untuk kita ketahui pada saat belajar bahasa pemrograman. Kita harus dapat menentukan tipe data yang tepat untuk menampung sebuah data, baik itu data berupa bilangan numerik ataupun karakter. Hal ini bertujuan agar program yang kita buat tidak membutuhkan pemesanan kapling memori yang berlebihan. Seorang programmer yang handal harus dapat memilih dan menentukan tipe data apa yang seharusnya digunakan dalampembuatan sebuah program. Secara garis besar tipe data pada bahasa C dibagi menjadi beberapa bagian antara lain sebagai Berikut
Macam-Macam Tipe Data Pada Bahasa C : 1. Tipe Data Karakter
Sebuah karakter, baik itu berupa huruf atau angka dapat disimpan pada sebuah variabel yang memiliki tipe data char dan unsigned char. Besarnya data yang dapat disimpan pada variabel yang bertipe data char adalah -127 - 127. Sedangkan untuk tipe data unsigned char adalah dari 0 - 255. Pada dasarnya setiap karakter memiliki nilai ASCII, nilai inilah yang sebetulnya disimpan pada variabel yang bertipe data karakter ini.
(43)
Tipe data bilangan bulat atau dapat disebut juga bilangan desimal merupakan sebuah bilangan yang tidak berkoma. Pada bahasa C terdapat bermacam-macam tipe data yang dapat kita gunakan untuk menampung bilangan bulat. Kita dapat menyesuaikan penggunaan tipe data dengan terlebih dahulu memperhitungkan seberapa besar nilai yang akan kita simpan. Contohnya seperti berikut, kiata akan melakukan operasi penjumlahan nilai 300 dan 100 dan hasilnya akan disimpan pada variabel c.
Jika dilihat, hasil dari penjumlahan tersebut nilainya akan lebih besar dari 255 dan nilainya pasti positif, oleh karena itu sebaiknya kita menggunakan tipe data unsigned int. Namun berbeda halnya jika saya ingin melakukan operasi pengurangan -5 - 300, jika dilihat hasilnya akan negatif maka selayaknya digunakan variabel dengan tipe data int.
3. Tipe Data Bilangan Berkoma
Pada bahasa C terdapat dua buah tipe data yang berfungsi untuk menampung data yang berkoma. Tipe data tersebut adalah float dan double. Double lebih memiliki panjang data yang lebih banyak dibandingkan float. Tipe data double dapat digunakan jika kita membutuhkan variabel yang dapat menampung tipe data berkoma yang bernilai besar.
(44)
Tabel 2.4 Tipe Data
Tipe Data Ukuran Jangkauan Nilai
Bit 1 byte 0 atau 1
Char 1 byte -128 s/d 127
Unsigned Char 1 byte 0 s/d 255 Signed Char 1 byte -128 s/d 127
Int 2 byte -32.768 s/d 32.767
Short Int 2 byte -32.768 s/d 32.767 Unsigned Int 2 byte 0 s/d 65.535 Signed Int 2 byte -32.768 s/d 32.767 Long Int 4 byte -2.147.483.648 s/d
2.147.483.647 Unsigned Long Int 4 byte 0 s/d 4.294.967.295 Signed Long Int 4 byte -2.147.483.648 s/d
2.147.483.647
Float 4 byte 1.2*10-38 s/d 3.4*10+38 Double 4 byte 1.2*10-38 s/d 3.4*10+38
2.7.4 Konstanta Dan Variabel
Konstanta dan variable merupakan sebuah tempat untuk menyimpan data yang berada di dalam memori. Konstanta berisi data yang nilainya tetap dan tidak dapat diubah selama program dijalankan, sedangkan variable berisi data yang bisa berubah nilainya pada saat program dijalankan.
2.7.5 IDENTIFIER
Identifier atau nama pengenal adalah nama yang ditentukan sendiri oleh pemrogram yang digunakan untuk menyimpan nilai, misalnya nama variable,
(45)
nama konstanta, nama suatu elemen (misalnya: nama fungsi, nama tipe data, dll). Identifier punya ketentuan sebagai berikut :
1. Maksimum 32 karakter (bila lebih dari 32 karakter maka yang diperhatikan hanya 32 karakter pertama saja).
2. Case sensitive: membedakan huruf besar dan huruf kecilnya.
3. Karakter pertama harus karakter atau underscore ( _ ) . selebihnya boleh angka.
4. Tidak boleh mengandung spasi atau blank.
5. Tidak boleh menggunakan kata yang sama dengan kata kunci dan fungsi.
2.8 Pengukuran Tegangan Output LM35 Dengan dan Tanpa
Menggunakan Pengkondisi Sinyal
Apabila kita ingin membaca suhu aktual dari sensor IC LM 35 ini menggunakan mikrokontroler maka kita perlu menggunakan ADC (analog to digital converter). Misalkan kita menggunakan mikrokontroler AVR Atmega32 maka kita tidak perlu menambahkan IC ADC, karena didalam mikrokontroler AVR Atmega32 sudah terdapat 8 channel ADC 10 bit, dimana port ADC terhubung dengan portA.
Apabila kita menginginkan sensor IC LM 35 ini untuk membaca suhu dengan range 0 – 100 0C maka dapat dihitung bahwa tegangan keluaran dari sensor ini berkisar antara 0V – 1 Volt ( 10mV/oC), sedangkan ADC dari mikrokontroler dapat membaca tegangan antara 0 – 5V (bila Vreff diseting 5V), maka supaya pembacaan sensor lebih teliti dengan resolusi perubahan yang halus maka keluaran tegangan dari sensor yang semula berkisar antara 0 – 1V kita buat
(46)
menjadi berkisar antara 0 – 5V dengan menggunakan rangkaian signal conditioning / pengkondisi sinyal.
Pengkondisi sinyal analog terdiri dari penguat penyangga (buffer) dan penguat non-inverting amplifier, dimana penguat penyangga berfungsi untuk merubah tegangan impedansi tinggi menjadi tegangan sama pada impedansi rendah. Karena sensor suhu LM35 menghasilkan tegangan yang berubah-ubah sesuai dengan perubahan suhu, maka penguat penyangga memastikan agar sinyal ini tidak terpengaruh oleh pembebanan dari penguat berikutnya. Dan penguat non-inverting amplifier berfungsi untuk menguatkan sinyal yang keluar dari rangkaian buffer. Dimana didalam rangkaian diatas penguatan dari rangkaian palifier ini dapat diatur dengan mengubah posisi variabel resistor 100K.
(47)
BAB III
PERANCANGAN DAN PEMBUATAN
3.1. Diagram Blok Rangkaian
Gambar 3.1 Diagram Blok
3.1.1 Fungsi Tiap Blok
1. Blok Atmega32 : Mengkonversi data dari sensor dan di kirim ke computer dan LCD
2. Blok LM35 : Sebagai Input / sensor untuk mengetahui Output dari LM35
(48)
3. Blok Penguat : Sebagai Penguatan tegangan untuk output LM35 untuk mendapatkan perbedaan tegangan
4. Blok LCD : Sebagai output tampilan
5. Blok power supply : Sebagai penyedia tegangan ke system dan Sensor
6. Blok komputer : Sebagai tampilan data akusisi
7. Blok WTV020 : Sebagai pemrosesan suara dari mikro SD. Yang di instruksi dari mikrokontroler 8. Blok Speaker : Sebagai media output suara, akan
mengeluarkan suara, yang di instruksi dari miktokontroler ke wtv020
9. Blok lampu : Sebagai sumber suhu dalam ruangan
3.2 Rangkaian Power Supplay Adaptor ( PSA )
Rangkaian ini berfungsi untuk memberikan supply tegangan ke seluruh rangkaian yang ada. Rangkaian PSA yang dibuat terdiri dari dua keluaran, yaitu 5 volt dan 12 volt, keluaran 5 volt digunakan untuk mensupplay tegangan ke seluruh rangkaian, sedangkan keluaran 12 volt digunakan untuk mensuplay tegangan ke relay. Rangkaian power supplay ditunjukkan pada gambar 3.2 berikut ini :
(49)
Gambar 3.2 Rangkaian Power Supplay Adaptor (PSA)
Trafo CT merupakan trafo stepdown yang berfungsi untuk menurunkan tegangan dari 220 volt AC menjadi 12 volt AC. Kemudian 12 volt AC akan disearahkan dengan menggunakan dua buah dioda, selanjutnya 12 volt DC akan diratakan oleh kapasitor 2200 µF. Regulator tegangan 5 volt (LM7805CT) digunakan agar keluaran yang dihasilkan tetap 5 volt walaupun terjadi perubahan pada tegangan masukannya. LED hanya sebagai indikator apabila PSA dinyalakan. Transistor PNP TIP 32 disini berfungsi untuk mensupplay arus apabila terjadi kekurangan arus pada rangkaian, sehingga regulator tegangan (LM7805CT) tidak akan panas ketika rangkaian butuh arus yang cukup besar. Tegangan 12 volt DC langsung diambil dari keluaran 2 buah dioda penyearah.
(50)
3.3. Rangkaian Mikrokontroller ATMega32
Rangkaian sistem minimum mikrokontroler ATMEGA32 dapat dilihat pada gambar di bawah ini :
Gambar 3.3Rangkaian sistem minimum mikrokontroler ATMEGA32
Dari gambar 3.3, Rangkaian 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 dan 13 dihubungkan ke XTAL 11.0592 MHz dan dua buah kapasitor 30 pF. 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 Jack 10 Pin
(51)
header 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 6, 7, 8, 9, 10 dan 11. Apabila terjadi keterbalikan pemasangan jalur ke ISP Programmer, maka pemograman mikrokontroler tidak dapat dilakukan karena mikrokontroler tidak akan bisa merespon.
3.4. Perancangan Rangkaian LCD (Liquid Crystal Display)
Pada alat ini, display yang digunakan adalah LCD (Liquid Crystal Display) 16 x 2. 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.4 berikut merupakan gambar rangkaian LCD yang dihubungkan ke mikrokontroler.
(52)
Dari gambar 3.4, rangkaian ini terhubung ke PB.0 - PB.6, 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.5. Rangkaian LM35 dan pengondisi sinyal/ Op Amp
Pada alat ini menggunakan sensor LM35 dan juga pengondisi sinyal yaitu operational amplifier (op amp), pada op amp ini ada 6 kali penguatan karena untuk R1 menggunakan 1 k ohm dan untuk Rf menggunakan 5 k ohm. Dari output sensor lm35 akan di kuatkan sebanyak 6 kali untuk mendapatkan nilai yang baik.
Rin Rf
Av = +1 ...1.1
k k Av
10 50
= +1 = 6 Kali penguatan tegangan
Gambar 3.5 rangkaian LM35 dan Op Amp
Output dari Penguatan ini akan di bandiangkan dengan output sebelum di kuatkan atau di op amp, kemudian untuk mendapatkan akurasinya kita akan
(53)
bandingkan dengan alat yang sudah standar. Output op amp di hubungkan ke rangkaian mikrokontroler di PA.1 yaitu di gunakan ADC.1.
3.6. Rangkaian USB to TTL
Pada Rangkaian ini menggunakan USB to TTL karena untuk menghubungkan ke computer, artinya untuk menghubungkan antara system ke computer.
GAMBAR 3.6 RANGKAIAN USB TO TTL
3.7. Rangkaian Modul Suara Wtv 020
(54)
Modul chip WTV-020SD membaca berkas audio/suara dalam format AD4 dengan memainkan suara yang sudah direkam sebelumnya (menggunakan komputer) dan disimpan pada media penyimpanan kartu mikro SD (file storage Micro-SD-Card) dengan sistem berkas FAT (File Allocation Table file system). Fitur dan Spesifikasi WTV-020-SD Audio Player Module
1. Mengurangi dan memainkan (decode & play) berkas audio Microsoft Wave Audio (*.WAV) dengan sampling rate 6 kHz hingga 16 kHz. Pastikan penyandian dalam format PCM 4-bit / 8-bit, uncompressed.
2. Mengurai dan memainkan (decode & play) berkas audio dengan 4-bit ADPCM (*.AD4) dengan sampling rate antara 6 kHz hingga 32 kHz, juga mendukung sampling rate 36 kHz.
3. Membaca berkas audio yang tersimpan kartu SD berkecepatan tinggi (High- Speed SD-Card) berkapasitas hingga 2 GB via on-board SD-Card Reader (file system: FAT).
4. Dapat mengenali format dan sampling rate dari berkas audio yang tersimpan dan menguraikannya sesuai meta data yang tertera secara otomatis
5. Dapat dikendalikan langsung oleh pemakai dengan menyambungkan tombol (moda manual) ataupun secara terprogram lewat koneksi serial (sambungkan dengan pin digital I/O pada mikrokontroler / Arduino board Anda; membutuhkan hanya 2 pin untuk koneksi: DI / Data Input dan CLK / CLocK signal)
6. Memori internal untuk mengingat posisi terakhir pada berkas audio yang dimainkan
(55)
3.8. FLOWCHART SYSTEM
(56)
BAB IV
HASIL DAN PEMBAHASAN
4.1 Pengujian Rangkaian LM35 dan pengondisi sinyal/ Op Amp
Bagian rangkaian ini terdiri dari resistor 1k, 5k dan untuk penguat di gunakan IC741. Dengan penguatan non inverting (tidak membalik) sudah cukup efisien untuk di gunakan pada LM35. Out put LM35 di kuatkan sebanyak 6 kali. Di di filter dengan kapasistor untuk menguarangi nois. Dari pengujian Rangkaian ini maka di dapat data di bawah ini.
Tabel 4.1.1 Pengujian Rangkaian LM35 dan pengondisi sinyal / Op Amp
Waktu Output lm35 (volt) Output op amp (volt) Suhu (oC)
60 detik 0.27 2.15 3.13
60 detik 0.29 2.30 3.24
60 detik 0.29 2.36 3.31
60 detik 0.31 2.42 3.39
60 detik 0.32 2.50 3.46
60 detik 0.33 2.54 3.52
60 detik 0.33 2.59 3.59
60 detik 0.34 2.65 3.64
60 detik 0.35 2.67 3.69
(57)
Tabel 4.1.1 Pengujian Rangkaian LM35 Dengan dan Tanpa Pengkondisi
Sinyal
Waktu Suhu Termometer Suhu Tanpa Pengkondisi Sinyal
Suhu Dengan Pengkondisi Sinyal
60 detik 29.0 30.3 27.5
60 detik 31.2 30.7 28.6
60 detik 31.9 31.8 29.4
60 detik 32.6 32.3 30.0
60 detik 33.0 33.8 30.3
60 detik 33.9 34.7 32.9
60 detik 34.9 36.0 33.8
60 detik 35.9 36.7 35.8
60 detik 36.4 37.1 36.9
60 detik 37.4 37.6 37.4
4.2 Pengujian Rangkaian Regulator
Pengujian rangkaian regulator ini bertujuan untuk mengetahui tegangan yang dikeluarkan oleh rangkaian tersebut, dengan mengukur tegangan keluaran dari output regulator 7805 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.
(58)
4.3 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.2. Informasi Signature Mikrokontroler
ATMega32 menggunakan kristal dengan frekuensi 11.0592 MHz, apabila Chip Signature sudah dikenali dengan baik dan dalam waktu singkat, bisa dikatakan rangkaian mikrokontroler bekerja dengan baik dengan mode ISP-nya.
4.4. Interfacing LCD 2x16
Bagian ini hanya terdiri dari sebuah LCD dot matriks 2 x 16 karakter yang berfungsi sebagai tampilan hasil pengukuran dan tampilan dari beberapa keterangan. LCD dihubungkan langsung ke Port D 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,
(59)
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 untuk menampilkan karakter pada display LCD adalah sebagai berikut:
#include <mega32a.h> #include <alcd.h> void main(void) {
PORTA=0x00; DDRA=0x00; PORTB=0x00; DDRB=0x00; PORTC=0x00; DDRC=0x00; PORTD=0x00; DDRD=0x00;
(60)
lcd_init(16); while (1) {
// Place your code here lcd_gotoxy(0,0); lcd_putsf("tes LCD"); }
}
Program di atas akan menampilkan kata “Tes LCD” di baris pertama pada display LCD 2x16. Pada alat dalam penelitian ini, Saat keseluruhan rangkaian diaktifkan, maka pada LCD akan menampilkan status sensor dan emberitahuan apabila menerima sms .
4.5 Pengujian Rangkaian USB to TTL
Untuk pengujian USB to TTL yaitu dengan menghubungkan Rx mikrokontroler ke Tx USB to TTL dan Tx mikrokontroler ke Rx USB to TTL, untuk mengirim dan menerima data pada rangkaian ini di rangkain secara silang, karena Rx sebagai penerima dan Tx sebagai pengirim.
Dengan mengirim program sebagai berikut. while (1)
(61)
// Place your code here
lcd_clear();
suhu1 = read_adc(0); // mengambil data adc dari PORTA.0 suhu_celcius1 = suhu1*0.4887; // nilai 0.004887 di dapat dari 5/1023, 6.38, adalah gain dari penguatan op amp
ftoa(suhu_celcius1,1,temp); lcd_gotoxy(7,0);
lcd_puts(temp); lcd_gotoxy(12,0);
lcd_putchar(0xdf); //menampilkan karakter derajat Celcius
lcd_putsf("C");
lcd_gotoxy(0,0);
lcd_putsf("Temp1:")
suhu = read_adc(7); // mengambil data adc dari PORTA.7
suhu_celcius =suhu*0.4887*0.13126612; //; // nilai 0.004887 di dapat dari 5/1023, 6.38, adalah gain dari penguatan op amp
ftoa(suhu_celcius,1,temp); lcd_gotoxy(7,1);
(62)
lcd_gotoxy(12,1);
lcd_putchar(0xdf); //menampilkan karakter derajat Celcius lcd_putsf("C");
lcd_gotoxy(0,1);
lcd_putsf("Temp2:");
printf("%0.1f\n\r",suhu_celcius1); // pengiriman ke komputer printf("%0.1f\n\r",suhu_celcius);
delay_ms(1500);
}
Dan untuk mendapatkan data di computer menggunkaan software tera term. Untuk menyeting software teraterm di sesuaikan dengan com yang di gunakan pada port usb to tll. Pada alat ini menggunakan COM1.
(63)
Setelah seting di atas klik ok. Maka akan tempil seperti data di bawah ini.
4.6. Pengujian Rangkaian Modul Suara WTV 020
Pengujian pada bagian ini digunakan untuk melihat kemampuan modul suara WTV-020SD yang menyimpan database suara yang dikontrol secara otomatis melalui mikrokontroler ATMEGA8535. Untuk mengeluarkan suara yaitu dengan menghubungkan output pada penguat audio yang ada dalam WTV-020SD dengan headset sehingga mampu kita dengar.
Langkah pengujian modul suara WTV-020SD yaitu dengan
1. Direkam terlebih dahulu suara yang ingin dikontrol pada laptop dengan menggunakan bantuan microphone.
2. Dikonversi suara audio yang direkan kedalam format ekstensi *.ad4 dengan frekuensi 32 khz dan diberi penamaan nnnn.ad4. “n” adalah nomor urut dari suara audio, dimulai dari bilangan 0000.
3. Dicopy file audio ke micro sd kapasitas 2 GB dengan file system type FAT.
(64)
5. Ditekan tombol play.
6. Dengarkan suara yang dihasilkan.
7. Ditekan tombol next untuk mendengar file audio selanjutnya.
Dari hasil pengujian yang dilakukan didapatkan untuk masin-masing suara yang dihasilkan adalah benar sesuai dengan masukan alamat yang diberikan, dapat dikatakan bagian record dan playback dapat bekerja baik.
(65)
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Setelah melakukan tahap perancangan dan pembuatan sistem yang kemudian dilanjutkan dengan tahap pengujian dan analisa maka dapat diambil kesimpulan sebagai berikut:
1. Data Akurasiini dapat digunakan untuk memantau suhu suatu ruangan atau suhu suatu benda dengan sensor suhu yang menempel pada benda tersebut. Alat ini hanya disetting untuk mengukur suhu antara 0 °C sampai 50 °C dengan kenaikan atau penurunan suhu 0,5 °C. Error/kesalahan pengukuran suhu adalah 2,03%.
2. WTV020-SD modul suara menggunakan master core Chip WTV020SD-20S, dengan modus MP3 control, tombol modus satu-ke-satu kontrol (3 suara dengan suara dua), modus power control loop serta kontrol serial ini kedua modus. Modus kontrol diatur dalam chip dari persiapan sampel, tidak dapat diaktifkan selama operasi mode control.
5.2 Saran
Dengan memandang dari segi penggunaan dan sistem kerja suatu peralatan, maka penulis mempunyai beberapa saran untuk pengembangan alat yang di buat apabila ada pihak yang berminat mengembangkan sekaligus memasarkan secara luas
(66)
antara lain: Sistem ini lebih baik ditambah dengan sistem internet jadi bisa mengakses data akusisi jarak jauh
(67)
DAFTAR PUSTAKA
Bejo, A. 2008. C dan AVR Rahasia Kemudahan Bahasa C dalam Mikrokontroller ATMega8535, Edisi I. Yogyakarta: Graha Ilmu
Catur Edi Widodo & Retna Prasetia. 2004. Teori dan Praktek Interfacing Port Serial Komputer dengan VisualBasic 6.0. Yogyakarta: Andi.
Clayton, George. 2005. Operational Amplifiers. Jakrta: Erlangga.
Drs. Daryanto. 2000. Pengetahuan Teknik Elektronika. Jakarta: Bumi Aksara. http://fmpunya.blogspot.com/2012/06/dasar-teori-mikrokontroller-atmega-32.html
Diakses pada tanggal: 29 April 2015
http://elektronika-dasar.web.id/teori-elektronika/lcd-liquid-cristal-display/ Diakses pada tanggal: 30 April 2015
http://elektronika-dasar.web.id/komponen/operasional-amplifier-op-amp-iclm741/ Diakses pada tanggal: 30 April 2015
http://www.musbikhin.com/codevision-avr-c-compiler Diakses pada tanggal: 30 April 2015
http://indotronic.blogspot.com/2013_08_01_archive.html Diakses pada tanggal: 23 Mei 2015
(68)
RANGKAIAN LENGKAP
(69)
(70)
PROGRAM LENGKAP
/****************************************************** 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 : 04/24/2015 Author :
Company : Comments:
Chip type : ATmega32A Program type : Application AVR Core Clock frequency: 11.059200 MHz Memory model : Small
External RAM size : 0 Data Stack size : 512
******************************************************/ #include <mega32a.h> #include <delay.h> #include <stdlib.h> #include <delay.h> #include <ds1820.h> #include <stdio.h> #include <math.h> #include <1wire.h> #include <delay.h>
(71)
#include <alcd.h> #include <stdio.h> #include <i2c.h> #include <ds1307.h> #include <math.h> #define clock PORTD.5 #define data PORTD.6 #define busy PIND.7 //#define MAX_DS1820 8
int suhu,suhu1, suara,a; char temp[8];
float suhu_celcius, suhu_celcius1; unsigned int mask;
// maximum number of DS1820 devices // connected to the 1 Wire bus
// number of DS1820 devices // connected to the 1 Wire bus //unsigned char ds1820_devices;
// DS1820 devices ROM code storage area, // 9 bytes are used for each device
// (see the w1_search function description in the help)
// Alphanumeric LCD functions #include <alcd.h>
// Declare your global variables here
// Standard Input/Output functions #include <stdio.h>
(72)
#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 ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF); return ADCW;
}
void play_voice(unsigned int command) { clock=0; delay_ms(2); for (mask=0x8000;mask>0;mask>>=1) { clock=0; delay_us(50);
if (command & mask) {data=1;} else {data=0;} delay_us(50); clock=1; delay_us(100);
(73)
if (mask>0x0001) { delay_ms(2); } } delay_ms(100); while (busy==1){} delay_ms(50); } void main(void) {
// 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
(74)
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) | (1<<DDC4) | (1<<DDC3) | (1<<DDC2) | (1<<DDC1) | (1<<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) |
(0<<PORTC4) | (0<<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) | (1<<DDD6) | (1<<DDD5) | (1<<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);
(75)
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; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;
// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF
(76)
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
// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On
// USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600
UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);
UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
UBRRH=0x00; UBRRL=0x47;
(77)
// 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);
// ADC initialization
// ADC Clock frequency: 691.200 kHz // ADC Voltage Reference: AREF pin
// ADC Auto Trigger Source: ADC Stopped ADMUX=ADC_VREF_TYPE;
ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (0<<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 menu:
(78)
// RS - PORTB Bit 0 // RD - PORTB Bit 1 // EN - PORTB Bit 2 // D4 - PORTB Bit 3 // D5 - PORTB Bit 4 // D6 - PORTB Bit 5 // D7 - PORTB Bit 6 // Characters/line: 16 lcd_init(16); lcd_gotoxy(3,0); lcd_putsf("Tugas Akhir"); lcd_gotoxy(1,1); lcd_putsf("Hidayati Irsan"); while (1) {
// Place your code here a++;
if (a>50){a=0;} lcd_clear();
suhu1 = read_adc(1); // mengambil data adc dari PORTA.0
suhu_celcius1 = suhu1*0.4887; // nilai 0.004887 di dapat dari 5/1023, 6.38, adalah gain dari penguatan op amp
ftoa(suhu_celcius1,1,temp); lcd_gotoxy(7,0);
lcd_puts(temp); lcd_gotoxy(12,0);
lcd_putchar(0xdf); //menampilkan karakter derajat Celcius
lcd_putsf("C");
(79)
lcd_putsf("Temp1:");
suhu = read_adc(2); // mengambil data adc dari PORTA.7
suhu_celcius =suhu*0.4887*0.13126612; //; // nilai 0.004887 di dapat dari 5/1023, 6.38, adalah gain dari penguatan op amp
suara=suhu_celcius-20; ftoa(suhu_celcius,1,temp); lcd_gotoxy(7,1); lcd_puts(temp); lcd_gotoxy(12,1); lcd_putchar(0xdf); //menampilkan karakter derajat Celcius
lcd_putsf("C");
lcd_gotoxy(0,1); lcd_putsf("Temp2:");
printf("%0.1f\n\r",suhu_celcius1); // pengiriman ke komputer
printf("%0.1f\n\r",suhu_celcius); if (a==0){play_voice(suara);} if (suhu_celcius>10){PORTC=0x01;} if (suhu_celcius>20){PORTC=0x03;} if (suhu_celcius>30){PORTC=0x07;} if (suhu_celcius>40){PORTC=0x0f;} if (suhu_celcius>50){PORTC=0x1f;} if (suhu_celcius>60){PORTC=0x3f;} if (suhu_celcius>70){PORTC=0x7f;} delay_ms(100); } }
(80)
PROSEDUR CARA KERJA PROGRAM
Di buka CodevisionAVR
(81)
Untuk membuat program baru klik file,new dan projek
(82)
Pilih AT90,ATtiny, ATmega lalu klik ok
Maka tampill window seperti di bawah ini
Di aktifkan konfigurasi pin sesuai yang kita inginkan
(83)
Kemudian pin konfigurasi
(84)
Mengaktifkan ADC pada mikrokontroler
(85)
Langkah selanjutnya yaitu mengklik program kemudian generate save and exit
(86)
Kemudian untuk extensi .prj
(87)
Langkah tekhir yaitu membuat program yang kita inginkan
(88)
Maka akan tampil window seperti di bawah ini
Yang akan menunjukan program ini error atau tidaknya
(89)
(90)
Langkah yang terakhir yaitu mendownload atau flash program ke miroontroler Dengan program Prog isp
Buka program prog isp yang tampilannya sebagai berikut:
Untuk mengetahui mirokontroler baik dan buruk atau mikro terhubung dengan baik ke computer melalui usbasp, klik read signature makan akan di tampilkan id signatur seperti gambar di bawah:
(91)
Untuk memasukan program klik load lalu cari program .hex di folder penyimpanan program yang telah di buat
(92)
Setelah di dapat klik open dan auto tapi jangan lupa untuk menyesuaikan chip yang di gunakan.
(93)
(1)
Maka akan tampil window seperti di bawah ini
Yang akan menunjukan program ini error atau tidaknya
(2)
(3)
Langkah yang terakhir yaitu mendownload atau flash program ke miroontroler Dengan program Prog isp
Buka program prog isp yang tampilannya sebagai berikut:
Untuk mengetahui mirokontroler baik dan buruk atau mikro terhubung dengan baik ke computer melalui usbasp, klik read signature makan akan di tampilkan id signatur seperti gambar di bawah:
(4)
Untuk memasukan program klik load lalu cari program .hex di folder penyimpanan program yang telah di buat
(5)
Setelah di dapat klik open dan auto tapi jangan lupa untuk menyesuaikan chip yang di gunakan.
(6)