SISTEM PENGUKURAN KADAR FORMALIN BERBASIS MIKROKONTROLER ATMEGA16
PADA BERBAGAI JENIS MAKANAN TUGAS AKHIR
BOBBY INDRAWAN 142411012
PROGRAM STUDI D-3 METROLOGI DAN INSTRUMENTASI DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2017
UNIVERSITAS SUMATERA UTARA
2
SISTEM PENGUKURAN KADAR FORMALIN BERBASIS MIKROKONTROLER ATMEGA16
PADA BERBAGAI JENIS MAKANAN
TUGAS AKHIR
Diajukan Sebagai Syarat Memenuhi Tugas Akhir dan Menyelesaikan Pendidikan Program Studi D-III Metrologi dan Instrumentasi
Fakultas Matematika dan Ilmu Pengetahuan Alam
BOBBY INDRAWAN 142411012
PROGRAM STUDI D-3 METROLOGI DAN INSTRUMENTASI DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2017
UNIVERSITAS SUMATERA UTARA
i
PERSETUJUAN
Judul : Sistem Pengukuran Kadar Formalin Berbasis Mikrokontroler Berbasis Atmega16 Pada Berbagai Jenis Makanan
Kategori : Tugas Akhir
Nama : Bobby Indrawan
Nomor Induk Mahasiswa : 142411012
Program Studi : Diploma Tiga (D-3) Metrologi Dan Instrumentasi
Departemen : Fisika
Fakultas : Matematika Dan Ilmu Pengetahuan Alam
Universitas Sumatera Utara
Disetujui di Medan,Juli 2017
KetuaProgram Studi
D3 Metrologi Dan Instrumentasi Pembimbing,
Dr.Diana A. Barus, M.Sc Dr.Kerista Tarigan,M.Eng.Sc NIP.196607291992032002 NIP.196002031980032001
UNIVERSITAS SUMATERA UTARA
ii
PERNYATAAN
SISTEM PENGUKURAN KADAR FORMALIN BERBASIS MIKROKONTROLER ATMEGA16
PADA BERBAGAI JENIS MAKANAN
TUGAS AKHIR
Saya mengakui bahwa Tugas Akhir ini adalah hasil karya sendiri.Kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Juli 2017
BOBBY INDRAWAN 142411012
UNIVERSITAS SUMATERA UTARA
iii
KATA PENGANTAR
Alhamdulillahirabbil’alamin,
Segala puji bagi Allah Subhannahuwata’ala yang telah melimpahkan barokah, rahmat, dan hidayahNya dan menganugrahkan kemudahan serta kelancaran sehingga penulis dapat menyelesaikan penulisan tugas akhir ini dan terlaksananyapembuatan alat ukur ini dapat diselesaikan. Penulis sungguh mengucap syukur atas segala hikmatdan pertolongan yang telah diberikanNya; karena penulis sadar, tanpa dia penulis tidak akan mampu mengerjakannya. Selama masa-masa akhir menuntut pendidikan mencapai gelar ahli madya, penulis merasakan bahwa Allah memudahkan dan selalu memberi kelancaran, baik dalam menghadapi kesulitan, maupun masa sukacita.
Tugas Akhir ini disusun untuk melengkapi persyaratan dalam mencapai gelar Ahli Madya pada Program Studi Diploma Tiga (III) Metrologi & Instrumentasi Departemen Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
SISTEM PENGUKURAN KADAR FORMALIN BERBASIS MIKROKONTROLER ATMEGA16
PADA BERBAGAI JENIS MAKANAN
Penulis menyadari bahwa tersusunnya Tugas Akhir ini dari Doa, perhatian, bimbingan, motivasi dan dukungan berbagai pihak, sehingga dengan keikhlasan dan kerendahan hati pada kesempatan ini penulis mengucapkan terima kasih yang sebesar-besarnya kepada :
1. Kedua orang tua penulis ibunda N.Fariza Hanum br.Sinuraya dan ayahanda Nurwantoserta saudara kandung saya, kakak saya Anggra Yolanda, adik
sayaDita Miranda, dan nenek saya Ponten Tariganyang telah memberikan bantuan moril maupun materil, semangat dan doa yang begitu besar kepada penulis.
2. Bapak Dr. Kerista Sebayang, MS, selaku Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
UNIVERSITAS SUMATERA UTARA
iv 3. Bapak Dr.Ferdinan Sinuhaji,MS selaku Ketua Departemen Fisika Fakultas
Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
4. Ibu Dr. Diana Alemin Barus M.Sc, selaku Ketua Program Studi D-III Metrologi dan Instrumentasi Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
5. Bapak Dr.Kerista Tarigan,M.Eng.Sc, selaku dosen pembimbing saya yang telah membimbing meluangkan waktunya dan membagi ilmunya untuk saya.
6. Seluruh Dosen dan Karyawan Program Studi Diploma Tiga (III) Metrologi Dan Instrumentasi Departemen Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
7. Seluruh teman-teman D3 Metrologi dan Instrumentasi yang telah mendukung dan membantu penulis menyelesaikan tugas akhir ini.
8. Teman–teman yang telah banyak membantu dalam proses dan memberi semangatyaitu Bang Algoji,Ade,Seger, Mahmud, Djordy dan Villa Family.
Penulis menyadari sepenuhnya bahwa dalam pembuatan Tugas Akhir ini masih jauh dari kesempurnaan, untuk itu penulis mengharapkan kritik dan saran dari pembaca yang bersifatnya membangun dalam penyempurnaan Tugas Akhir ini.
Semoga laporan ini menjadi sesuatu yang baik bagi penulis dan menjadi ilmu yang bermanfaat bagi pembaca.Amin.
Medan,Juli 2017 Hormat Saya,
Penulis
UNIVERSITAS SUMATERA UTARA
v
ABSTRAK
Formalin sering kali disalahgunakan sebagai pengawet makanan di Indonesia.
Secara umum, sulit membedakan makanan yang mengandung formalin dengan yang tidak. Oleh sebab itu, saat ini dibutuhkan suatu cara deteksi formalin dalam makanan yang cepat, akurat serta mudah dilakukan, terutama oleh masyakat umum. Pada proyek akhir ini direalisasikan alat pengukur kadar formalin dalam makanan berbasismikrokontroler. Alat ini menggunakan prinsip bahwa suatu formalin pada makanan akan menghasilkan uap. Uap itu akan menjadi indicator untuk sensor HCHO mendeteksi kadar formalin. Kadar formalin yang diterima sensor berupa tegangan kemudian diperkuatdenganmenggunakan penguat non-inverting. Hasil penguatan ini kemudian menjadi masukanbagi ADC. Sedangkan untuk penghitungannya digunakan mikrokontroler Atmega16 dan hasilnyaditampilkan pada LCD. ADCakan mengubah hasil penguatan tersebut menjadi sinyal digital.
Nilai digital keluaran ADC telahsesuai dengan nilai tegangan analog yang masuk.
Hasil yang ditampilkan dalam LCD merupakankonversi dari nilai digital ADC yang ditampilkan dalam bentuk bilangan bulat.
Kata Kunci : Formalin, Mikrokontroler ATmega16, LCD
UNIVERSITAS SUMATERA UTARA
vi
ABSTRACT
Formalin is often misused food preservativein Indonesia. Generally, it is hard to distinguish formalin-contained food and non formalin food. Therefore, nowadays we need a fast, accurate, and easy to be done-formalindetection method, especially to be done by common people. This last project is realizing a formalin tester in liquid food by using a microcontroller. This tool uses the principle that a formalin in food will produce steam.The steam would be an indicator for HCHO sensors detecting formalin levels. The level of formaldehyde received by the sensor is then amplified by using a non-inverting amplifier.The result from the amplifierwill be the input for ADC. A microcontroller Atmega16 is used to count the value of the salt contentand the result will be displayed on LCD. ADC will convert the result from the amplifier to be adigital signal. The digital signal from the ADC is as equal as the input analog voltage. The resultwhich is displayed on LCD is a round number which is as aconversion of the ADC digital signal.
Keywords : Formalin, microcontroller ATmega16, LCD
UNIVERSITAS SUMATERA UTARA
vii DAFTAR ISI
PERSETUJUAN ...i
PERNYATAAN ... ii
KATA PENGANTAR ... ii
ABSTRAK ... v
ABSTRACT ...vi
DAFTAR ISI ... vii
DAFTAR GAMBAR ...ix
DAFTAR TABEL ... x
BAB I PENDAHULUAN ... 1
1.1. LATAR BELAKANG ... 2
1.2. RUMUSAN MASALAH ... 2
1.3. TUJUAN PENELITIAN ... 2
1.4. BATASAN MASALAH ... 2
1.5. Sistematika Penulisan ... 2
BAB II LANDASAN TEORI ... 4
2.1. Mikrokontroler Atmega16 ... 4
2.2 Arsitektur ATmega16 ... 4
2.3 Sistem Clock AVR ATmega16 ... 6
2.4. Konfigurasi PIN ATmega16 ... 6
2.5. Peta Memori ATmega16 ... 8
2.6. Memori Data (SRAM) ... 9
2.7Memori Data EFPROM...10
2.8.Analog To Digital Converter ... 10
2.9. Mode Transmisi Port Serial ... 12
2.10. Desain PCB (Printed Circuit Board)Dengan Software Eagle 6.5.0 ... 13
2.11.Bahasa C...13
2.12.. CodeVISIONAVR ... 14
2.13. Liquid Crystal Display (LCD) ... 16
2.14. Sensor HCHO………18
UNIVERSITAS SUMATERA UTARA
viii BAB III
PERANCANGAN ALATDAN PEMBUATAN SISTEM ... 19
3.1 Gambar Diagram Blok ... 19
3.1.1Funsi tiap Blok ...19
3.2 Rangkaian Mikrokontroler ATmega16 ... 20
3.3 RangkaianRegulator (Penstabil Tegangan) ... 21
3.4 Perancangan Rangkaian LCD (Liquid Crystal Display) ... 21
3.5 Flowchart System ... 22
BAB IV PENGUJIAN ALAT DAN ANALISA RANGKAIAN 4.1 Pengujian Rangkaian Mikrokontroler ATMega16 ... 23
4.2 Pengujian Regulator (penstabil tegangan) ... 23
4.3 Interfacing LCD 2x16 ... 24
4.4 Data sensor... 25
BAB V KESIMPULAN DAN SARAN 5.1 Kesimpulan ... 26
5.2 Saran ... 26
DAFTAR PUSTAKA LAMPIRAN
UNIVERSITAS SUMATERA UTARA
ix DAFTAR GAMBAR
Gambar Halaman
Gambar 2.1. Blok Diagram Atmega16 ... 5
Gambar 2.2. Pin-pin Pada ATMega 16 ... 6
Gambar 2.3.Peta Memori ATMega16 ... 8
Gambar 2.4.Eepromdata memori ... 10
Gambar 2.5.ADC Control and Status Register A – ADCSRA ... 11
Gambar 2.6.ADC Multiplexer ... 11
Gambar 2.7.Register SFIOR ... 12
Gambar 2.8.Bentuk Fisik LCD 16 x 2 ... 16
Gambar 3.1.Diagram Blok Rangkaian ... 19
Gambar 3.2.Rangkaian sistem minimum mikrokontroler ATmega16...20
Gambar 3.3.Rangkaian regulator ... 21
Gambar 3.4Diagram Blok Sistem ... 21
Gambar 3.5. Diagram Alir ... 22
Gambar 4.1.Informasi Signature Mikrokontroler ... 23
DAFTAR TABEL Tabel Halaman Tabel 2.1. Fungsi Khusus Port B... 7
Tabel 2.2. Fungsi Khusus Port C ... 7
Tabel 2.3. Fungsi Khusus Port D ... 8
Tabel 2.4. Peta memory data ATMega 16 ... 9
Tabel 2.5. Konfigurasi Clock ADC ... 11
Tabel 2.6. Pemilihan sumber picu ADC ... 12
Tabel 2.7. Hasil Pengukuran Sensor HcHo... 25
UNIVERSITAS SUMATERA UTARA
x
UNIVERSITAS SUMATERA UTARA
1 BAB I
PENDAHULUAN
1.1 Latar Belakang
Produk pangan dewasa ini semakin baragam bentuknya, baik itu dari segi jenisnya maupun dari segi rasa dan cara pengolahannya. Namun seiring dengan semakin pesatnya teknik pengolahan pangan, penambahan bahan-bahan aditif pada produk pangan sulit untuk dihindari. akibatnya keamanan pangan telah menjadi dasar pemilihan suatu produk pangan yang akan dikonsumsi.
Keamanan pangan merupakan hal yang sedang banyak dipelajari, karena manusia semakin sadar akan pentingnya sumber makanan dan kandungan yang ada di dalam makanannya. Hal ini terjadi karena adanya kemajuan ilmu pengetahuan serta kemajuan teknologi, sehingga diperlukan suatu cara untuk mengawasi keamanan pangan.
Dalam proses keamanan pangan, dikenal pula usaha untuk menjaga daya tahan suatu bahan sehingga banyaklah muncul bahan-bahan pengawet yang bertujuan untuk memperpanjang masa simpan suatu bahan pangan. Namun dalam praktiknya di masyarakat, masih banyak yang belum memahami perbedaan penggunaan bahan pengawet untuk bahan- bahan pangan dan yang non pangan. Formalin merupakan salah satu pengawet non pangan yang sekarang banyak digunakan untuk mengawetkan makanan.
Formalin adalah nama dagang dari campuran formaldehid, metanol dan air. Formalin yang beredar di pasaran mempunyai kadar formaldehid yang bervariasi, antara 20% - 40%.
Formalin memiliki kemampuan yang sangat baik ketika mengawetkan makanan, namun walau daya awetnya sangat luar biasa, formalin dilarang digunakan pada makanan. Di Indonesia, beberapa undang-undang yang melarang penggunaan formalin sebagai pengawet makanan adalah Peraturan Menteri Kesehatan No 722/1988, Peraturan Menteri Kesehatan No. 1168/Menkes/PER/X/1999, UU No 7/1996 tentang Pangan dan UU No 8/1999 tentang Perlindungan Konsumen. Hal ini disebabkan oleh bahaya residu yang ditinggalkannya bersifat karsinogenik bagi tubuh manusia
Maka dari itu saya membuat alat “Sistem Pengukuran Kadar Formalin Berbasis Mikrokontroler ATmega16 Pada Berbagai Jenis Makanan”untuk mengetahui kadar formalin pada makanan yang akan di konsumsi oleh manusia. Karna kebanyakan pengawet dapat menyebabkan penyakit.
UNIVERSITAS SUMATERA UTARA
2 1.2 Permasalahan
Berdasarkanuraiandalamlatar belakangyangtelahdipaparkan,maka permasalahan yang dikaji peneliti dalam penelitian ini adalah bagaimana merancang suatu alat yang dapat memantau dan mengendalikan
penyalahgunaan formalin pada makanan dengan
sensorhchoberbasismikrokontrolerAtmega16.
1.3 PembatasanMasalah
Penelitianini difokuskanpadarancangbangunalatkendalikadar formalin, agar kadar formalin pada makanan lebih terkontrol dan tidak berlebihan.
1.4 TujuanPenelitian
Untukmerancang alat ukur tingkat kadar formalinpada makanan.
1.5 ManfaatPenelitian
Manfaatyangdiperolehdaripenelitianiniadalah :
Dapat digunakan untuk mengecek kadar formalin pada makanan, air, dan semacamnya.
1.6 Sistematika Penulisan
Dalam penyusunan Laporan Tugas Akhir ini, pembahasan mengenai sistem alat yang dibuat dibagi menjadi lima bab dengan sistematika sebagai berikut :
BAB I : PENDAHULUAN
Berisi latar belakang permasalahan, batasan masalah, tujuan pembahasan, metodologi pembahasan, sistematika penulisan dan relevansi dari penulisan laporan ini.
BAB II : TINJAUAN PUSTAKA
Dalam bab ini dijelaskan tentang teori pendukung yang digunakan untuk pembahasan dan cara kerja dari rangkaian teori pendukung itu antara lain tentang Mikrokontroler ATMega16, sensor pendeteksi kadar formalin dan software pendukung dan bahasa program yang
UNIVERSITAS SUMATERA UTARA
3 digunakan.
BAB III : PERANCANGAN SISTEM
Membahas tentang perencanaan dan pembuatan sistem secara keseluruhan.
BAB IV : ANALISIS DAN PENGUJIAN
Membahas tentang uji coba alat yang telah dibuat, pengoperasian dan spesifikasi alat dan lain-lain.
BAB V : PENUTUP
KESIMPULAN DAN SARAN
Berisi kesimpulan yang diperoleh dari pembuatan laporan tugas akhirini dan saran-saran untuk pengembangannya.
DAFTAR PUSTAKA
Pada bagian ini akan dipaparkan tentang sumber-sumber literatur yang digunakan dalam pembuatan laporan tugas akhir ini.
UNIVERSITAS SUMATERA UTARA
4 BAB II
LANDASAN TEORI
2.1 Mikrokontroler ATMega 16
Mikrokontroler, sesuai namanya adalah suatu alat atau komponen pengontrol atau pengendali yang berukuran mikro atau kecil. Sebelum ada mikrokontroler, telah ada terlebih dahulu muncul mikroprosesor. Mikrokontroler dapat dikatakan adalah sebuah IC yang dapat diprogram berulang kali, baik ditulis atau dihapus. Biasanya digunakan untuk pengontrolan otomatis dan manual pada perangkat elektronika. Mikrokontroler adalah suatu IC dengan kepadatan yang sangat tinggi, dimana semua bagian yang diperlukan untuk suatu kontroler sudah dikemas dalam satu keping, biasanya terdiri dari CPU, RAM, EEPROM, I/O, TIMER, dan lain-lain.
Mikrokontroler merupakan sistem komputer yang seluruh atau sebagian besar elemennya dikemas dalam satu chip IC (Intergrated Circuit) sehingga sering juga disebut single chip microcomputer, yang masuk dalam katagori embedded komputer. Suatu kontroler digunakan untuk mengontrol suatu proses atau aspek-aspek dari lingkungan. Satu contoh aplikasi dari mikrokontroler adalah untuk memonitor rumah. Ketika suhu naik kontroler membuka jendela dan sebaliknya. Pada masanya, kontroler dibangun dari komponen-komponen logika secara keseluruhan, sehingga menjadikannya besar dan berat. Setelah itu barulah dipergunakan mikroprosesor sehingga keseluruhan kontroler masuk kedalam PCB yang cukup kecil. Hingga saat ini masih sering kita lihat kontroler yangdikendalikan oleh mikroprosesor biasa (Zilog Z80, Intel 8088, Motorola 6809, dsb).
2.2 Arsitektur ATMEGA16
Mikrokontroler ini menggunakan arsitektur Harvard yang memisahkan memori program dari memori data, baik bus alamat maupun bus data, sehingga pengaksesan program dan data dapat dilakukan secara bersamaan (concurrent). Secara garis besar mikrokontroler ATMega16 terdiri dari :
1. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16MHz.
2. Memiliki kapasitas Flash memori 16Kbyte, EEPROM 512 Byte, dan SRAM 1Kbyte 3. Saluran I/O 32 buah, yaitu Port A, Port B, Port C, dan Port D.
4. CPU yang terdiri dari 32 buah register 5. User interupsi internal dan eksternal
UNIVERSITAS SUMATERA UTARA
5 6. Bandar antarmuka SPI dan Bandar USART sebagai komunikasi serial
7. Fitur Peripheral
Dua buah 8-bit timer/counter dengan prescaler terpisah dan mode compare
Satu buah 16-bit timer/counter dengan prescaler terpisah, mode compare, dan mode capture
Real time counter dengan osilator tersendiri
Empat kanal PWM dan Antarmuka komparator analog
8 kanal, 10 bit ADC
Byte-oriented Two-wire Serial Interface
Watchdog timerdengan osilator internal.
Gambar 2.1 Blok Diagram ATMega 16
UNIVERSITAS SUMATERA UTARA
6 2.3 Sistem Clock AVR ATMega16
Mikrokontroler, mempunyai sistem pewaktuan CPU, 12 siklus clock. Artinya setiap 12 siklus yang dihasilkan oleh ceramic resonator maka akan menghasilkan satu siklus mesin.
Nilai ini yang akan menjadi acuan waktu operasi CPU. Untuk mendesain sistem mikrokontroler kita memerlukan sistem clock, sistem ini bisa di bangun dari clock eksternal maupun clock internal.
2.4 Konfigurasi PIN ATmega16
Konfigurasi pin mikrokontroler Atmega16 dengan kemasan 40-pin dapat dilihat pada Gambar 2.3. Dari gambar tersebut dapat terlihat ATMega16 memiliki 8 pena untuk masing- masing Port A, Port B, Port C, dan Port D.
Gambar 2.2 Pin-pin Pada ATMega 16
Dari gambar diatas dapat dijelaskan fungsi dari masing-masing pin ATMega 16 sebagai berikut :
1. VCC merupakan pin yang berfungsi sebagai masukan catu daya.
2. GND merupakan pin Ground
3. Port A (PA0 – PA7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pinmasukan ADC
4. Port B (PB0 – PB7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pinkhusus, seperti dapat dilihat pada tabel dibawah ini.
UNIVERSITAS SUMATERA UTARA
7 Tabel 2.1 Fungsi Khusus Port B
Pin Fungsi Khusus PB7 SCK (SPI Bus Serial Clock)
PB6 MISO (SPI Bus Master Input/ Slave Output) PB5 MOSI (SPI Bus Master Output/ Slave Input) PB4 SS (SPI Slave Select Input)
PB3 AIN1 (Analog Comparator Negative Input)
OC0 (Timer/Counter0 Output Compare Match Output) PB2 AIN0 (Analog Comparator Positive Input)
INT2 (External Interrupt 2 Input)
PB1 T1 (Timer/ Counter1 External Counter Input) PB0 T0 (Timer/Counter External Counter Input)
XCK (USART External Clock Input/Output)
5. Port C (PC0 – PC7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pinkhusus, seperti dapat dilihat pada tabel dibawah ini.
Tabel 2.2Fungsi Khusus Port C
Pin Fungsi khusus
PC7 TOSC2 ( Timer Oscillator Pin2) PC6 TOSC1 ( Timer Oscillator Pin1) PC5 TDI (JTAG Test Data In)
PC4 TDO (JTAG Data Out)
PC3 TMS (JTAG Test Mode Select)
PC2 TCK (Joint Test Action Group Test Clock)
PC1 SDA ( Two-wire Serial Bus Data Input/Output Line) PC0 SCL ( Two-wire Serial Bus Clock Line)
6. Port D (PD0 – PD7) merupakan pin input/output dua arah (full duplex) dan selain itu merupakan pinkhusus, seperti dapat dilihat pada tabel dibawah ini.
UNIVERSITAS SUMATERA UTARA
8 Tabel 2.3 Fungsi Khusus Port D
Pin Fungsi khusus
PD7 OC2 (Timer/Counter Output Compare Match Output) PD6 ICP (Timer/Counter1 Input Capture Pin)
PD5 OC1A (Timer/Counter1 Output Compare A Match Output)
PD4 OC1B (Timer/Counter1 Output Compare B Match Output)
PD3 INT1 (External Interrupt 1 Input) PD2 INT0 (External Interrupt 0 Input) PD1 TXD (USART Output Pin) PD0 RXD (USART Input Pin)
7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler.
8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal 9. AVCC merupakan pin masukan tegangan untuk ADC
10. AREF merupakan pin masukan tegangan referensi ADC.
2.5 Peta Memori ATMega16
Arsitektur ATMega16 mempunyai dua memori utama, yaitu memori data dan memori program. Selain itu, ATMega16 memiliki memori EEPROM untuk menyimpan data.
ATMega16 memiliki 16 Kbyte On-chip In-System Reprogrammable Flash Memory untuk menyimpan program. Instruksi ATMega16 semuanya memiliki format 16 atau 32 bit, maka memori flash diatur dalam 8K x 16 bit. Memori flashdibagi kedalam dua bagian, yaitu bagian program bootdan aplikasi seperti terlihat pada di bawah. Bootloader adalah program kecil yang bekerja pada saat sistem dimulai yang dapat memasukkan seluruh program aplikasi ke dalam memori prosesor.
Gambar 2.3 Peta Memori ATMega16
UNIVERSITAS SUMATERA UTARA
9 2.6 Memori Data (SRAM)
Memori data AVR ATMega16 terbagi menjadi 3 bagian, yaitu 32 register umum, 64 buah register I/O dan 1 Kbyte SRAM internal. General purpose register menempati alamat data terbawah, yaitu $00 sampai $1F. Sedangkan memori I/O menempati 64 alamat berikutnya mulai dari $20 hingga $5F. Memori I/O merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai fitur mikrokontroler seperti kontrol register, timer/counter , fungsi-fungsi I/O, dan sebagainya. 1024 alamat berikutnya mulai dari
$60 hingga $45F digunakan untuk SRAM internal.
Tabel 2.4 Peta memory data ATMega 16
Register file Data address space
R0 $0000
R1 $0001
R2 $0002
… …
R29 $000D
R30 $000E
R31 $000F
I/O Registers
$00 $0020
$01 $0021
$02 $0022
… …
$3D $005D
$3E $005E
$3F $005F
Internal SRAM
$0060
$0061
…
$045E
$045F
UNIVERSITAS SUMATERA UTARA
10 2.7Memori Data EEPROM
ATMega16 terdiri dari 512 byte memori data EEPROM 8 bit, data dapat ditulis/dibaca dari memori ini, ketika catu daya dimatikan, data terakhir yang ditulis pada memori EEPROM masih tersimpan pada memori ini, atau dengan kata lain memori EEPROM bersifat nonvolatile. Alamat EEPROM mulai dari $000 sampai $1FF.
Gambar 2.4 Eepromdata memori
2.8 Analog To Digital Converter
AVR ATMega16 merupakan tipe AVR yang telah dilengkapi dengan 8 saluran ADC internal dengan resolusi 10 bit. Dalam mode operasinya, ADC dapat dikonfigurasi, baik single endedinput maupun differentialinput. Selain itu, ADC ATMega16 memiliki konfigurasi pewaktuan, tegangan referensi, mode operasi, dan kemampuan filter derau (noise)yang amat fleksibel sehingga dapat dengan mudah disesuaikan dengan kebutuhan dari ADC itu sendiri. ADC pada ATMega16 memiliki fitur-fitur antara lain :
Resolusi mencapai 10-bit
Akurasi mencapai ± 2 LSB
Waktu konversi 13-260µs
8 saluran ADC dapat digunakan secara bergantian
Jangkauan tegangan input ADC bernilai dari 0 hingga VCC
Disediakan 2,56V tegangan referensi internal ADC
Mode konversi kontinyu atau mode konversi tunggal
Interupsi ADC complete
Sleep Mode Noise canceler
Proses inisialisasi ADC meliputi proses penentuan clock, tegangan referensi, formal data keluaran, dan modus pembacaan. Register-register yang perlu diatur adalah sebagai berikut:
ADC Control and Status Register A – ADCSRA
UNIVERSITAS SUMATERA UTARA
11 Gambar 2.5 ADC Control and Status Register A – ADCSRA
ADEN : 1 = adc enable, 0 = adc disable
ADCS : 1 = mulai konversi, 0 = konversi belum terjadi
ADATE : 1 = auto trigger diaktifkan, trigger berasal dari sinyal yang dipilih (set pada trigger SFIOR bit ADTS). ADC akan start konversi pada edge positif sinyal trigger.
ADIF : diset ke 1, jika konversi ADC selesai dan data register ter-update. Namun ADC Conversion Complete Interrupt dieksekusi jika bit ADIE dan bit-I dalam register SREG diset.
ADIE : diset 1, jika bit-I dalam register SREG di-set.
ADPS[0..2] : Bit pengatur clock ADC, faktor pembagi 0 … 7 = 2, 4, 8, 16, 32, 64, 128.
Tabel 2.5 Konfigurasi Clock ADC
ADPS2 ADPS1 ADPS0 Division Factor
0 0 0 2
0 0 1 2
0 1 0 4
0 1 1 8
1 0 0 16
1 0 1 32
1 1 0 64
1 1 1 128
• ADC Multiplexer-ADMUX
Gambar 2.6 ADC Multiplexer REFS 0, 1 : Pemilihan tegangan referensi ADC
00 : Vref = Aref
01 : vref = AVCC dengan eksternal capasitor pada AREF
UNIVERSITAS SUMATERA UTARA
12 10 : vref = internal 2.56 volt dengan eksternal kapasitor pada AREF
ADLAR : Untuk setting format data hasil konversi ADC, default = 0
• Special Function IO Register-SFIOR
SFIOR merupakan register 8 bit pengatur sumber picu konversi ADC, apakah dari picu eksternal atau dari picu internal, susunannya seperti yang terlihat pada gambar berikut :
Gambar 2.7 Register SFIOR
ADTS[0...2] : Pemilihan trigger (pengatur picu) untuk konversi ADC, bit-bit ini akan berfungsi jika bit ADATE pada register ADCSRA bernilai 1. Konfigurasi bit ADTS[0...2]
dapat dilihat pada Tabel di bawah ini.
Tabel 2.6 Pemilihan sumber picu ADC
ADPS2 ADPS1 ADPS0 Trigger source
0 0 0 Free Running Mode
0 0 1 Analog Comparator
0 1 0 External Interrupt Request 0
0 1 1 Timer/Counter0 Compare Match
1 0 0 Timer/Counter0 Overflow
1 0 1 Timer/Counter Compare Match B
1 1 0 Timer/Counter1 Overflow
1 1 1 Timer/Counter1 Capture Event
ADHSM : 1. ADC high speed mode enabled. Untuk operasi ADC, bit ACME, PUD,PSR2 dan PSR10 tidak diaktifkan.
2.9 Mode Transmisi Port Serial
Ada 2 macam cara komunikasi data serial yaitu Sinkron dan Asinkron. Pada komunikasi data serial sinkron, clock dikirimkan bersama sama dengan data serial, tetapi clock tersebut dibangkitkan sendiri-sendiri baik pada sisi pengirim maupun penerima. Sedangkan pada komunikasi serial asinkron tidak diperlukan clock karena data dikirimkan dengan kecepatan tertentu yang sama baik pada pengirim/penerima.
Pada IBM PC kompatibel port serialnya termasuk jenis asinkron. Komunikasi data serial ini dikerjakan oleh UART (Universal Asynchronous Receiver Transmitter). Pada UART,
UNIVERSITAS SUMATERA UTARA
13 kecepatan pengiriman data dan fase clock pada sisi transmitter dan sisi receiver harus sinkron. Untuk itu diperlukan sinkronisasi antara transmitter dan receiver. Hal ini dilakukan oleh bit “Start” dan bit “Stop”. Ketika saluran transmisi dalam keadaan idle, output UART adalah dalam keadaan logika “1”.
Ketika transmitter ingin mengirimkan data, output UART akan diset dulu ke logika “0”
untuk waktu satu bit. Sinyal ini pada receiver akan dikenali sebagai sinyal “Start” yang digunakan untuk mensinkronkan fase clock-nya sehingga sinkron dengan fase clock transmitter. Selanjutnya data akan dikirimkan secara serial dari bit yang paling rendah (bit0) sampai bit tertinggi. Selanjutnya akan dikirimkan sinyal “Stop” sebagai akhir dari pengiriman data serial. Sebagai contoh misalnya akan dikirimkan data huruf “A” dalam format ASCII atau sama dengan 41 hexa.
2.10 Desain PCB (Printed Circuit Board) Dengan Software Eagle 6.5.0
Untuk mendesain PCB dapat digunakan software EAGLE 6.5.0 yang dapat di-download di internet secara gratis. Cara menggunakan software ini terlebih dahulu yang dikerjakan adalah mendesain skematik rangkaian, setelah itu memindahkannya ke dalam bentuk board dan mendesain tata letak komponen sesuai keinginan tetapi harus sesuai jalur rangkaian nya agar rangkaian dapat berfungsi sesuai dengan skematiknya. Setelah itu didesain layout PCB nya , barulah siap di-print dan di-transfer ke PCB. Pada proses pentransferan layout ke PCB dapat digunakan kertas Transfer Paper.
2.11 Bahasa C
Bahasa C adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa tingkat rendah (bahasa yang berorientasi pada mesin) dan bahasa tingkat tinggi (bahasa yang berorientasi pada manusia). Seperti yang diketahui, bahasa tingkat tinggi mempunyai kompatibilitas antara platform. Karena itu, amat mudah untuk membuat program pada berbagai mesin. Berbeda halnya dengan menggunakan bahasa mesin, sebab setiap perintahnya sangat bergantung pada jenis mesin.
Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program dalam bentuk blok.
Tujuannya untuk memudahkan dalam pembuatan dan pengembangan program. Program yang ditulis dengan bahasa C mudah sekali dipindahkan dari satu jenis program ke bahasa program lain. Hal ini karena adanya standarisasi bahasa C yaitu berupa standar ANSI (American National Standar Institut) yang dijadikan acuan oleh para pembuat kompiler.jenis mesin.
Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada tahun 1972. C
UNIVERSITAS SUMATERA UTARA
14 adalah bahasa pemrograman terstruktur, yang membagi program dalam bentuk blok.
Tujuannya untuk memudahkan dalam pembuatan dan pengembangan program. Program yang ditulis dengan bahasa C mudah sekali dipindahkan dari satu jenis program ke bahasa program lain. Hal ini karena adanya standarisasi bahasa C yaitu berupa standar ANSI ( American National Standar Institut) yang dijadikan acuan oleh para pembuat kompiler.
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.
Kekurangan Bahasa C:
- Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai.
- Bagi pemula pada umumnya akan kesulitan menggunakan pointer.
2.12 CodeVisionAVR
CodeVisionAVR merupakan sebuahcross-compiler C,Integrated Development Environtment (IDE), dan Automatic Program Generator yang didesain untuk mikrokontroler buatan Atmel seri AVR. CodeVisionAVR dapat dijalankan pada sistem operasi Windows 95, 98, Me, NT4, 2000, dan XP. Cross-compiler C mampu menerjemahkan hampir semua perintah dari bahasa ANSI C, sejauh yang diijinkan oleh arsitektur dari AVR, dengan tambahan beberapa fitur untuk mengambil kelebihan khusus dari arsitektur AVR dan kebutuhan pada sistem embedded.
File object COFF hasil kompilasi dapat digunakan untuk keperluan debugging pada tingkatan C, dengan pengamatan variabel, menggunakan debugger Atmel AVR Studio. IDE
UNIVERSITAS SUMATERA UTARA
15 mempunyai fasilitas internal berupa software AVR Chip In-System Programmer yang memungkinkan Anda untuk melakukan transfer program kedalam chip mikrokontroler setelah sukses melakukan kompilasi/asembli secara otomatis. Software In-System Programmer didesain untuk bekerja dengan Atmel STK500/AVRISP/AVRProg, Kanda Systems STK200+/300, Dontronics DT006, Vogel Elektronik VTEC-ISP, Futurlec JRAVR dan MicroTronics ATCPU/Mega2000 programmers/development boards.
Untuk keperluan debugging sistem embedded, yang menggunakan komunikasi serial, IDE mempunyai fasilitas internal berupa sebuah Terminal. Selain library standar C, CodeVisionAVR juga mempunyai library tertentu untuk:
Modul LCD alphanumeric
Bus I2C dari Philips
Sensor Suhu LM75 dari National Semiconductor
Real-Time Clock: PCF8563, PCF8583 dari Philips, DS1302 dan DS1307 dari Maxim/Dallas Semiconductor
Protokol 1-Wire dari Maxim/Dallas Semiconductor
Sensor Suhu DS1820, DS18S20, dan DS18B20 dari Maxim/Dallas Semiconductor
Termometer/Termostat DS1621 dari Maxim/Dallas Semiconductor
EEPROM DS2430 dan DS2433 dari Maxim/Dallas Semiconductor
SPI
Power Management
Delay
Konversi ke Kode Gray
CodeVisionAVR juga mempunyai Automatic Program Generator bernama CodeWizardAVR, yang mengujinkan Anda untuk menulis, dalam hitungan menit, semua instruksi yang diperlukan untuk membuat fungsi-fungsi berikut:
Set-up akses memori eksternal
Inisialisasi port input/output
Inisialisasi interupsi eksternal
Inisialisasi Timer/Counter
Inisialisasi Watchdog-Timer
Inisialisasi UART (USART) dan komunikasi serial berbasis buffer yang digerakkan oleh interupsi
Inisialisasi Pembanding Analog
Inisialisasi ADC
UNIVERSITAS SUMATERA UTARA
16
Inisialisasi Antarmuka SPI
Inisialisasi Antarmuka Two-Wire
Inisialisasi Antarmuka CAN\
Inisialisasi Bus I2C, Sensor Suhu LM75, Thermometer/Thermostat DS1621 dan Real- Time Clock PCF8563, PCF8583, DS1302, dan DS1307
Inisialisasi Bus 1-Wire dan Sensor Suhu DS1820, DS18S20 2.13 Liquid Crystal Display (LCD) 16 x 2
LCD (Liquid Crystal Display) adalah suatu jenis media tampil yang menggunakan kristal cair sebagai penampil utama. LCD sudah digunakan diberbagai ssbidang misalnya alal–alat elektronik seperti televisi, kalkulator, atau pun layar komputer. Pada postingan aplikasi LCD yang dugunakan ialah LCD dot matrik dengan jumlah karakter 2 x 16. LCD sangat berfungsi sebagai penampil yang nantinya akan digunakan untuk menampilkan status kerja alat.
Adapun fitur yang disajikan dalam LCD ini adalah : a.Terdiri dari 16 karakter dan 2 baris.
b. Mempunyai 192 karakter tersimpan.
c. Terdapat karakter generator terprogram.
d. Dapat dialamati dengan mode 4-bit dan 8-bit.
e. Dilengkapi dengan back light.
Gambar 2.8 Bentuk Fisik LCD 16 x 2
Spesifikasi Kaki LCD 16 x 2 Pin Deskripsi
1 Ground 2 Vcc
3 Pengatur kontras
4 “RS” Instructio/Register Select
UNIVERSITAS SUMATERA UTARA
17 5 “R/W” Read/Write LCD Registers
6 “EN” Enable 7-14 Data I/O Pins 15 Vcc
16 Ground
Progam LCD
while (1) {
// Place your code here data=(read_adc(2)-472);
formalin=(data*0.004887);
if (formalin<0){formalin=0;}
formalin=(formalin/1.43)*100;
itoa(formalin,buff);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf(" kadar formalin ");
lcd_gotoxy(6,1);
lcd_puts(buff);
lcd_putsf(" %");
delay_ms(500);
} }
Cara Kerja LCD Secara Umum
Pada aplikasi umumnya RW diberi logika rendah “0”. Bus data terdiri dari 4-bit atau 8-bit.
Jika jalur data 4-bit maka yang digunakan ialah DB4 sampai dengan DB7. Sebagaimana terlihat pada table diskripsi, interface LCD merupakan sebuah parallel bus, dimana hal ini sangat memudahkan dan sangat cepat dalam pembacaan dan penulisan data dari atau ke LCD.
Kode ASCII yang ditampilkan sepanjang 8-bit dikirim ke LCD secara 4-bit atau 8 bit pada satu waktu. Jika mode 4-bit yang digunakan, maka 2 nibble data dikirim untuk membuat sepenuhnya 8-bit (pertama dikirim 4-bit MSB lalu 4-bit LSB dengan pulsa clock EN setiap nibblenya). Jalur kontrol EN digunakan untuk memberitahu LCD bahwa mikrokontroller mengirimkan data ke LCD. Untuk mengirim data ke LCD program harus menset EN ke kondisi high “1” dan kemudian menset dua jalur kontrol lainnya (RS dan R/W) atau juga mengirimkan data ke jalur data bus.
Saat jalur lainnya sudah siap, EN harus diset ke “0” dan tunggu beberapa saat (tergantung pada datasheet LCD), dan set EN kembali ke high “1”. Ketika jalur RS berada dalam kondisi low “0”, data yang dikirimkan ke LCD dianggap sebagai sebuah perintah atau instruksi khusus (seperti bersihkan layar, posisi kursor dll). Ketika RS dalam kondisi high atau “1”, data yang dikirimkan adalah data ASCII yang akan ditampilkan dilayar. Misal, untuk
UNIVERSITAS SUMATERA UTARA
18 menampilkan huruf “A” pada layar maka RS harus diset ke “1”. Jalur kontrol R/W harus berada dalam kondisi low (0) saat informasi pada data bus akan dituliskan ke LCD. Apabila R/W berada dalam kondisi high “1”, maka program akan melakukan query (pembacaan) data dari LCD. Instruksi pembacaan hanya satu, yaitu Get LCD status (membaca status LCD), lainnya merupakan instruksi penulisan. Jadi hampir setiap aplikasi yang menggunakan LCD, R/W selalu diset ke “0”. Jalur data dapat terdiri 4 atau 8 jalur (tergantung mode yang dipilih pengguna), DB0, DB1, DB2, DB3, DB4, DB5, DB6 dan DB7. Mengirim data secara parallel baik 4-bit atau 8-bit merupakan 2 mode operasi primer. Untuk membuat sebuah aplikasi interface LCD, menentukan mode operasi merupakan hal yang paling penting.
Mode 8-bit sangat baik digunakan ketika kecepatan menjadi keutamaan dalam sebuahaplikasi dan setidaknya minimal tersedia 11 pin I/O (3 pin untuk kontrol, 8 pin untuk data).
Sedangkan mode 4 bit minimal hanya membutuhkan 7-bit (3 pin untuk kontrol, 4 pin untuk data). Bit RS digunakan untuk memilih apakah data atau instruksi yang akan ditransfer antara mikrokontroller dan LCD. Jika bit ini di set (RS = 1), maka byte pada posisi kursor LCD saat itu dapat dibaca atau ditulis. Jika bit ini di reset (RS = 0), merupakan instruksi yang dikirim ke LCD atau status eksekusi dari instruksi terakhir yang dibaca.
2.14 Sensor HCHO
Formalin merupakan zat yang mudah menguap dengan satuan konsentrasi ppm (Part Per Million). Oleh karena itu, diperlukan suatu sensor yang sangat sensitif dalam mendeteksi gas formahelyd tersebut. Model sensor yang digunakan adalah sensor HCHO yang diproduksi oleh Hanwai Electronics. Sensor ini cocok digunakan untuk mendeteksi kadar formalin dalam pengujian. Rangkaian driver untuk sensor HCHO sangat sederhana, hanya perlu 1 buah variabel resistor. Output dari sensor berupa tegangan analog yang sebanding dengan gas formalin yang diterima. Antarmuka yang digunakan cukup sederhana, bisa menggunakan ADC yang dapat merespon tegangan 0 volt – 3,3 volt saja. Nilai resistor yang dipasang harus dibedakan untuk berbagai jenis konsentrasi gas. Jadi perlu dikalibrasi untuk 0,04 mg perliter (sekitar 200 ppm) konsentrasi formalin diudara dan resistansi pada output sekitar 200KΩ (100KΩ - 470KΩ).
UNIVERSITAS SUMATERA UTARA
19 BAB III
PERANCANGAN ALAT DAN PEMBUATAN SISTEM
3.1. Gambar Diagram BlokRangkaian
ATmega16 Pengondisi signal
Power Supply
Display Sensor HCHO
Sample
Gambar 3.1 Diagram Blok Rangkaian
3.1.1 Fungsi Tiap Blok
1. Blok mikrokontroller Atmega16 : Mengkonversi dari data analog sensor ke digital
2. Blok LCD : Sebagai output tampilan
3. Blok power supply : Sebagai penyedia tegangan ke system dan Sensor
4. Blok sample : Sebagai wadah sample yang akan diuji 5. Blok sensor hcho : Sebagai alat pendeteksi formalin
6. Blok pengondisi signal : Sebagai pemroses atau yang mendeteksi
kadar formalin. Semakin besar kadar formalin semakin besar outputnya.
UNIVERSITAS SUMATERA UTARA
20 3.2. Rangkaian Mikrokontroller ATMega16
Rangkaian sistem minimum mikrokontroler ATMEGA16 dapat dilihat pada gambar di bawah ini :
Gambar 3.2 Rangkaian sistem minimum mikrokontroler ATMEGA16
Dari gambar 3.2, Rangkaian tersebut berfungsi sebagai pusat kendali dari seluruh sistem yang ada. Komponen utama dari rangkaian ini adalah IC Mikrokontroler ATMega16.
Semua program diisikan pada memori dari IC ini sehingga rangkaian dapat berjalan sesuai dengan yang dikehendaki.
Pin 12 dan 13 dihubungkan ke XTAL 16.000000 MHz dan dua buah kapasitor 30 pF.
XTAL ini akan mempengaruhi kecepatan mikrokontroler ATMega16 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 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.
UNIVERSITAS SUMATERA UTARA
21 3.3. Rangkaian Regulator (Penstabil tegangan)
Rangkaian ini berfungsi untuk memberikan supply tegangan ke seluruh rangkaian yang ada. Keluaran rangkaian Regulator ini yaitu 5 volt, keluaran 5 volt.
Gambar 3.3 Rangkaian regulator
Adaptor yang di gunakan yaitu adaptopr 12 Volt, adaptor berfungsi untuk menurunkan tegangan dari 220 volt AC menjadi 12 volt DC. Regulator tegangan 5 volt (LM7805) digunakan agar keluaran yang dihasilkan tetap 5 volt walaupun terjadi perubahan pada tegangan masukannya. LED hanya sebagai indikator apabila PSA dinyalakan.
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 5 KΩ untuk mengatur kontras karakter yang tampil. Gambar 3.4 berikut merupakan gambar rangkaian LCD yang dihubungkan ke mikrokontroler.
Gambar 3.4. Rangkaian LCD
Dari gambar 3.4, rangkaian ini terhubung ke PB.0... PB.7, 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 ATMega16.
UNIVERSITAS SUMATERA UTARA
22 3.5 Flowchart System
Start
Inisialisasi Port
Read Data Sensor
Kalibrasi Data
Tampilkan data
END
Gambar 3.5Diagram Alir
UNIVERSITAS SUMATERA UTARA
23 BAB IV
HASIL DAN PEMBAHASAN
4.1. Pengujian Rangkaian Mikrokontroler ATMega16
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 ATMega16.
Gambar 4.1. Informasi Signature Mikrokontroler
ATMega16 menggunakan kristal dengan frekuensi 16.000000 MHz, apabila Chip Signature sudah dikenali dengan baik dan dalam waktu singkat, bisa dikatakan rangkaian mikrokontroler bekerja dengan baik dengan mode ISP-nya.
4.2. Pengujian Regulator (penstabil tegangan)
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.
UNIVERSITAS SUMATERA UTARA
24 4.3. 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, 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:
while (1) {
// Place your code here data=(read_adc(2)-472);
garam=(data*0.004887);
if (garam<0){garam=0;}
garam=(garam/1.43)*100;
itoa(garam,buff);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf(" kadar Garam ");
lcd_gotoxy(6,1);
lcd_puts(buff);
lcd_putsf(" %");
delay_ms(500);
} }
Program di atas akan menampilkan kata “kadar garam” di baris pertama pada display LCD 2x16. Pada alat dalam penelitian ini, Saat keseluruhan rangkaian diaktifkan, maka pada LCD akan menampilkan status sensor dan pemberitahuan.
UNIVERSITAS SUMATERA UTARA
25 4.4. Data Sensor
Tabel 2.7 Hasil Pengukuran Sensor HCHO
Jarak Pengukuran Nilai Pengukuran
15cm 0,22 V
10cm 0,19 V
5cm 0,37 V
2cm 2,15 V
UNIVERSITAS SUMATERA UTARA
26 BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Setelah dilakukan pengujian hasil pengukuran kadar formalin dengan sensor hcho, maka dapat diambil beberapa kesimpulan:
1. Alat ukur pengukuran kadar formalin pada makanan ini belum stabil karena memiliki % Ralat bervariasi dan memiliki perbedaan yang signifikan
2. Mikrokontroler dapat mengolah program dan berfungsi dengan baik.
3. Pengujian keseluruhan alat ukur kadar formalindapat menunjukkan nilai dan grafik yang sesuai meskipun dengan % ralat nya masing-masing.
4. Sensor akan berjalan baik jika tegangan yang diberikan stabil.
5.2. Saran
Beberapa tambahan yang diperlukan dalam meningkatkan kemampuan alat ini adalah:
1. Diperlukannya kalibrasi untuk memulai pengukuran dari nol.
2. Alat ukur kadar formalin pada makanan akan lebih baik jika menggunakan sensor yang lebih sensitif .
3. Alat ukur kadar formalin pada makanan ini sebaiknya dikembangkan lagi dan bisa dipergunakan masyarakat.
UNIVERSITAS SUMATERA UTARA
27 Daftar Pustaka
Clayton, G. Steve Winder. 2002. Operasional Amplifier. Jakarta: Erlangga
IS, Kasmadi dan Gatot Luhbandjono. 2006. Kimia Dasar II. Semarang: UPT UNNES Press.
Putra, Agfianto Eko. 2005. Belajar Mikrokontroler AT89C51/ 52/ 55. Teori dan Aplikasi.
Yogyakarta: Gava Media
Meirita, Hastuti D, Sunarti E. 2000. Hubungan kuantitas dan kualitas asuh dengan status gizi anak bawah lima tahun di Desa Rancamaya, Kota Bogor. Media Gizi dan Keluarga, XXIV
(2), 23-27
Moehji S. 1980. Ilmu Gizi jilid 2. Jakarta : Bhratara Karya Aksara. Naidu K.A. Vitamin C in human health and disease is still a mystery, an overview. Noutrition J. 2003; 2 : 7.
Notoatmodjo, Soekidjo. 2003. Pendidikan dan Perilaku Kesehatan. Jakarta: PT. Rineka Cipta.
Nuraida et al. 2009
Menuju Kantin Sehat di Sekolah. Bogor: Seafas Center. Padmiari, I.A.E. & Hadi. 2001.
Konsumsi Fast Food Sebagai Faktor Risiko Obesitas Pada Anak SD. [terhubungberkala].
www.tempo.co.id. [17 september 2012]. Papalia DE dan Old. 1986. Human Development.
USA: Mc. Draw-Hill. [Persagi] Persatuan Ahli Gizi Indonesia.1973. Pengetahuan Gizi untuk Membina Keluarga Sehat. Bogor
Saksono, Nelson. 2002. Studi Pengaruh Proses Pencucian Garam terhadap Kompososi dan Stabilitas Yodium Garam Konsumsi, Jurnal FT UI vol. 6: 1;16
Sugianto dan Upik Nurbaiti, Upik. 2005. Fisika Zat Padat. Semarang: UNNES Sugiyo. W dan Wijayanti. N. 2001. Perancangan Demplot dalam Rangka Peningkatan Kualitas dan Kuantitas Garam Rakyat di Kabupaten Pasuruan Jawa Timur, Jurnal FMIPA UNNES vol. 26: 103;117 Sulistyowati, Emy., Sumarti, S. dan Abdurrakhman. 2010.Toleransi
60 Aksesi Kapas terhadap Cekaman Salinitas pada Fase Vegetasi,Jurnal Littri vol.16: 20;26 Tancung, Andi baso dan M. Ghufran H Kordi K. 2007. Pengelolaan Kualitas Air Dalam
Budidaya Perairan. Jakarta: Rineka Cipta
Blocher,Richard.2003.Dasar Elektronika.Yogyakarta:Andi
Putra, Agfianto Eko.2004. Belajar Mikrokontroller AT89C51/52/55 (Teori dan Aplikasi).Yogyakarta: Gava Media.
http://elektronika.net.ms/adc-analog-to-digital-converter.html http://imet.csus.edu/imet1/antares/folio/echem.html
http://www.jantungstroke.com/makanan-mengandung-formalin-tinggi/
http://www.smallcrab.com/kesehatan/798-kandungan-formalin-di-dalam-makanan- sudah-saatnya-diatur
UNIVERSITAS SUMATERA UTARA
28 Lampiran 1
Lampiran Program
/*******************************************************
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 : 7/14/2017 Author :
Company : Comments:
Chip type : ATmega16A Program type : Application
AVR Core Clock frequency: 8.000000 MHz Memory model : Small
External RAM size : 0 Data Stack size : 256
*******************************************************/
#include <mega16a.h>.
#include <stdlib.h>
#include <delay.h>
#include <alcd.h>
float vout, volt;
char buff[20];
// Voltage Reference: AREF pin
#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
UNIVERSITAS SUMATERA UTARA
29 while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
return ADCW;
}
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
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=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (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) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF // OC0 output: Disconnected
TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (0<<CS01)
| (0<<CS00);
UNIVERSITAS SUMATERA UTARA
30 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 // OC2 output: Disconnected ASSR=0<<AS2;
TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);
TCNT2=0x00;
OCR2=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);
// External Interrupt(s) initialization // INT0: Off
// INT1: Off // INT2: Off
MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);
MCUCSR=(0<<ISC2);
UNIVERSITAS SUMATERA UTARA
31 // USART initialization
// USART disabled
UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
// Analog Comparator initialization // Analog Comparator: Off
// The Analog Comparator's positive input is // connected to the AIN0 pin
// The Analog Comparator's negative input is // connected to the AIN1 pin
ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);
// ADC initialization
// ADC Clock frequency: 1000.000 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) | (0<<ADPS2) | (1<<ADPS1) | (1<<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:
// 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);
while (1) {
vout=read_adc(3);
UNIVERSITAS SUMATERA UTARA
32 volt=vout*0.0048887;
ftoa(volt,2,buff);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf(" Kadar Formalin ");
lcd_gotoxy(5,1);
lcd_puts(buff);
lcd_putsf(" V");
delay_ms(1000);
} }
UNIVERSITAS SUMATERA UTARA
33 Lampiran 2
Lampiran Rangkaian
UNIVERSITAS SUMATERA UTARA