Anda di halaman 1dari 121

PENGENDALI SUHU KOTAK OBAT DENGAN

MODE “ON/OFF” MENGGUNAKAN


TERMOELEKTRIK

TUGAS AKHIR
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Sains dan Teknologi
Program Studi Teknik Elektro

Disusun oleh:
RICKY NELSON
NIM : 035114007

PROGRAM STUDI TEKNIK ELEKTRO


FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2009

i
MEDICINE BOX CONTROLLER WITH “ON/OFF”
MODE USING THERMOELECTRIC

FINAL ASSIGNMENT
Presented as Partial Fulfillment of the Requirements
To Obtain the Bachelor of Science and Technology Degree
In Electrical Technique Study Program

By:
RICKY NELSON
NIM : 035114007

ELECTRICAL ENGINEERING STUDY PROGRAM


SCIENCE AND TECHNOLOGY FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2009

ii
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma :

Nama : Ricky Nelson


Nomor Mahasiswa : 035114007

Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan


Universitas Sanata Dharma karya ilmiah saya yang berjudul :

PENGENDALI SUHU KOTAK OBAT DENGAN MODE “ON/OFF”


MENGGUNAKAN TERMOELEKTRIK

beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan
kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, me-
ngalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data,
mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau media
lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun mem-
berikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.

Demikian pernyataan ini yang saya buat sebenarnya.

Dibuat di Yogyakarta

Pada tanggal : 21 Januari 2010

Yang menyatakannya

( Ricky Nelson )
LEMBAR PERNYATAAN KEASLIAN KARYA

“Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis ini
tidak memuat karya atau bagian karya orang lain,
kecuali yang telah disebutkan dalam kutipan dan daftar pustaka,
sebagaimana layaknya karya ilmiah.”

Yogyakarta, 23 Oktober 2008


Penulis

Ricky Nelson

v
MOTTO DAN PERSEMBAHAN

“SEMUA YANG ALLAH LAKUKAN ADALAH BAIK”

“JANGANLAH HENDAKNYA KAMU KUATIR


TENTANG APAPUN JUGA,
TETAPI NYATAKANLAH DALAM SEGALA HAL
KEINGINANMU KEPADA ALLAH DALAM DOA DAN
PERMOHONAN DENGAN UCAPAN SYUKUR”
(FILIPI 4 : 6)

Kupersembahkan Tugas Akhir ini untuk :


< Allah Bapa di Surga atas kasih dan karunia-Nya.

< Papap, mamam dan kakakku tercinta.

< Almamaterku Teknik Elektro USD.

vi
PENGENDALI SUHU KOTAK OBAT DENGAN
MODE “ON/OFF” MENGGUNAKAN
TERMOELEKTRIK

Ricky Nelson
035114007

INTISARI

Untuk kondisi yang baik obat membutuhkan penyimpanan yang baik pula, salah
satunya adalah faktor suhu. Dengan pengaturan suhu, obat dapat bertahan lebih lama.
Berdasarkan hal ini akan dibuat alat pendingin menggunakan termoelektrik dengan
mode “ on/off ”.
Nilai masukan berasal dari keypad untuk diolah mikrokontroler ATMega8535.
Dengan mode “ on/off ” nilai masukan dijadikan acuan untuk mengaktifkan
pendinginan pada plan yang dihasilkan oleh termoelektrik. Suhu didalam plan
dideteksi menggunakan sensor suhu LM35. Hasil keluaran dari sensor suhu menjadi
masukan mikrokontroler sebagai pembanding dengan nilai masukan. Untuk
menampilkan nilai masukan dan nilai dari sensor digunakan LCD.
Pengendali suhu dapat diimplementasikan dan dilakukan pengujian. Terbukti
bahwa pengendali suhu dapat bekerja dengan baik dari suhu 8 0C hingga suhu 4 0C.
Dengan waktu yang diperlukan sekitar 48,5 menit sampai 63 menit untuk mencapai
waktu stabil.

Kata kunci : termoelektrik, mode “ on/off “, suhu

vii
MEDICINE BOX CONTROLLER WITH “ON/OFF”
MODE USING THERMOELECTRIC

Ricky Nelson
035114007

ABSTRACT

To be in a good condition, medicines need a good storage, which is defined by


one important factor that is the temperature. With the temperature controlling, the
medicines can be stored for a long period. Based on this case, the cooler using
thermoelectric using “on/off” mode would be built.
The input value from the keypad will be processed by microcontroller
ATMega8535. With “on/off” mode, the value will then be assigned as the reference
to activate the cooling process in the plant which is produced by thermoelectric. The
temperature inside the plant is detected by the LM35 temperature sensor. The output
value from the temperature sensor will be the microcontroller’s input as the
comparison with the output value. LCD is used to show the input value and the value
from the sensor.
The temperature controller can be implemented and tested. It is proved that
the temperature controller can work well from the 8 0C to 4 0C. It needs about 47 until
63 minutes to achieve the stable time.

Key words: thermoelectric, “on/off” mode, temperature

viii
KATA PENGANTAR

Puji dan syukur penulis panjatkan ke hadirat Tuhan Yang Maha Esa yang telah

melimpahkan rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan tugas

akhir berjudul “Pengendali Suhu Kotak Obat Dengan Mode “On/Off” Menggunakan

Termoelektrik”. Tugas akhir ini merupakan salah satu syarat untuk memperoleh gelar

Sarjana pada program studi Teknik Elektro Universitas Sanata Dharma.

Penulisan tugas akhir ini tidak lepas dari bantuan berbagai pihak. Oleh karena

itu, penulis ingin mengucapkan terimakasih kepada :

1. Allah Bapa di Surga sumber kekuatanku.

2. Papapku Frengky. J. S dan mamamku Lilik. S tercinta yang telah memberikan

cinta, kasih sayang, doa, dukungan dan segala hal yang tak ternilai.

3. Kakakku Maria Kristin. N tersayang yang telah memberikan doa dan dukungan

serta menjadi tempat mengeluh saat pikiranku kacau.

4. Ibu Wuri selaku dosen pembimbing I yang telah banyak meluangkan waktu untuk

memberi bimbingan, pengetahuan, kritik dan saran kepada penulis dalam

menyelesaikan tugas akhir.

5. Bapak Tjendro selaku dosen pembimbing II yang telah banyak meluangkan waktu

untuk memberi bimbingan, pengetahuan, kritik dan saran kepada penulis dalam

menyelesaikan tugas akhir.

ix
6. Bapak Petrus selaku dosen penguji saat kolokium yang telah menambahkan ide

dan revisi untuk tugas akhir penulis.

7. Bapak Djoko dan ibu Prima selaku dosen penguji saat pendadaran yang telah

memberikan revisi untuk tugas akhir penulis.

8. Bapak Rusdi yang telah memberikan masukan dan pengetahuan mengenai proses

pendinginan.

9. R. Henry. R (TE’04) dan Zaenal Arif (TE’04) yang menjadi satu kelompok untuk

tugas akhir ini.

10. Semua rekan-rekan Teknik Elektro yang sudah mendukung, membantu dan

menghibur, khususnya : Rony, Andika, Yudi, Nendar dan Andry (TE’03).

11. Anak-anak “G.B.U” yang selalu menghibur : Luky, Deny, Indra, Wily dan Fery.

12. Semua orang yang terlalu banyak, sehingga tidak dapat disebutkan satu-persatu

yang telah membantu dan mendukung penulis.

Penulis menyadari bahwa masih banyak kelemahan dan kekurangan. Oleh

karena itu segala kritik dan saran yang membangun akan penulis terima dengan

senang hati.

Akhir kata, semoga tugas akhir ini dapat bermanfaat bagi penulis maupun

pembaca. Tuhan beserta kita.

Yogyakarta,
Penulis

Ricky Nelson

x
DAFTAR ISI

Halaman

JUDUL ……………………………………………………………………..…. i

LEMBAR PENGESAHAN OLEH PEMBIMBIMNG ………………………. iii

LEMBAR PENGESAHAN OLEH PENGUJI ………………………………. iv

LEMBAR PERNYATAAN KEASLIAN KARYA …………………….……. v

MOTTO DAN PERSEMBAHAN …………………………………….….…… vi

INTISARI ……………………………………………………………………... vii

ABSTRACT …………………………………………………………………… viii

KATA PENGANTAR ………………………………………………………… ix

DAFTAR ISI …………………………………………………………………... xi

DAFTAR GAMBAR ………………………………………….………………. xiv

DAFTAR TABEL ………………………………………..…………………….. xvii

BAB I PENDAHULUAN …………………………..……………………… 1

1.1. Latar Belakang Masalah …………………..…………………… 1

1.2. Rumusan Masalah ………………………………..…………… 2

1.3. Batasan Masalah ……………………………………………… 2

1.4. Tujuan dan Manfaat Penelitian ……………………..………… 3

1.5. Metodologi Penelitian ………………………………………… 3

xi
1.6. Sistematika Penulisan ………………………………….……… 4

BAB II DASAR TEORI ………………………………………….………… 5

2.1. Termoelektik ………………………………………..………… 5

2.2. Mikrokontroler ATMega 8535 ……………………..………… 6

2.2.1. Port I/O (Input / Output) ……………………………… 8

2.2.2. ADC (Analog Digital Converter) ………………..…… 8

2.3. LCD (Liquid Crystal Display) ………………………………… 10

2.4. Keypad Matrik 4x3 ………………………………………….… 11

2.5. Penguat Non-Inverting Dengan Op-Amp ……………………… 12

2.6. LM 35 ………………………………………….……………… 13

2.7. Kontrol Dua Posisi (On-Off) …………………………..……… 14

BAB III PERANCANGAN ………………………………………..…..…… 17

3.1. Diagram Blok ……………………………………….………… 18

3.2. Perancangan Diagram Blok ………………………………..… 19

3.2.1. Blok Keypad ………………………………………..… 19

3.2.2. Blok LCD ………………………………………..…… 20

3.2.3. Blok Termoelektrik …………………………………… 20

3.2.4. Blok Sensor ………………………………………..…. 21

3.2.5. Mikrokontroler ATMega 8535 ……………………..… 22

3.2.5.1. Rangkaian Osilator ………………………..… 22

3.2.5.2. Rangkaian Reset ……………………..……… 22

3.3. Perancangan Perangkat Lunak …………………………...…… 23

xii
3.4. Penggunaan Pin Pada Mikrokontroler ………………………… 26

BAB IV PENGAMATAN DAN PEMBAHASAN ………………………… 28

4.1. Cara Kerja Pendingin Kotak Obat Mode On-Off …………...… 31

4.2. Pengamatan Pendingin Kotak Obat …………………………… 34

4.2.1. Suhu Dalam Tabung Dengan Rangkaian Terbuka ….… 34

4.2.2. Waktu Tempuh dan Suhu Dengan Kendali On-Off …… 36

4.2.3. Nilai Tegangan Pendingin Kotak Obat ………...……… 48

4.2.4. Perangkat Lunak ………………………………….…… 49

BAB V KESIMPULAN DAN SARAN ……………………………….…… 63

5.1. Kesimpulan ………………………………………..……..…… 63

5.2. Saran ………………………………………..……….………… 63

DAFTAR PUSTAKA ……………………………………..…………………… 64

LAMPIRAN GRAFIK SUHU DENGAN RANGKAIAN TERBUKA

LAMPIRAN NILAI SUHU DENGAN MODE ON – OFF

LAMPIRAN SKETSA PENDINGIN KOTAK OBAT

LAMPIRAN RANGKAIAN PENDINGIN KOTAK OBAT

LAMPIRAN LIST PROGRAM MODE ON – OFF

LAMPIRAN DATASHEET

xiii
DAFTAR GAMBAR

Halaman

Gambar 2.1. Elemen Termoelektrik ………………………………………..…. 5

Gambar 2.2. Konfigurasi Pin ATMega8535 ………………………………..… 7

Gambar 2.3. Register ADMUX …………………………………..………..… 9

Gambar 2.4. Format Data ADC dengan ADLAR = 0 ……………………..… 9

Gambar 2.5. Format Data ADC dengan ADLAR = 1 …………………..…… 9

Gambar2.6. Bentuk LCD 2 x 16 Karakter …………………………………… 10

Gambar 2.7. Bagian LCD 2 x 16 Karakter …………………………………… 10

Gambar 2.8. Gambar Keypad Matrik 4 x 3 ………………………………..… 11

Gambar 2.9. Rangkaian Penguat Non-Inverting …………………..………… 13

Gambar 2.10. (a) Diagram Blok Kontrol Dua Posisi; (b) Dengan Celah Diferensial

…………………………………………………..……………… 14

Gambar 2.11. Sistem Pengontrolan Tinggi Muka Air ………………………… 15

Gambar 2.12. Kurva Tinggi Muka Terhadap Waktu ……………….…….…… 16

Gambar 3.1. Plan “Pendingin Kotak Obat” ……………………….……….… 17

Gambar 3.2. Diagram Blok “Pendingn Kotak Obat” …………..…..………… 18

Gambar 3.3. Keypad Matrik 4 x 3 pada Mikrokontroler ……………..……… 19

Gambar 3.4. Rangkaian Dioda Zener ………………………………………… 22

Gambar 3.5. Rangkaian Osilator …………………………………...………… 22

xiv
Gambar 3.6. Rangkaian Reset ……………………….……………..………… 23

Gambar 3.7. Diagram Alir Utama ……………………………………….…… 24

Gambar 3.8. Diagram Alir Masukan …………………………………….…… 25

Gambar 3.9. Diagram Alir Kontrol On-Off …………………………….…… 26

Gambar 4.1. Bentuk Akhir Pendingin Kotak Obat ………………………..… 28

Gambar 4.2. Driver Arus ……………………………………………………… 29

Gambar 4.3. Sumber Tegangan …………………………………………….… 29

Gambar 4.4. Untuk Mikrokontroler ……………………………………..…… 30

Gambar 4.5. PCB Masukan dan Keluaran …………………………….……… 31

Gambar 4.6. Tampilan Awal …………………………………………….…… 32

Gambar 4.7. Tampilan Input ……………...……………………..…………… 32

Gambar 4.8. Tampilan Pemilih “OK / ,” ………………………...…………… 32

Gambar 4.9. LCD Menampilkan Nilai Input dan Nilai Sensor ………….…… 32

Gambar 4.10. Grafik Tegangan Masukan Termoelektrik +6 volt, +7 volt dan +8 volt

………………………………………………..…………………. 35

Gambar 4.11. Grafik Suhu dengan set point 8 ºC ……………...…..…………… 38

Gambar 4.12. Tr dan Ts saat set point 8 ºC ………………………………..…… 39

Gambar 4.13. Grafik Suhu dengan set point 7 ºC ……………...…..…………… 39

Gambar 4.14. Tr dan Ts saat set point 7 ºC …………………….….…………… 40

Gambar 4.15. Grafik Suhu dengan set point 6 ºC ………………………….…… 41

Gambar 4.16. Tr dan Ts saat set point 6 ºC …………………………………….. 41

Gambar 4.17. Grafik Suhu dengan set point 5 ºC ………………………………. 42

xv
Gambar 4.18. Tr dan Ts saat set point 5 ºC ……………………………………. 42

Gambar 4.19. Grafik Suhu dengan set point 4 ºC ……………………………… 44

Gambar 4.20. Tr dan Ts saat set point 4 ºC ………………………………….… 44

Gambar 4.21. Grafik Suhu dengan set point 3 ºC ……………………………… 45

Gambar 4.22. Tr dan Ts saat set point 3 ºC ………………………………….… 45

Gambar 4.23. Grafik Suhu dengan set point 2 ºC ……………………………… 47

Gambar 4.24. Tr dan Ts saat set point 2 ºC ……………………………………. 47

xvi
DAFTAR TABEL

Halaman

Tabel 2.1. Konfigurasi Pengaturan Port I/O ………………………………. 8

Tabel 2.2. Pemilihan Mode Tegangan Referensi ADC …………………… 9

Tabel 2.3. Logika Digital Untuk Keypad Matrik 4 x 3 …………………… 12

Tabel 4.1. Tegangan +6 volt ……………………………………..…...….… 36

Tabel 4.2. Tegangan +7 volt ……………………………………….…….… 36

Tabel 4.3. Tegangan +8 volt …………………………………….…….…… 36

Tabel 4.4. Suhu Setpoint 8 ºC ………………………………....…………… 38

Tabel 4.5. Suhu Setpoint 7 ºC ………………………………....…………… 39

Tabel 4.6. Suhu Setpoint 6 ºC ………………………………....…………… 41

Tabel 4.7. Suhu Setpoint 5 ºC ………………………………....…………… 42

Tabel 4.8. Suhu Setpoint 4 ºC ………………………………....…………… 43

Tabel 4.9. Suhu Setpoint 3 ºC ………………………………....…………… 44

Tabel 4.10. Suhu Setpoint 2 ºC ………………………………....…………… 46

Tabel 4.11. Nlai Tegangan ……………………………………....…………… 48

xvii
1

BAB I

PENDAHULUAN

1.1. Latar Belakang Masalah

Untuk kondisi yang baik obat membutuhkan penyimpanan yang baik

pula, salah satunya adalah faktor suhu. Dengan pengaturan suhu, obat dapat

bertahan lebih lama. Saat ini telah beredar mesin pendingin berbentuk kulkas

dengan cara pendinginan freon. Bentuk yang besar sangat memboroskan

tempat untuk obat dalam sekala kecil. Selain itu pendinginan dengan

menggunakan freon dapat merusak lapisan ozon bila terjadi kebocoran pada

tabung yang menyimpan freon tersebut.

Sesuai dengan perkembangan teknologi yang semakin canggih maka alat

pendingin dapat dibuat dengan bentuk yang kecil yaitu berupa tabung,

pendinginan dilakukan dengan menggunakan termoelektrik. Pada penelitian

ini akan dibuat alat pendingin obat dengan basis mikrokontroler ATMega8535

dengan masukan berupa keypad dan ditampilkan oleh LCD (Liquid Crystal

Display). Dengan bentuk yang kecil dan pendinginan dengan termoelektrik

diharapkan dapat mengurangi pemborosan tempat dan tidak ada perusakan

pada lapisan ozon bila terjadi kerusakan pada termoelektrik.


2

1.2 Rumusan Masalah

Permasalahan dalam penelitian ini dapat dirumuskan sebagai berikut :

Membuat sebuah pendingin tabung reaksi yang dapat digunakan untuk

melakukan pendinginan obat dengan bentuk yang kecil dan dengan suhu

variabel. Mikrokontroler ATMega8535 digunakan untuk memproses data

masukan dari keypad kemudian menghasilkan data keluaran yang ditampilkan

melalui LCD (Liquid Crystal Display).

Dari uraian tersebut, masalah yang didapat adalah :

1. Merancang dan membuat tabung pendingin obat.

2. Merancang dan membuat rangkaian antarmuka mikrokontroler, keypad

masukan dan LCD.

3. Membuat perangkat lunak pada mikrokontroler untuk mengolah data

masukan dan menampilkannya pada LCD.

1.3 Batasan Masalah

Batasan masalah pada alat ini adalah :

1. Suhu minimum antara 3 0C sampai suhu ruang saat diberi beban berupa

air.

2. Menggunakan tiga buah termoelektrik.

3. Menggunakan sebuah mikrokontroler ATMega8535.

4. Masukan nilai suhu dari keypad.


3

5. Menggunakan LCD sebagai penampil suhu.

6. Menggunakan kendali on-off untuk mengatur suhu.

1.4 Tujuan dan Manfaat Penelitian

Peneliti mempunyai tujuan yang ingin dicapai, yaitu untuk merancang

dan membuat perangkat keras dan perangkat lunak menggunakan

mikrokontroler ATMega8535 yang dapat digunakan untuk mengolah dan

mengatur hasil dari proses pendinginan, dan ditampilkan pada LCD.

Penelitian ini diharapkan dapat memberikan manfaat :

1. Sebagai referensi yang dapat mendukung penelitian selanjutnya berkaitan

dengan aplikasi sensor dan mikrokontroler.

2. Tersedianya sebuah mesin pendingin obat untuk memudahkan penelitian

dan proses pendinginan dalam skala kecil.

1.5 Metodologi Penelitian

Adapun metodologi penelitian yang dilakukan terdiri dari :

1. Studi literatur, yaitu dengan mempelajari berbagai informasi, dari buku

dan internet sehingga dapat digunakan sebagai referensi pendukung

dalam penyusunan laporan.

2. Perencanaan rancangan dan pembuatan alat dalam bentuk perangkat

keras maupun perangkat lunak.

3. Melakukan pengamatan dan pengujian terhadap hasil perancangan agar

diketahui apakah alat dapat bekerja dengan baik.


4

1.6 Sistematika Penulisan

Sistematika penulisan tugas akhir ini terbagi menjadi lima bab yang

disusun sebagai berikut:

BAB I. PENDAHULUAN

Bab ini berisi tentang latar belakang masalah, tujuan dan manfaat

penelitian, perumusan masalah, batasan masalah, metodologi

penulisan, dan sistematika penulisan.

BAB II. DASAR TEORI

Bab ini berisi tentang dasar teori komponen-komponen yang akan

digunakan dalam penelitian .

BAB III. RANCANGAN PENELITIAN

Bab ini berisi tentang diagram blok dan penjelasan cara kerja secara

singkat rancangan perangkat keras dan perangkat lunak.

BAB IV. HASIL PENELITIAN DAN PEMBAHASAN

Bab ini berisi tentang pengamatan kerja dari perangkat keras dan

perangkat lunak yang telah dibuat.

BAB V. PENUTUP

Bab ini berisi tentang kesimpulan dan saran untuk perbaikan alat dan

penelitian selanjutnya.
5

BAB II

DASAR TEORI

2.1. TERMOELEKTRIK

Elemen semikonduktor pada termoelektrik (tipe n dan tipe p) terhubung seri

secara listrik dan terhubung paralel secara termal (lihat pada gambar 2.1.)

Gambar 2.1. Elemen termoelektrik [1]

Elemen semikonduktor dan konduktor listriknya ini disisipkan diantara dua

buah lapisan keramik, yang berfungsi untuk menyatukan struktur termoelektrik

dan sebagai isolator listrik antar tiap elemen semikonduktor. Pada sisi dingin

kalor diserap elektron ketika elektron mengalir dari elemen semikonduktor level

energi rendah (tipe p) ke elemen semikonduktor level energi tinggi (tipe n).

Dua batang logam yang berbeda disambungkan sehingga membentuk

sebuah rangkaian tertutup, ketika salah satu ujung dipanaskan akan mengalir

arus. Fenomena ini dinamakan efek Seebeck, karena ditemukan Thomas

Seebeck pada tahun 1821 [2].


6

Begitu pula kebalikannya, ketika dua batang logam yang berbeda

disambungkan sehingga membentuk sebuah rangkaian tertutup dan dialirkan

arus listrik. Maka salah satu ujung sambungan menyerap kalor, sehingga

menjadi hangat dan pada ujung sambungan lainnya melepaskan kalor.

Fenomena ini ditemukan Jean Charles Athanase Peltier pada tahun 1834,

sehingga dinamakan efek PeltierI [3].

Salah satu jenis termoelektrik adalah TEC 1-127-06, maksudnya adalah nilai

awal yang bernilai 1 menjelaskan jumlah tingkat termoelektrik, nilai kedua

yang bernilai 127 menjelaskan jumlah sambungan tipe p dan tipe n, sedangkan

nilai terakhir yang bernilai 06 menjelaskan nilai maksimal arus masukan pada

termoelektrik. Nilai arus masukan menjadi acuan temperatur minimum,

sehingga nilai arus variabel. Pengendalian nilai arus sesuai dengan perubahan

nilai tegangan. Sehingga bila arus berubah nilai tegangan pun berubah.

2.2. MIKROKONTROLER ATMEGA8535

AVR merupakan produk Atmel, ATMega merupakan satu dari empat kelas

AVR dan ATMega8535 merupakan jenis dari kelas ATMega [4]. Dipilihnya

mikrokontroler ini, karena memiliki beberapa fungsi yang digunakan untuk

merancang pembuatan pendingin kotak obat. Beberapa fungsi tersebut adalah

adanya ADC (Analog Digital Converter) 10 bit, saluran I/O sebanyak 32 pin

yang terbagi menjadi empat buah port (port A, port B, port C dan port D) dan

memori flash sebesar 8 kilobyte.


7

Mikrokontroler ATMega8535 memiliki arsitektur RISC 8 bit yang semua

intruksi dikemas dalam kode 16 bit dan sebagian besar intruksi dieksekusi

dalam satu siklus clock [5].

Gambar 2.2. Konfigurasi Pin ATMega8535

Pada gambar 2.2. terlihat konfigurasi pin ATMega8535. Secara fungsional

dapat dijelaskan sebagai berikut :

1. VCC; sebagai pin masukan catu daya.

2. GND; sebagai pin ground.

3. Port A (PA0 ... PA7); sebagai pin I/O dua arah dan sebagai input analog ke A/D

konverter.

4. Port B (PB0 ... PB7); sebagai pin I/O dua arah dan pin dengan fungsi khusus,

seperti timer/counter, komparator dan SPI

5. Port C (PC0 ... PC7); sebagai pin I/O dua arah dan pin dengan fungsi khusus,

seperti TWI (Two-Wire serial Interface), komparator dan timer oscilator


8

6. Port D (PD0 ... PD7); sebagai pin I/O dua arah dan pin dengan fungsi khusus,

seperti interupsi, komparator dan komunikasi serial

7. XTAL1; sebagai input oscillator

8. XTAL2; sebagai output oscillator

9. RESET; sebagai pin untuk me-reset mikrokontroler

10. AVCC; sebagai pin masukan tegangan untuk ADC

11. AREF; sebagai pin masukan tegangan referensi ADC

2.2.1. Port I/O (Input / Output)

ATmega8535 mempunyai 32 pin I/O dan dikelompokan menjadi empat

buah port yang bernama PortA, PortB, PortC, dan PortD. Port I/O pada

mikrokontroler ATMega8535 dapat berfungsi sebagai masukan atau keluaran,

sesuai dengan pengaturan yang digunakan. Untuk mengatur port I/O sebagai

masukan atau keluaran perlu dilakukan pengaturan pada DDR dan port.

Tabel 2.1. Konfigurasi Pengaturan Port I/O


DDR bit =1 DDR bit = 0
Port bit =1 Keluaran aktif tinggi Masukan aktif rendah
Port bit =0 Keluaran aktif rendah Masukan aktif tinggi

2.2.2. ADC (Analog Digital Converter)

ATMega8535 merupakan tipe AVR yang dilengkapi 8 saluran ADC internal

dengan fidelitas 10 bit. Proses inisialisasi ADC meliputi proses penentuan

clock, tegangan referensi, format output data, dan mode pembacaan. Register

yang di set adalah ADMUX (ADC Multiplexer Selection Register), ADCSRA

(ADC Control and Status Register A), dan SFIOR (Special Fungtion IO
9

Register). ADMUX merupakan register 8 bit yang berfungsi menentukan

tegangan referensi ADC, format data output, dan saluran ADC yang digunakan.

REFS 0 REFS 1 ADLAR MUX 4 MUX 3 MUX 2 MUX 1 MUX 0


Gambar 2.3. Register ADMUX

Bit penyusunnya dapat dijelaskan sebagai berikut:

1. REFS [1..0] merupakan bit pengaturan tegangan referensi ADC

ATMega8535. memiliki nilai awal 00 sehingga referensi tegangna berasal

dari pin AREF. Untuk nilai yang lain dapat dilihat pada tabel 2.2.

Tabel 2.2. Pemilihan mode tegangan referensi ADC


REFS [1..0] Mode Tegangan Referensi
00 Berasal dari pin AREF
01 Berasal dari pin AVCC
10 Tidak digunakan
11 Berasal dari tegangan referensi internal

2. ADLAR merupakan bit pemilihan mode data keluaran ADC yang

digunakan untuk menentukan konfigurasi isi dari register ADCH dan

ADCL sebagai tempat menyimpan hasil konversi.

Gambar 2.4. Format Data ADC dengan ADLAR = 0

Gambar 2.5. Format Data ADC dengan ADLAR = 1

3. MUX [4...0] merupakan bit pemilih saluran pembaca ADC.


10

Dalam pembacaan hasil konversi ADC, dilakukan pengecekan pada bit

ADIF (ADC Interrupt Flag) pada register ADCSRA. ADIF akan bernilai satu

jika konversi saluran ADC telah selesai dilakukan dan data hasil konversi siap

untuk diambil, demikian pula sebaliknya.

2.3. LCD (Liquid Crystal Display)

LCD (Liquid Crystal Display) merupakan piranti yang dapat menampilkan

karakter, terbuat dari bahan kristal cair dengan sistem dot matrik. Pada

perancangan ini digunakan LCD 2 x 16 karakter seperti gambar 2.6, artinya

terdapat 2 baris dengan 16 karakter tiap barisnya, maka jumlah keseluruhan

terdapat 32 karakter. Setiap satu karakter terdiri dari 8 baris dan 5 kolom dot.

Gambar 2.6. Bentuk LCD 2 x 16 karakter

Gambar 2.7. Bagian LCD 2 x 16 karakter [6]

Jenis LCD yang digunakan pada perancangan adalah LCD Module M1632

produk dari SEIKO. Berdasarkan gambar 2.7, konfigurasi pin LCD adalah :
11

1. VCC; sebagai pin terminal power supply (+5V).

2. GND; sebagai pin terminal ground.

3. DB0 s/d DB7; sebagai pin jalur data yang digunakan untuk menyalurkan

data kode ASCII atau perintah untuk mengatur kerja LCD.

4. RS (register select); pin yang membedakan jenis data yang dikirim ke LCD.

Jika RS berlogika ‘0’, maka yang dikirim adalah perintah pengaturan LCD.

Jika berlogika ‘1’, maka yang dikirim adalah data kode ASCII.

5. R/W (read/write); pin untuk mengaktifkan pengiriman atau pengambilan

data dari LCD. Jika R/W berlogika ‘0’, maka terjadi pengiriman data ke

LCD. Jika R/W berlogika ‘1’, maka terjadi pengambilan data dari LCD.

6. E (enable); merupakan sinyal sinkronisasi. Saat E berubah dari logika ‘1’ ke

‘0’, maka data di DB0 s/d DB7 akan diterima atau diambil dari port

mikrokontroler.

2.4. KEYPAD MATRIK 4 x 3

Gambar 2.8. Gambar Keypad Matrik 4 x 3


12

Keypad matrik 4 x 3 adalah tombol push-on yang tersusun 4 baris dan 3

kolom. Seperti pada gambar 2.8. untuk pembacaan data terbagi menjadi dua,

yaitu pembacaan data pada baris dan pembacan data pada kolom. [7]

Tabel 2.3. Logika Digital Untuk Keypad Matrik 4 x 3


Kolom Kolom Kolom Baris Baris Baris Baris Kode
Karakter
1 2 3 1 2 3 4 Biner
0 0 0 1 1 1 1 (none) 1111
0 1 1 0 1 1 1 1 0001
1 0 1 0 1 1 1 2 0010
1 1 0 0 1 1 1 3 0011
0 1 1 1 0 1 1 4 0100
1 0 1 1 0 1 1 5 0101
1 1 0 1 0 1 1 6 0110
0 1 1 1 1 0 1 7 0111
1 0 1 1 1 0 1 8 1000
1 1 0 1 1 0 1 9 1001
0 1 1 1 1 1 0 * 1010
1 0 1 1 1 1 0 0 0000
1 1 0 1 1 1 0 # 1011

Pembacaan bertipe aktif rendah, artinya saat akan mengaktifkan baris atau

kolom yang dituju maka data yang diberikan adalah nol. Pemberian data dapat

dilihat dari tabel 2.3.

2.5. PENGUAT NON-INVERTING DENGAN OP-AMP

Dengan menggunakan op-amp (oprational amplifier) dapat dirangkai

sebuah penguat tegangan, baik itu penguatan negatif maupun penguatan positif

tergantung dari masukannya. Untuk membuat penguatan positif masukan yang

digunakan adalah kaki non-inverting, dengan masukan yang bernilai positif


13

akan mengeluarkan nilai positif pula. Untuk rangkaiannya terlihat pada gambar

2.9.

Gambar 2.9. Rangkaian Penguat Non-inverting

Tegangan keluaran dari rangkaian penguat non-inverting dirumuskan :

Vo = [ 1 + ( Rf / R ) ] x Vi

Dengan rumusan penguatan (Av) dari penguat non-inverting :

Av = Vo / Vi

= (R + Rf) / R

= 1 + (Rf / R)

2.6. LM 35 [8]
LM35 sebuah IC sensor suhu dengan beberapa kriteria seperti :

1. Beroperasi pada ° Celsius

2. Skala kenaikan Linear +10.0 mV/°C

3. Ketepatan 0.5°C (pada 25°C)

4. Bekerja pada −55° sampai +150°C

5. Bekerja pada tegangan 4 sampai 30 volts

6. Penggunaan arus kurang dari 60 µA

7. Keluaran impedansi yang rendah 0.1 W untuk beban 1 mA


14

2.7. KONTROL DUA POSISI (ON – OFF) [9]

Dalam sistem kontrol dua posisi, elemen penggerak hanya mempunyai dua

posisi tetap, yang dalam beberapa hal, benar-benar merupakan posisi ”on” dan

posisi ”off”. Kontrol dua posisi atau on-off relatif sederhana dan murah.

Misal sinyal keluaran kontroler adalah m(t) dan sinyal kesalahan penggerak

adalah e(t). Pada kontrol dua posisi, sinyal m(t) akan tetap pada harga

maksimum atau minimumnya, bergantung pada sinyal kesalahan penggerak

(positif atau negatif), sedemikian rupa sehingga :

m(t) = M1 untuk e(t) > 0

= M2 untuk e(t) < 0

Gambar 2.10 menunjukan diagram blok kontrol dua posisi. Daerah harga

sinyal kesalahan penggerak antara posisi “on” dan posisi “off” disebut celah

diferensial (differential gap). Suatu celah diferensial ditunjukan pada gambar

2.10(b). Celah diferensial ini menyebabkan keluaran kontroler m(t) tetap pada

harga sekarang sampai sinyal kesalahan penggerak bergaser sedikit dari harga

nol. Pada beberapa kasus, celah diferensial disebabkan oleh gesekan yang tidak

diinginkan dan kelambanan gerak.

Gambar 2.10. (a) Diagram Blok Kontrol Dua Posisi; (b) Dengan Celah Diferensial
15

Tinjau sistem tinggi muka cairan yang ditunjukan pada gambar 2.11.

Dengan kontrol dua posisi, maka katup akan membuka (penuh) atau menutup

(penuh). Jadi laju aliran air yang masuk adalah konstan positif atau nol. Seperti

ditunjukan pada gambar 2.12, sinyal keluaran berubah-ubah terus diantara dua

harga batas yang diperlukan untuk membuat elemen penggerak perubah dari

satu posisi tetap ke posisi tetap lainnya. Perhatikan bahwa kurva keluaran

mengikuti salah satu diantara dua kurva eksponensial, yaitu kurva pengisian dan

kurva pengosongan. Osilasi keluaran antara batas tersebut merupakan

karakteristik respon yang khas dari sistem kontrol dua posisi. Dari gambar 2.12,

dapat dilihat bahwa amplitudo osilasi keluaran dapat di perkecil dengan cara

memperkecil celah diferensial. Akan tetapi hal ini dapat menyebabkan kenaikan

angka switching “on-off” untuk waktu nyang sama. Parameter tanggapan sistem

control dua posisi sebagai berikut :

1. Waktu naik (rise time), Tr : waktu yang diperlukan respon untuk naik

keadaan awal sampai nilai yang ditentukan sebagai set point 0%.

2. Waktu penetapan (settling time), Ts : waktu yang diperlukan untuk

mencapai suatu nilai dalam keadaan stabil yang ditentukan dengan nilai

mutlak dari harga akhir (5% atau 2%).

Gambar 2.11. Sistem Pengontrolan Tinggi Muka Air


16

Gambar 2.12. Kurva Tinggi Muka Terhadap Waktu


17

BAB III

PERANCANGAN ALAT

Perancangan awal untuk membuat pendingin obat adalah struktur

mekaniknya terlebih dahulu. Hal tersebut perlu dilakukan karena berpengaruh

dengan suhu minimum yang akan dicapai. Sehingga pendinginan dapat terjadi

dengan baik dan suhu panas dapat terbuang dengan cepat.

Gambar 3.1. Plan “Pendingin Kotak Obat”

Wadah pendingin berbentuk tabung pada bagian dalam, sedangkan untuk

bentuk luar berupa kotak. Bahan yang digunakan pada bagian dalam adalah

alumunium pejal penghantar suhu yang baik dibandingkan besi. Pada lapisan

luar menggunakan styrofoam dan akrilit untuk menahan udara agar tetap

bersirkulasi didalam. Selain itu busa padat (spon) digunakan sebagai penutup
18

tabung agar pendinginan terjadi dengan cepat dan tidak terganggu dengan suhu

lingkungan. Perancangan awal untuk membuat “Pendingin Kotak Obat” adalah

struktur mekaniknya terlebih dahulu. Hal tersebut perlu dilakukan karena

berpengaruh dengan suhu minimum yang akan dicapai. Sehingga pendinginan

dapat terjadi dengan baik dan suhu panas dapat terbuang dengan cepat.

Untuk proses pendinginan digunakan Termoelektrik. Komponen ini

berbentuk plat segi empat dan keramik sebagai pelapisnya dengan dua sisi yang

memiliki suhu berbeda, satu sisi menghasilkan dingin dan sisi yang lain

menghasilkan panas. Pada sisi yang menghasilkan suhu panas dipasang heat-

sink agar tidak mempengaruhi sisi yang lain, setelah pemasangan heat-sink agar

suhu panas cepat dilepas ke udara sekitar maka dipasang kipas pada bagian

bawah heat-sink. Gambar 3.1. menunjukkan plan pendingin obat.

3.1. Diagram Blok

Untuk membuat Pendingin vaksin diperlukan perancangan perangkat keras

dan perangkat lunak. Untuk perangkat keras dapat dilihat pada gambar 3.2.

Gambar 3.2. Diagram blok “Pendingin Kotrak Obat”


19

Sesuai dengan diagram blok keypad matrik memberikan masukan pada

mikrokontroler ATMega8535 dan ditampilkan melalui LCD. Masukan keypad

matrik juga untuk mengatur kinerja termoelektrik melalui program didalam

ATMega8535. Dengan bantuan detektor suhu LM 35, maka suhu yang

dihasilkan termoelektrik menjadi masukan pada mikrokontoler ATMega8535

untuk dibandingkan dengan masukan awal dari keypad matrik.

3.2. Perancangan Diagram Blok

3.2.1. Blok Keypad

Keypad matrik 4 x 3 digunakan sebagai masukan suhu awal yang kita

inginkan. Untuk rangkaian dapat dilihat pada gambar 3.3. Tombol yang

digunakan bertipe push-on, artinya pada keadaan awal tombol bernilai nol dan

saat ditekan tombol bernilai satu.

Gambar 3.3. Keypad Matrik 4 x 3 pada Mikrokontroler


20

3.2.2. Blok LCD

Sesuai dengan dasar teori, LCD yang digunakan adalah LCD 2x16 karakter.

Maka pada proses awal, baris pertama (atas) menampilkan “ *PENDINGIN

OBAT* “ dan pada baris kedua (bawah) menampilkan “*MODE ON – OFF* “.

Untuk proses kedua, baris pertama (atas) menampilkan “ Input = ” dan pada

baris (bawah) kosong. Jika input telah diberi masukan maka pada baris kedua

(bawah) menampilkan “ Tekan : OK / , ”.

Jika menekan tombol “OK” maka baris pertama menampilkan “ Input = ”

beserta dengan nilai suhu dan baris ke dua menampilkan “ Sensor = “, maksud

dari baris kedua adalah nilai suhu yang terbaca oleh sensor. Tetapi jika

menekan tombol “,” maka akan kembali ke proses kedua untuk memberi nilai

masukan.

3.2.3. Blok Termoelektrik

Besar kecilnya arus mempengaruhi suhu yang dihasilkan. Perubahan arus

berakibat berubah pula nilai tegangan, sehingga pengaturan dilakukan pada

tegangan masukan untuk termoelektrik.Tegangan yang dihasilkan dari

mikrokontroler adalah 5 volt, sehigga perlu penguatan menggunakan rangkaian

penguat non-inverting.

Jika dilakukan penguatan dua kali dari tegangan masukan pada penguat non-

inverting dan nilai resistor sebesar 1000 Ω pada kaki masukan negatif op-amp.

Av = 2x dan R = 1000Ω

Maka nilai Rf yang akan diperoleh,


21

Av = 1 + (Rf / R)

2 = 1 + (Rf / 1000)

Rf = (2 - 1) x 1000

= 1000Ω

Dari perancangan diatas maka tegangan yang dihasilkan penguat non-inverting

adalah 10 volt. Sehingga termoelektrik dapat bekerja lebih baik dibanding

dengan tegangan yang diterima termoelektrik sebesar 5 volt.

Untuk perancangan ini suhu yang digunakan adalah dingin, dengan acuan

semakin besar arus yang masuk maka semakin dingin suhu yang di peroleh.

Arus maksimal ditentukan berdasarkan nilai yang tertera pada satu digit

belakang termoelektrik. Bila arus melebihi nilai tersebut akibatnya

termoelektrik akan mengalami kerusakan dan tidak dapat digunakan.

Dikarenakan termoelektrik menghasilkan suhu panas dan dingin yang berbeda

dikedua sisinya, maka suhu panas harus dapat dibuang dengan pemberian heat-

sink dan kipas dibagian panas. Sehingga suhu yang panas tidak mempengaruhi

suhu yang dingin.

3.2.4. Blok Sensor

LM 35 merupakan sensor pendeteksi suhu. Sistem sensor ini menghasilkan

keluaran berupa tegangan dengan sekala kecil dan kenaikan 10mV/ 0C. Hasil

yang diperoleh menjadi masukan ADC untuk diolah mikrokontroler

ATMega8535, karena mikrokontroler memiliki nilai batas maka diperlukan


22

rangkaian dioda zener untuk tegangan referensi sebagai tingkat perubahan

setiap masukan dari sensor. Rangkaian dioda zener seperti gambar 3.4.

Gambar 3.4. Rangkaian dioda Zener

3.2.5. Mikrokontroler ATMega8535

Setiap mikrokontroler perlu ditambah beberapa rangkaian tambahan, yaitu

osilator dan reset.

3.2.5.1. Rangkaian Osilator

Setiap mikrokontroler mempunyai fasilitas osilator yang berfungsi untuk

mengendalikan mikrokontroler dengan periode clock. Pengaturannya terletak

pada jenis kristal yang digunakan dan diletakan diantara pin XTAL1 dan pin

XTAL2. Seperti gambar 3.5.

Gambar 3.5. Rangkaian Osilator

3.2.5.2. Rangkaian Reset

Mikrokontroler dapat direset saat mengeksekusi program. Antara pin reset

dengan VCC diberi sebuah resistor sedangkan antara pin reset dengan ground

diberi sebuah kapasitor hal tersebut untuk menjaga reset dengan keadaan logika
23

tinggi. Jika kapasitor terisi penuh maka tegangan pada reset menurun dan reset

berlogika rendah, proses reset selesai.

Gambar 3.6. Rangkaian Reset

Tombol yang dipasang paralel dengan kapasitor berfungsi untuk melakukan

reset secara manual pada saat program sedang berlangsung. Saat tombol ditekan

maka tejadi pengosongan kapasitor dan reset berlogika tinggi, sedangkan saat

tombol dilepas tegangan pada reset menjadi nol dan reset berlogika rendah.

Rangkaiannya terlihat pada gambar 3.6.

3.3. Perancangan Perangkat Lunak

Program yang akan dibuat adalah suatu program penentuan nilai suhu

dengan mode on-off. Saat nilai suhu kurang dari yang diinginkan maka

termoelektrik akan on (bekerja) dan saat nilai suhu lebih dari yang diinginkan

maka termoelektrik akan off (tidak bekerja).

Diagram Alir Utama

Pada diagram alir utama menampilkan proses umum berlangsungnya

program. Untuk langkah awal ATMega8535 terlebih dahulu melakukan proses

inisialisasi, baik inisialisasi port untuk masukan atau keluaran, pengelompokan


24

tiap pin dari sebuah port dan register yang akan digunakan. Selanjutnya

mikrokontroler melakukan inisialisasi untuk LCD.

Gambar 3.7. Diagram Alir Utama

Setelah inisialisasi, mikrokontroler memproses data jika ada masukan dari

keypad. Hasilnya ditampilkan ke LCD, kemudian mikrokontroler melakukan

proses pengendalian dua posisi.

Diagram Alir Masukan

Diagram alir masukan berupa proses terjadinya masukan dari keypad untuk

mengetahui kapan nilai masukan diberikan dan untuk melakukan proses mode

on-off (kontrol dua posisi) atau berhenti.

Pada awal proses diperlukan masukan nilai suhu yang diinginkan, setelah itu

nilai masukan tersebut dipertanyakan terlebih dahulu apakah pasti dengan nilai
25

masukan atau tidak. Jika pasti maka tekan tombol “OK” dan proses akan

berlanjut, tetapi jika tidak tekan tombol “,” dan proses akan kembali untuk

menentukan nilai masukan.

Gambar 3.8. Diagram Alir Masukan

Dalam proses pemilihan mode on-off dan memberikan nilai masukan, bila

tidak ada perintah atau masukan dari keypad maka akan terjadi looping hingga

ada masukan.

Diagram Alir Proses Kontrol On – Off

Dalam diagram alir proses ini menjelaskan saat kontrol on-off berlangsung,

dimana pemilihan mode on-off dan masukan suatu nilai untuk pemrosesan

ulang tidak berpengaruh.

Seperti yang terlihat pada gambar 3.9 nilai masukan telah ditetapkan pada

proses pemilihan maka termoelektrik mulai aktif, demikian pula dengan sensor

pendeteksi suhu.
26

Gambar 3.9. Diagram Alir Proses Kontrol On – Off

Perbandingan dari nilai masukan dengan nilai yang diperoleh dari sensor

akan mengakibatkan termoelektrik “on” atau “off”, dengan penjelasan apabila :

1. Nilai masukan dan nilai dari sensor sama, maka termoelektrik akan “on”.

2. Nilai masukan lebih besar dari nilai sensor, maka termoelektrik akan “off”.

Prosesnya dilakukan berulang-ulang, sehingga keadaan dapat berubah

tergantung dari perbandingan antara nilai masukan dengan nilai sebenarnya

yang dihasilkan dari pendeteksian sensor suhu. Hasil yang diperoleh

dikeluarkan ke pin 7 di port D.

3.4. Penggunaan Pin Pada Mikrokontroler

Pada mikrokontoler ATMega8535 memiliki beberapa pin yang akan

digunakan sebagai masukan dan keluaran. Pin yang akan digunakan adalah

sebagai berikut :
27

• keypad matrik) ditetapkan pada Port B dengan konfigurasi :

Port B.0 : sebagai baris 1.


Port B.1 : sebagai baris 2.
Port B.2 : sebagai baris 3.
Port B.3 : sebagai baris 4.
Port B.4 : sebagai kolom 3.
Port B.5 : sebagai kolom 2.
Port B.6 : sebagai kolom 1.

• LCD pada Port C dengan konfigurasi :

Port C.0 : sebagai D4


Port C.1 : sebagai D5.
Port C.2 : sebagai D6.
Port C.3 : sebagai D7.
Port C.4 : sebagai RS.
Port C.6 : sebagai RW.
Port C.7 : sebagai E.

• Keluaran pada Port D.7

• ADC pada Port A.0.


28

BAB IV

PENGAMATAN DAN PEMBAHASAN

Dari hasil rancangan perangkat keras dan program perangkat lunak bahasa

assembler dengan menggunakan software AVR Studio 4 telah dihasilkan

sebuah alat yang berfungsi untuk melakukan proses pendingin kotak obat.

Bentuk keseluruhan yang dihasilkan dari pendingin kotak obat dapat dilihat

pada gambar 4.1.

Gambar 4.1. Bentuk Akhir Pendingin Kotak Obat

Trafo step-down digunakan untuk mengaktifkan rangkaian pendingin kotak

obat, berupa driver arus, pengendali dan kipas. Sumber tegangan untuk driver

arus menggunakan rangkaian yang sudah ada, seperti gambar 4.2. Untuk

pengendali menggunakan tegangan ± 15 volt. Awalnya tegangan berbentuk

sinus tetapi dengan rangkaian regulator serta menggunakan IC7815 untuk

tegangan positif dan IC7915 untuk tegangan negatif maka tegangan menjadi

lurus.
29

Gambar 4.2. Driver arus

Gambar 4.3. Sumber tegangan

Tegangan tersebut digunakan untuk mengendalikan op-amp, sedangkan

untuk mikrokontroler memerlukan tegangan sebesar +5 volt sehingga dari

tegangan +15 volt diturunkan menjadi +5 volt menggunakan IC7805, untuk

rangkaian sumber tegangan dapat dilihat pada gambar 4.3.

Tegangan yang digunakan untuk mengaktifkan kipas adalah +12 volt.

Tegangan keluaran +12 volt berbentuk sinus dari trafo masuk ke kapasitor
30

untuk diubah menjadi tegangan berbentuk lurus, sehingga tegangan tersebut

dapat digunakan untuk mengaktifkan kipas.

Gambar 4.4. Untuk mikrokontroler

Untuk rangkaian pengendali digunakan dua buah PCB yang tersusun

paralel. Satu buah PCB digunakan untuk rangkaian mikrokontroler seperti

gambar 4.4 yang berada pada bagian dalam, sedangkan PCB lainnya digunakan

untuk rangkaian masukan dan keluaran seperti gambar 4.5 yang berada pada

bagian luar.

Cara menggunakan alat ini dengan memberikan set point melalui keypad

sebanyak tiga angka, angka pertama untuk puluhan angka kedua untuk satuan

dan angka ketiga untuk satu buah angka dibelakang koma. Setelah selesai

memasukan tiga buah angka maka akan diberikan pilihan, jika set point tidak

sesuai dengan yang diinginkan maka tekan tombol ‘ , ’ sehingga dapat

memberikan nilai masukan kembali yang sesuai dengan keinginan. Tetapi bila
31

set point telah sesuai dengan yang diinginkan maka tekan ‘ OK ‘ dan alat

pendingin kotak obat akan memulai proses pendinginan.

Gambar 4.5. PCB masukan dan keluaran

Ketika proses sedang berlangsung kita dapat mengulang penggunaan alat

ini dari awal dengan menekan tombol ‘ , ‘ sekitar satu detik dan akan kembali

ke langkah awal dengan memberikan set point.

4.1. Cara Kerja Pendingin Kotak Obat Mode On - Off

Pada awal pendingin kotak obat diaktifkan LCD dan akan ditampilkan

“*PENDINGIN KOTAK OBAT*” pada baris pertama dan “*MODE ON –

OFF*” pada baris kedua dalam beberapa detik seperti gambar 4.6. Kemudian

baris pertama menampilkan “Input =” sedangkan baris kedua kosong seperti

gambar 4.7. Pada saat inilah mulai dimasukkan set point sebanyak tiga angka,

yaitu puluhan, satuan dan satu angka di belakang koma. Setelah itu muncul
32

"Tekan : OK / ," untuk memilih apakah nilai masukan sesuai untuk mode on-off

yang diinginkan atau tidak seperti gambar4.8.

Gambar 4.6. Tampilan Awal

Gambar 4.7. Tampilan Input

Gambar 4.8. Tampilan Pemilih “OK / ,”

Jika menekan tombol “OK” pada baris 4 kolom 1 maka mode on-off aktif dan

jika menekan tombol “,” pada baris 4 kolom 3 maka LCD menampilkan “Input

= ”.

Langkah awal saat mode on-off berlangsung adalah aktifnya sensor LM35

dan keluarannya menjadi masukan ADC pada mikrokontroler karena nilai yang

dihasilkan sensor berupa tegangan analog. Hasil dari ADC dikonversi ke ASCII

untuk ditampilkan di LCD. Untuk baris pertama tetap menampilkan “Input = ”

beserta set point, sedangkan untuk baris kedua akan menampilkan "Sensor = "

beserta dengan nilai ADC yang telah dikonversi ke ASCII, seperti gambar 4.9.

Gambar 4.9. LCD Menampilkan Nilai Input dan Nilai Sensor


33

Kemudian kendali on-off mulai aktif. Nilai masukan dan nilai dari sensor

dibandingkan. Hasil perbandingan untuk menentukan aktif atau non-aktif suatu

termoelektik sebagai pendingin kotak obat. Jika nilai masukan lebih kecil dari

nilai sensor maka termoelektrik aktif, jika nilai masukan sama dengan nilai

sensor termoelektrik akan tetap aktif, tetapi jika nilai masukan lebih kecil dari

nilai sensor maka termoelektrik akan non-aktif.

Proses kendali on-off dilakukan dengan membandingkan dan mengurangi.

Awalnya angka puluhan dibandingkan apakah sama atau tidak. Jika sama maka

langsung membandingkan angka satuan tetapi jika tidak sama maka nilai sensor

dikurangi dengan nilai masukan. Untuk hasil negatif mengakibatkan

termoelektrik non-aktif dan untuk hasil positif mengakibatkan termoelektrik

aktif. Demikian pula untuk angka satuan dengan membandingkan apakah sama

atau tidak. Jika sama maka langsung membandingkan angka di belakang koma

tetapi jika tidak sama maka nilai sensor dikurangi dengan nilai masukan. Untuk

hasil negatif termoelektrik non-aktif dan untuk hasil positif termoelektrik aktif.

Untuk satu angka di belakang koma dibandingkan juga. Jika sama maka

termoelektrik aktif tetapi jika tidak sama dilakukan pengurangan. Untuk hasil

negatif termoelektrik non-aktif dan untuk hasil positif termoelektrik aktif.

Hasil dari perbandingan dikeluarkan pada port D.7. Jika termoelektrik aktif

maka port D.7 bernilai satu dan jika non-aktif maka port D.7 bernilai nol. Saat

bernilai satu tegangan yang dikeluarkan mikrokontroler adalah +5 volt.

Keluaran tersebut diubah menjadi +8 volt dengan rangkaian penguat op-amp.


34

Keluaran tersebut menjadi masukan driver arus yang terbentuk dari rangkaian

transistor dua tingkat sehingga tegangan buka bernilai +1,4 volt. Tetapi hasil

yang diperoleh driver arus aktif saat tegangan +1 volt, sehingga tegangan total

yang mengaktifkan termoelektrik adalah +7 volt.

Proses on – off dilakukan setiap 30 detik secara terus menerus walaupun

suhu yang diperoleh telah dicapai. Sehingga suhu yang dihasilkan tetap stabil

dalam jangka waktu yang lama. Tetapi suhu akan berubah jika penutup dibuka

dan memerlukan waktu untuk mencapai suhu sesuai dengan masukan awal.

Dengan adanya bentuk akhir dari pendingin kotak obat dan program

pengendali maka dapat dilakukan pengamatan dan pembahasan dari hasil uji

coba alat untuk mengetahui tingkat keberhasilan dari perancangan. Beberapa

pengujian yang dilakukan adalah :

1. Pengamatan suhu dalam tabung dengan rangkaian terbuka

2. Pengamatan waktu tempuh dan suhu dengan kendali on-off biasa

3. Pengamatan nilai tegangan pendingin kotak obat

4.2. Pengamatan dan Analisa Pendingin Kotak Obat

4.2.1. Suhu Dalam Tabung dengan Rangkaian Terbuka

Dari percobaan awal, langkah pertama yang diambil adalah menentukan

nilai tegangan yang dikeluarkan oleh mikrokontroler dan waktu penggunaan

alat. Sehingga digunakan rangkaian terbuka untuk memperoleh nilai suhu

terbaik dengan variasi tegangan keluaran dari mikrokontroler yang dijadikan


35

tegangan masukan untuk termoelektrik dan variasi waktu penggunaan alat.

Hasilnya ditunjukkan pada tabel 4.1, tabel 4.2 dan tabel 4.3 sedangkan grafik

penggabungan dapat dilihat pada gambar 4.10.

Open Loop, jam 18.00 - 20.00


35

30

25
s u h u (c e lc iu s )

20 +6 V
+7 V
15 +8 V

10

0
0
5
10
15
20
25
30
35
40
45
50
55
60
65
70
75
80
85
90
95
100
105
110
115
waktu (menit)
Gambar 4.10. Grafik tegangan masukan termoelektrik +6 volt, +7 volt dan +8 volt

Untuk masing-masing tegangan, pengambilan data dilakukan tiga kali

dengan waktu yang berbeda, yaitu pagi (jam 02.00 – jam 04.00), siang (jam

10.00 – jam 12.00) dan malam (jam 18.00- jam 20.00). Untuk grafik

pengamatan masing-masing suhu dengan waktu yang berbeda dapat dilihat pada

lampiran grafik suhu dengan rangkaian terbuka. Penggunaan alat yang

dilakukan pada pagi, siang atau malam memiliki perbedaan sekitar satu derajat

untuk masing-masing perubahan. Sedangkan untuk nilai tegangan yang

dikeluarkan dari mikrokontroler sangat berpengaruh terhadap nilai perubahan.


36

Tabel 4.1. Tegangan +6 volt


Waktu Pengambilan Suhu Awal (0C) Suhu Akhir (0C) Perubahan (0C)
Jam 02.00 - 04.00 26 5,2 20,8
Jam 10.00 - 12.00 26,8 7,2 19,6
Jam 18.00 - 20.00 28,4 6,8 21,6

Tabel 4.2. Tegangan +7 volt


Waktu Pengambilan Suhu Awal (0C) Suhu Akhir (0C) Perubahan (0C)
Jam 02.00 - 04.00 26,8 2,8 24
Jam 10.00 - 12.00 28 3,6 24,4
Jam 18.00 - 20.00 27,6 4 23,6

Tabel 4.3. Tegangan +8 volt


Waktu Pengambilan Suhu Awal (0C) Suhu Akhir (0C) Perubahan (0C)
Jam 02.00 - 04.00 26,8 6,8 20
Jam 10.00 - 12.00 27,2 7,2 20
Jam 18.00 - 20.00 28,4 7,6 20,8

Dari hasil pengamatan rangkaian terbuka terlihat bahwa waktu penggunaan

tidak terlalu mempengaruhi kinerja alat, hanya mempengaruhi suhu ruang pada

kondisi awal. Dengan demikian menggunakan tegangan masukan pada

termoelektrik sebesar +7 volt yang dianggap memiliki kinerja ideal.

4.2.2. Waktu Tempuh dan Suhu dengan Kendali On-Off Biasa

Yang diamati dari pendingin kotak obat adalah waktu dan suhu sehingga

sesuai dengan set point. Beberapa pengamatan yang dilakukan berhubungan

dengan suhu ruang bagian dalam tabung adalah:

1. Suhu set point = 8 ºC, saat jam 15.00

2. Suhu set point = 7 ºC, saat jam 22.00


37

3. Suhu set point = 6 ºC, saat jam 05.00

4. Suhu set point = 5 ºC, saat jam 23.00

5. Suhu set point = 4 ºC, saat jam 22.00

6. Suhu set point = 3 ºC, saat jam 08.30

7. Suhu set point = 2 ºC, saat jam 13.00

Proses yang dilakukan adalah mode on-off biasa. Termoelektrik aktif (on) saat

suhu di dalam tabung sama dengan nilai suhu masukan dan non-aktif (off) saat

suhu di dalam tabung melebihi nilai suhu masukan. Jarak setiap perubahan suhu

sebesar 0,2 ºC dan waktu tunda untuk melakukan sekali proses sebesar 30 detik.

Pengamatan untuk masing-masing set point adalah :

1. Suhu tabung saat keadaan awal

2. Suhu tabung saat keadaan akhir

3. Suhu air saat keadaan awal

4. Suhu air saat keadaan akhir

5. Waktu tempuh hingga keadaan stabil

6. Waktu tempuh hingga mencapai set point

Untuk mengukur suhu air saat keadaan awal hingga akhir digunakan alat

pengukur suhu berupa termometer dengan media pendeteksi suhu berupa

termokoupel.

4.2.2.1. Suhu set point 8 ºC

Data yang diperoleh dari pengamatan saat set point 8 ºC ada pada tabel 4.4 dan

grafik suhu ada pada gambar 4.11. Toleransi untuk set point adalah sebesar 5%,
38

sehingga untuk set point 8 ºC nilai toleransinya antara 7,6 ºC sampai 8,4 ºC.

Untuk mendapatkan nilai suhu tabung akhir adalah dengan cara rata-rata dari

suhu saat stabil hingga suhu akhir saat pengambilan data telah selesai, dan hasil

yang diperoleh adalah 8,2 ºC. Dengan membandingkan suhu ruang dalam

tabung yang berada dalam nilai toleransi dan suhu air yang dicapai maka set

point 8 ºC bekerja dengan baik.

Tabel 4.4. Suhu set point 8 ºC


Pengamatan Data
Suhu tabung awal (ºC) 30,4
Suhu tabung akhir (ºC) 8,2
Suhu air awal (ºC) 23
Suhu air akhir (ºC) 8
Ts (menit) 48,5
Tr (menit) 45,5

Gambar 4.11. Grafik suhu dengan set point 8 ºC


39

Gambar 4.12. Tr dan Ts saat set point 8 ºC

4.2.2.2. Suhu set point 7 ºC

Tabel 4.5. Suhu set point 7 ºC


Pengamatan Data
Suhu tabung awal (ºC) 28,2
Suhu tabung akhir (ºC) 7,2
Suhu air awal (ºC) 22
Suhu air akhir (ºC) 7
Ts (menit) 47
Tr (menit) 42.5

Gambar 4.13. Grafik suhu dengan set point 7 ºC


40

Gambar 4.14. Tr dan Ts saat set point 7 ºC

Data yang diperoleh dari pengamatan saat set point 7 ºC ada pada tabel 4.5 dan

grafik suhu ada pada gambar 4.13. Toleransi untuk set point adalah sebesar 5%,

sehingga untuk set point 7 ºC nilai toleransinya antara 6,7 ºC sampai 7,4 ºC.

Untuk mendapatkan nilai suhu tabung akhir adalah dengan cara rata-rata dari

suhu saat stabil hingga suhu akhir saat pengambilan data telah selesai, dan hasil

yang diperoleh adalah 7,2 ºC. Dengan membandingkan suhu ruang dalam

tabung yang berada dalam nilai toleransi dan suhu air yang dicapai maka set

point 7 ºC bekerja dengan baik.

4.2.2.3. Suhu set point 6 ºC

Data yang diperoleh dari pengamatan saat set point 6 ºC ada pada tabel 4.6 dan

grafik suhu ada pada gambar 4.15. Toleransi untuk set point adalah sebesar 5%,

sehingga untuk set point 6 ºC nilai toleransinya antara 5,7 ºC sampai 6,3 ºC.

Untuk mendapatkan nilai suhu tabung akhir adalah dengan cara rata-rata dari

suhu saat stabil hingga suhu akhir saat pengambilan data telah selesai, dan hasil

yang diperoleh adalah 6,2 ºC. Dengan membandingkan suhu ruang dalam
41

tabung yang berada dalam nilai toleransi dan suhu air yang dicapai maka set

point 6 ºC bekerja dengan baik.

Tabel 4.6. Suhu set point 6 ºC


Pengamatan Data
Suhu tabung awal (ºC) 27,6
Suhu tabung akhir (ºC) 6,2
Suhu air awal (ºC) 22
Suhu air akhir (ºC) 6
Ts (menit) 52
Tr (menit) 44

Gambar 4.15. Grafik suhu dengan set point 6 ºC

Gambar 4.16. Tr dan Ts saat set point 6 ºC


42

4.2.2.4. Suhu set point 5 ºC

Tabel 4.7. Suhu set point 5 ºC


Pengamatan Data
Suhu tabung awal (ºC) 27,8
Suhu tabung akhir (ºC) 5,3
Suhu air awal (ºC) 21
Suhu air akhir (ºC) 5
Ts (menit) 50
Tr (menit) 46,5

Gambar 4.17. Grafik suhu dengan set point 5 ºC

Gambar 4.18. Tr dan Ts saat set point 5 ºC


43

Data yang diperoleh dari pengamatan saat set point 5 ºC ada pada tabel 4.7 dan

grafik suhu ada pada gambar 4.17. Toleransi untuk set point adalah sebesar 5%,

sehingga untuk set point 5 ºC nilai toleransinya antara 4,8 ºC sampai 5,3 ºC.

Untuk mendapatkan nilai suhu tabung akhir adalah dengan cara rata-rata dari

suhu saat stabil hingga suhu akhir saat pengambilan data telah selesai, dan hasil

yang diperoleh adalah 5,3 ºC. Dengan membandingkan suhu ruang dalam

tabung yang berada dalam nilai toleransi dan suhu air yang dicapai maka set

point 5 ºC bekerja dengan baik.

4.2.2.5. Suhu set point 4 ºC

Tabel 4.8. Suhu set point 4 ºC


Pengamatan Data
Suhu tabung awal (ºC) 27,2
Suhu tabung akhir (ºC) 4,2
Suhu air awal (ºC) 23
Suhu air akhir (ºC) 4
Ts (menit) 63
Tr (menit) 53

Data yang diperoleh dari pengamatan saat set point 4 ºC ada pada tabel 4.8 dan

grafik suhu ada pada gambar 4.19. Toleransi untuk set point adalah sebesar 5%,

sehingga untuk set point 4 ºC nilai toleransinya antara 3,8 ºC sampai 4,2 ºC.

Untuk mendapatkan nilai suhu tabung akhir adalah dengan cara rata-rata dari

suhu saat stabil hingga suhu akhir saat pengambilan data telah selesai, dan hasil

yang diperoleh adalah 4,2 ºC. Dengan membandingkan suhu ruang dalam
44

tabung yang berada dalam nilai toleransi dan suhu air yang dicapai maka set

point 4 ºC bekerja dengan baik.

Gambar 4.19. Grafik suhu dengan set point 4 ºC

Gambar 4.20. Tr dan Ts saat set point 4 ºC

4.2.2.6. Suhu set point 3 ºC


Tabel 4.9. Suhu set point 3 ºC
Pengamatan Data
Suhu tabung awal (ºC) 26,4
Suhu tabung akhir (ºC) 3,5
Suhu air awal (ºC) 22
Suhu air akhir (ºC) 3
Ts (menit) 94
Tr (menit) 76
45

Gambar 4.21. Grafik suhu dengan set point 3 ºC

Gambar 4.22. Tr dan Ts saat set point 3 ºC

Data yang diperoleh dari pengamatan saat set point 3 ºC ada pada tabel 4.9 dan

grafik suhu ada pada gambar 4.21. Toleransi untuk set point adalah sebesar 5%,

sehingga untuk set point 3 ºC nilai toleransinya antara 2,9 ºC sampai 3,2 ºC.

Untuk mendapatkan nilai suhu tabung akhir adalah dengan cara rata-rata dari

suhu saat stabil hingga suhu akhir saat pengambilan data telah selesai, dan hasil

yang diperoleh adalah 3,5 ºC. Bila membandingkan suhu ruang dalam tabung
46

dengan nilai toleransi maka error yang didapat sebesar 0,3 ºC dan suhu air

sudah mencapai 3 ºC saat suhu ruang berada di sekitar suhu 4 ºC. Dari hasil

yang dicapai maka set point 3 ºC tidak bekerja dengan baik.

4.2.2.7. Suhu set point 2 ºC

Data yang diperoleh dari pengamatan saat set point 2 ºC ada pada tabel 4.10 dan

grafik suhu ada pada gambar 4.23. Toleransi untuk set point adalah sebesar 5%,

sehingga untuk set point 2 ºC nilai toleransinya antara 1,9 ºC sampai 2,1 ºC.

Untuk mendapatkan nilai suhu tabung akhir adalah dengan cara rata-rata dari

suhu saat stabil hingga suhu akhir saat pengambilan data telah selesai, tetapi

saat pengamatan set point 2 ºC tidak diperoleh suhu dengan nilai stabil.

Sehingga nilai suhu tabung akhir adalah dengan cara rata-rata dari suhu pertama

kali mencapai set point hingga suhu akhir saat pengambilan data telah selesai.

Hasil yang diperoleh adalah 2,6 ºC. Bila membandingkan suhu ruang dalam

tabung dengan nilai toleransi maka error yang didapat sebesar 0,5 ºC dan suhu

air sudah mencapai 2 ºC saat suhu ruang belum mencapai setpoint. Dari hasil

yang dicapai maka set point 2 ºC tidak bekerja dengan baik karena labil.

Tabel 4.10. Suhu set point 2 ºC


Pengamatan Data
Suhu tabung awal (ºC) 28,6
Suhu tabung akhir (ºC) 2,6
Suhu air awal (ºC) 22
Suhu air akhir (ºC) 2
Ts (menit) -
Tr (menit) 103,5
47

Gambar 4.23. Grafik suhu dengan set point 2 ºC

Gambar 4.24. Tr dan Ts saat set point 2 ºC

Data yang diperoleh adalah satu angka dibelakang koma. Perubahan nilai

terkecil adalah 0,2 ºC dan waktu yang diperlukan untuk satu kali proses adalah

30 detik maka untuk perbandingan nilai set point dengan nilai toleransi saat

suhu 6 ºC, 5 ºC dan 4 ºC sangat susah, sehingga angka dibelakang koma dapat

dibulatkan ke atas. Sedangkan saat suhu 3 ºC dan 2 ºC tidak stabil maka

berbeda jauh dengan nilai toleransi. Dengan penjelasan masing-masing set point
48

maka dapat diketahui bahwa untuk set point 8 ºC - 4 ºC stabil, sedangkan untuk

set point 3 ºC dan 2 ºC tidak stabil. Artinya alat ini bekerja dengan baik dan

dapat digunakan untuk set point 8 ºC, 7 ºC, 6 ºC, 5 ºC dan 4 ºC. Untuk set point

3 ºC dan 2 ºC tidak dapat bekerja dengan baik.

4.2.3. Nilai Tegangan Pendingin Kotak Obat

Dari proses berlangsungnya pendingin kotak obat terdapat beberapa nilai

tegangan yang diperoleh dengan menggunakan multimeter untuk menghasilkan

proses pendinginan yang sesuai dengan perancangan seperti tegangan output

mikrokontroler, tegangan dari penguatan, tegangan buka transistor pada driver

arus dan tegangan yang menjadi masukan untuk termoelektrik. Nilai tegangan

tersebut terdapat pada tabel 4.1.

Tabel 4.11. Nilai Tegangan

Tegangan output mikrokontroler sebesar 5 V karena mikrokontroler diberi

sumber tegangan sebesar 5 V pada pin 10, yaitu pin VCC. Untuk masukan

termoelektrik diperlukan tegangan sebesar 7 V sehingga output mikrokontroler

perlu dikuatkan. Karena adanya tegangan buka transistor sebesar 1 V maka

tegangan dari output mikrokontroler akan berkurang sebanyak 1 V, oleh karena

itu tegangan output mikrokontroler perlu dikuatkan sebesar 8 V sehingga dapat

dijadikan masukan pada termoelektrik sebesar 7 V. Nilai yang tidak dapat di


49

ukur adalah keluaran dari sensur LM35 karena dapat mempengaruhi nilai ADC

pada mikrokontroler.

Arus yang diperlukan termoelektrik seluruhnya untuk bekerja dengan baik

sesuai dengan plan pada perancangan adalah 9,6 A. Karena termoelektrik

terpasang secara paralel maka untuk masing-masing termoelektrik memperoleh

3,2 A. Dengan demikian telah diketahui untuk satu buah termoelektrik

menerima tegangan sebesar 7 V dan arus sebesar 3,2 A maka daya yang

diperoleh untuk satu buah termolektrik adalah 22,4 W. Sehingga untuk ketiga

buah termoelektrik diperlukan daya sebesar 67,2 W.

4.2.4. Perangkat Lunak

Dalam pembuatan program pendingin kotak obat terdiri dari beberapa

bagian, mulai dari inisialisasi mikrokontroler, inisialisasi perangkat yang

digunakan dan proses program utama yang bermode on-off. Hal tersebut dibuat

seperti dibawah ini:

1. Inisialisasi Mikrokontroler

Mendefinisikan register dan port yang akan digunakan.

;=============================
;INISIALISASI DDR, PIN, PORT & REGISTER
;=============================
.include "m8535def.inc"

.equ ddrADC = ddra


.equ portADC = porta

.equ ddrKEYPAD = ddrb


.equ pinKEYPAD = pinb
.equ portKEYPAD = portb
.equ key_col1 = 4
.equ key_col2 = 5
50

.equ key_col3 = 6
.equ key_row1 = 0
.equ key_row2 = 1
.equ key_row3 = 2
.equ key_row4 = 3

.equ ddrLCD = ddrc


.equ portLCD = portc

.equ ddrPWM = ddrd


.equ pinPWM = pind
.equ portPWM = portd

.def q1 = r16
.def q2 = r17
.def q3 = r18

.def lc1 = r19 ; LCD low


.def lc2 = r20 ; LCD high
.def lc3 = r21 ; LCD

.def key1 = r22 ; nilai desimal keypad


.def key2 = r23 ; nilai ASCII keypad

.def adc1 = r24 ; ADC low


.def adc2 = r25 ; ADC high

.def ascii1 = r4 ; puluhan ADC


.def ascii2 = r5 ; satuan ADC
.def ascii3 = r6 ; koma ADC

.def a1 = r7 ; puluhan input keypad


.def a2 = r8 ; satuan input keypad
.def a3 = r9 ; koma input keypad

.def b1 = r10
.def b2 = r11
.def b3 = r12

.def c1 = r14
.def c2 = r15

.def aa = r26 ; X
.def bb = r27 ; X
.def cc = r28 ; Y
.def dd = r29 ; Y

.org 0x0000
rjmp main

.org 0x000E
51

rjmp ADC

main:
ldi r16, low(RAMEND)
out SPL, r16
ldi r16, high(RAMEND)
out SPH, r16

;=============
; Inisialisasi Port I/O
;=============
inisialisasi_io:
ldi q1, 0xff ; 0b11111111
ldi q2, 0x00 ; 0b00000000
ldi q3, 0xf0 ; 0b11110000

out ddrADC, q2
out portADC, q2 ; Input ADC, awal 0b00000000

out ddrKEYPAD, q3 ; Input KEYPAD, awal 0b11110000

out ddrLCD, q1
out portLCD, q2 ; Output LCD, awal 0b00000000

out ddrPWM, q1
out portPWM, q2 ; Output PWM, awal 0b00000000

2. Inisialisasi LCD

Mendefinisikan data yang di kirim berupa data 4 bit, bergerak dari kiri ke

kanan, proses untuk pembacaan perintah, proses untuk pembacaan data,

penentuan baris satu dan baris dua.

;===================
; Liquid Crystal Display (LCD)
;===================
lcd:
ldi lc1, 8
loopdelay:
rcall delay
dec lc1
cpi lc1, 0
brne loopdelay

;inisialiasasi awal
ldi lc1, 0x30
52

rcall perintah
rcall delay

ldi lc1, 0x30


rcall perintah
nop
nop

ldi lc1, 0x30


rcall perintah

ldi lc1, 0x20


rcall perintah

ldi lc1, 0x28


rcall perintah

ldi lc1, 0x06


rcall perintah

ldi lc1, 0x0d


rcall perintah

ldi lc1, 0x01


rcall perintah
ret

perintah:
mov lc2, lc1
swap lc1
ldi lc3, 0x0f
and lc1, lc3 ; LC1 untuk high
and lc2, lc3 ; LC2 untuk low
out portLCD, lc1
cbi portLCD, 4 ; clear bit 4 dari portLCD
rcall enable
out portLCD, lc2
cbi portLCD, 4 ; clear bit 4 dari portLCD
rcall enable
rcall delay
ret

data:
mov lc2, lc1
swap lc1
ldi lc3, 0x0f
and lc1, lc3 ; LC1 untuk high
and lc2, lc3 ; LC2 untuk low
out portLCD, lc1
sbi portLCD, 4 ; set bit 4 dari portLCD
53

rcall enable
out portLCD, lc2
sbi portLCD, 4 ; set bit 4 dari portLCD
rcall enable
rcall delay
ret
enable:
sbi portLCD, 7 ; set bit 7 dari portLCD
nop
nop
cbi portLCD, 7 ; clear bit 7 dari portLCD
ret

kirim_pesan:
clr r1
loop_kirim:
lpm
mov lc1, r0
cpi lc1, 0
brne kirim
ret
kirim:
rcall data
adiw zl, 1
rjmp loop_kirim

;(menentukan baris)
baris1:
ldi lc1, 0x02
rcall perintah
ret
baris2:
ldi lc1, 0xc0
rcall perintah
ret

3. Inisialisasi Keypad

Mendefinisikan kolom dan baris untuk setiap tombol.

;===================
; Keypad Matrik 4x3
;===================
keypad:
ldi key1, 0x7f ^ (1<<key_col1) ; xor bit untuk kolom 1(0)
out portKEYPAD, key1 ; Keluarkan ke Port
nop ; Synchronizer delay

sbis pinKEYPAD, key_row1 ; Cek jika key_row1 = 0


54

rjmp key11
sbis pinKEYPAD, key_row2 ; Cek jika key_row2 = 0
rjmp key12
sbis pinKEYPAD, key_row3 ; Cek jika key_row3 = 0
rjmp key13
sbis pinKEYPAD, key_row4 ; Cek jika key_row4 = 0
rjmp key14

ldi key1, 0x7f ^ (1<<key_col2) ; xor bit untuk kolom 2(0)


out portKEYPAD, key1 ; Keluarkan ke Port
nop ; Synchronizer delay

sbis pinKEYPAD, key_row1 ; Cek jika key_row1 = 0


rjmp key21
sbis pinKEYPAD, key_row2 ; Cek jika key_row2 = 0
rjmp key22
sbis pinKEYPAD, key_row3 ; Cek jika key_row3 = 0
rjmp key23
sbis pinKEYPAD, key_row4 ; Cek jika key_row4 = 0
rjmp key24

ldi key1, 0x7f ^ (1<<key_col3) ; xor bit untuk kolom 3(0)


out portKEYPAD, key1 ; Keluarkan ke Port
nop ; Synchronizer delay

sbis pinKEYPAD, key_row1 ; Cek jika key_row1 = 0


rjmp key31
sbis pinKEYPAD, key_row2 ; Cek jika key_row2 = 0
rjmp key32
sbis pinKEYPAD, key_row3 ; Cek jika key_row3 = 0
rjmp key33
sbis pinKEYPAD, key_row4 ; Cek jika key_row4 = 0
rjmp key34

rjmp keypad
;-----------------------------------------------------------------------
; Konversi kolom-baris ke nilai desimal
key11:
ldi key1, 1
ldi key2, 0x31
sbis pinKEYPAD, key_row1
rjmp key11
ret
key12:
ldi key1, 4
ldi key2, 0x34
sbis pinKEYPAD, key_row2
rjmp key12
ret
key13:
ldi key1, 7
55

ldi key2, 0x37


sbis pinKEYPAD, key_row3
rjmp key13
ret
key14:
ldi key1, 11
ldi key2, 0x41
sbis pinKEYPAD, key_row4
rjmp key14
ret
;-----------------------------------
key21:
ldi key1, 2
ldi key2, 0x32
sbis pinKEYPAD, key_row1
rjmp key21
ret
key22:
ldi key1, 5
ldi key2, 0x35
sbis pinKEYPAD, key_row2
rjmp key22
ret
key23:
ldi key1, 8
ldi key2, 0x38
sbis pinKEYPAD, key_row3
rjmp key23
ret
key24:
ldi key1, 0
ldi key2, 0x30
sbis pinKEYPAD, key_row4
rjmp key24
ret
;-----------------------------------
key31:
ldi key1, 3
ldi key2, 0x33
sbis pinKEYPAD, key_row1
rjmp key31
ret
key32:
ldi key1, 6
ldi key2, 0x36
sbis pinKEYPAD, key_row2
rjmp key32
ret
key33:
ldi key1, 9
ldi key2, 0x39
56

sbis pinKEYPAD, key_row3


rjmp key33
ret
key34:
ldi key1, 12
ldi key2, 0x42
sbi pinKEYPAD, key_row4
rjmp key34
ret

4. Nilai Masukan

Menentukan nilai masukan sebanyak tiga digit, yaitu nilai puluhan, nilai satuan

dan satu angka dibelakang koma. Penulisan angka tersebut tanpa perlu

memasukan koma, selain itu ada proses pengulangan jika nilai masukan salah.

;=========================
;MENENTUKAN NILAI MASUKAN
;=========================
masukan:
ldi lc1, 0x01
rcall perintah

ldi zl, low (2*data3)


ldi zh, high (2*data3)
rcall baris1
rcall kirim_pesan

;masukan puluhan
pertama:
rcall keypad ; Periksa keypad (puluhan)
cpi key1, 11 ; bandingkan key1 dengan 11
breq pertama ; jika sama lompat ke pertama
cpi key1, 12 ; bandingkan key1 dengan 12
breq pertama ; jika sama lompat ke pertama
mov lc1, key2 ; pindahkan data di key2ke lc1
rcall data ; pangil data
mov a1, key2 ; pindahkan data di key2ke a1

;masukan satuan
kedua:
rcall keypad ; Periksa keypad (satuan)
cpi key1, 11
breq kedua
cpi key1, 12
breq kedua
57

mov lc1, key2


rcall data
mov a2, key2

;tampilkan koma
ldi lc1, 0b00101100
rcall data

;masukan koma
ketiga:
rcall keypad ; Periksa keypad (koma)
cpi key1, 11
breq ketiga
cpi key1, 12
breq ketiga
mov lc1, key2
rcall data
mov a3, key2

;tampilkan derajat
ldi lc1, 0b11011111
rcall data
ldi lc1, 0b01000011
rcall data

ldi zl, low (2*data5)


ldi zh, high (2*data5)
rcall baris2
rcall kirim_pesan

pilih:
rcall keypad ; panggil keypad
cpi key1, 12 ; bandingkan key1 dengan 12
breq masukan ; jika key1=12 maka ke masukan
cpi key1, 11 ; bandingkan key1 dengan 11
breq proses ; jika key1=11 maka ke proses
rjmp pilih ; lompat ke pilih

5. Pembacaan Sensor (dengan ADC)

Membaca nilai yang dihasilan sensor.

;-----------------------------------
;Analog - Digital Converter
;-----------------------------------
ad_converter:
ldi aa, 0
out ADMUX, aa
ldi aa, 0b11101101
58

mov adc1, aa
out ADCSRA, aa
sei

ADC:
in adc1, ADCL
in adc2, ADCH

6. Konversi ke ASCII

Mengubah nilai dari hasil ADC menjadi ASCII, sehingga dapat ditampilkan ke

LCD.

;========================
; Konversi Hexa ke ASCII
;========================
ubah:
clr ascii1
clr ascii2
clr ascii3
;--------------------------------------
ratusan:
ldi aa, 100 ; isi aa dengan 100
mov bb, adc1 ; pindahkan data dari adc1 ke bb
sub adc1, aa ; adc1 - 100
brmi ubah100 ; apakah adc1 minus? jika ya lompat ke ubah100
inc ascii1 ; ascii1 + 1
inc ascii ; ascii1 + 1
rjmp ratusan ; lompat ke ratusan
ubah100:
dec adc2 ; adc2 - 1
brmi ubah100a ; apakah adc1 minus? jika ya lompat ke ubah100a
ldi aa, 256 ; isi aa dengan 256
add adc1,aa ; adc1 + aa
rjmp ratusan ; lompat ke ratusan
ubah100a:
ldi aa, 50 ; isi aa dengan 50
mov adc1, bb ; pindahkan data dari bb ke adc1
ubah100b:
mov bb, adc1 ; pindahkan data dari adc1 ke bb
sub adc1, aa ; adc1 - 50
brmi puluhan ; apakah adc1 minus? jika ya lompat ke puluhan
inc ascii1 ; ascii1 + 1
rjmp ubah100b ; lompat ke ubah100a
;--------------------------------------
puluhan:
ldi aa, 5 ; isi aa dengan 5
59

mov adc1, bb ; pindahkan data dari bb ke adc1


ubah10:
mov cc, adc1 ; pindahkan data dari adc1 ke cc
sub adc1, aa ; adc1 - 5
brmi satuan ; apakah adc1 minus? jika ya lompat ke satuan
inc ascii2 ; ascii2 + 1
rjmp ubah10 ; lompat ke ubah10
;--------------------------------------
satuan:
ldi aa, 2 ; isi aa dengan 2
mov adc1, cc ; pindahkan data dari cc ke adc1
mul adc1, aa ; adc1 x aa (low=>r0 , high=>r1)
mov ascii3, r0 ; pindahkan data dari r0 ke ascii3
;--------------------------------------
angka:
ldi aa, 0x30 ; isi aa dengan 0x30
add ascii1, aa ; puluhan dalam bentuk ASCII
add ascii2, aa ; satuan dalam bentuk ASCII
add ascii3, aa ; koma dalam bentuk ASCII
ret

7. Menampilkan Nilai Suhu dari Sensor

Proses penampilan nilai sensor ke LCD yang telah dikonversi ke ASCII.

;------------------------------------------------
;MENAMPILKAN DATA ADC KE LCD
;------------------------------------------------
ldi zl, low (2*data4)
ldi zh, high (2*data4)
rcall baris2
rcall kirim_pesan

mov lc1, ascii1


rcall data

mov lc1, ascii2


rcall data

;tampilkan koma
ldi lc1, 0b00101100
rcall data

mov lc1, ascii3


rcall data

;tampilkan derajat
ldi lc1, 0b11011111
rcall data
60

ldi lc1, 0b01000011


rcall data

8. Pembanding

Membandingkan nilai masukan dari keypad dengan nilai masukan dari sensor

yang telah dibaca oleh ADC kemudian dikonversi ke ASCII. Program ini

sebagai pengendali on-off yang membandingkan tiap angka, mulai dari puluhan,

satuan dan satu angka dibelakang koma.

Langkah1 membandingkan puluhan, proses awal membandingkan nilai puluhan

ASCII dari hasil koversi ADC dengan nilai puluhan dari keypad, jika kedua

nilai sama maka lompat ke langkah2 tetapi jika berbeda maka nilai puluhan

ASCII dari hasil koversi ADC dikurangi nilai puluhan dari keypad kemudian

hasilnya negatif atau positif. Jika bernilai negatif maka termoelektrik akan off

tetapi jika nilainya positif maka termoelektrik akan on.

Langkah2 membandingkan satuan, ini merupakan lanjutan dari Langkah1.

Membandingkan nilai satuan ASCII dari hasil koversi ADC dengan nilai satuan

dari keypad, jika kedua nilai sama maka lompat ke langkah3 tetapi jika berbeda

maka nilai satuan ASCII dari hasil koversi ADC dikurangi nilai satuan dari

keypad kemudian hasilnya negatif atau positif. Jika bernilai negatif maka

termoelektrik akan off tetapi jika nilainya positif maka termoelektrik akan on.

Langkah3 membandingkan satu angka dibelakang koma, ini merupakan

lanjutan dari Langkah2 dan proses akhir dari pengendali on-off.

Membandingkan nilai satu angka belakang koma ASCII dari hasil koversi ADC
61

dengan nilai satu angka belakang koma dari keypad, jika kedua nilai sama maka

termoelektrik akan on tetapi jika berbeda maka nilai satu angka belakang koma

ASCII dari hasil koversi ADC dikurangi nilai satu angka belakang koma dari

keypad kemudian hasilnya negatif atau positif. Jika bernilai negatif maka

termoelektrik akan off tetapi jika nilainya positif maka termoelektrik akan on.

;-----------------------------------------------------------
;BANDINGKAN SENSOR DENGAN MASUKAN
;-----------------------------------------------------------
langkah1:
cp ascii1, a1 ; bandingkan ascii1 dengan a1
breq langkah2 ; jika sama lompat ke langkah2
sub ascii1, a1 ; kurangi ascii1 dengan a1
brmi termoelektrik_off ; apakah ascii1 minus? jika ya lompat ke
termoelektrik_off
rjmp termoelektrik_on ; lompat ke termoelektrik_on

langkah2:
cp ascii2, a2 ; bandingkan ascii2 dengan a2
breq langkah3 ; jika sama lompat ke langkah3
sub ascii2, a2 ; kurangi ascii2 dengan a2
brmi termoelektrik_off ; apakah ascii2 minus? jika ya lompat ke
termoelektrik_off
rjmp termoelektrik_on ; lompat ke termoelektrik_on

langkah3:
cp ascii3, a3 ; bandingkan ascii3 dengan a3
breq termoelektrik_on ; jika sama lompat ke termoelektrik_on
sub ascii3, a3 ; kurangi ascii3 dengan a3
brmi termoelektrik_off ; apakah ascii3 minus? jika ya lompat ke
termoelektrik_off
rjmp termoelektrik_on ; lompat ke termoelektrik_on

9. Pengaktifan Termoelektrik

Mengatut aktif atau non-aktif termoelektrik berawal dari pengaturan port dan

pin. Jika pin 7 pada port D bernilai nol maka termoelektrik akan off tetapi jika

pin 7 pada port D bernilai satu maka termoelektrik akan on.

;--------------------------------
62

; Termoelektrik On – Off
;--------------------------------
termoelektrik_off:
ldi aa, 0x00
out portPWM, aa
out pinPWM, aa
rcall delay2
rjmp adc
termoelektrik_on:
ldi aa, 0x80
out portPWM, aa
out pinPWM, aa
rcall delay2
rjmp adc
63

BAB V

KESIMPULAN DAN SARAN

Setelah adanya pengujian, pengamatan dan pembahasan alat pendingin kotak

obat maka dapat diambil suatu kesimpulan dan beberapa saran untuk lebih

menyempurnakan dan mengembangkan alat.

5.1. Kesimpulan

1. Proses pendinginan dapat dilakukan pagi, siang atau malam karena tidak terlalu

mempengaruhi kinerja alat terhadap perubahan suhu.

2. Tegangan yang baik untuk termoelektrik sekitar 7 V.

3. Mode on-off dapat bekerja dengan baik saat suhu 8 ºC – 4 ºC, untuk suhu 3 ºC

dan 2 ºC hasil yang diperoleh belum stabil dan diperlukan waktu lebih lama.

4. Arus yang diperlukan satu buah termoelektrik dalam rangkaian ini adalah 3,2 A.

5.2. Saran

1. Perlu memperhitungkan nilai suhu pada saat tutup pendingin kotak obat dibuka,

karena udara luar bercampur dengan udara di dalam tabung yang dapat

mengakibatkan nilai suhu berubah.

2. Untuk mempercepat tabung kembali ke suhu normal diperlukan pemanas,

sehingga tidak membutuhkan waktu yang lama.


64

DAFTAR PUSTAKA

[1] Khedari, J., Maneewan, S., Pratinthong, N. and Hirunlabh, J. 2001. “Domestic

Hot Water System Combining Solar and Waste Heat from Thermoelectric Air

Conditioner”. International Journal of Ambient Energy, Vol.22, No.1, pp. 19-

28.

[2] http://chem.ch.huji.ac.il/history/seebeck.html

[3] http://www.1911encyclopedia.org/Jean_Charles_Athanase_Peltier

[4] Datasheet ATMega8535.

[5] Wardhana, Lingga., 2006, Belajar Sendiri Mikrokontroler AVR Seri ATMega

8535.

[6] www.beyondlogic.com, Senin, 27 Oktober 2007-10-07

[7] http://www.avr-asm-tutorial.net

[8] Datasheet LM35

[9] Katsuhiko, Ogata, 1989, Teknik Kontrol Automatik, Erlangga, Jilid 2, 155 –

157

[10] http://www.physicsforums.com/showthread.php?t=66605

[11] http://www.tetech.com/?gclid=CIST9u-nopcCFQp8TAod5RWB9w

[12] http://en.wikipedia.org/wiki/Thermoelectric_effect
LAMPIRAN

GRAFIK SUHU DENGAN RANGKAIAN TERBUKA


1. Tegangan masukan termoelektrik sebesar 6 volt, dari jam 02.00 – 04.00 WIB.
Vi = 6 volt, jam 02.00-04.00

29
26
23
20
suhu (celsius)

17
14
11
8
5
2

0
0

10

20

30

40

50

60

70

80

90

10

11
w aktu (m enit)

2. Tegangan masukan termoelektrik sebesar 6 volt, dari jam 10.00 – 12.00 WIB.
Vi = 6 volt, jam 10.00-12.00

29
26
23
20
suhu (celsius)

17
14
11
8
5
2
0

10

20

30

40

50

60

70

80

90

0
10

11

w aktu (m enit)
3. Tegangan masukan termoelektrik sebesar 6 volt, dari jam 18.00 – 20.00 WIB.
Vi = 6 volt, jam 18.00-20.00

29
26
23
20
suhu (celsius)

17
14
11
8
5
2
0

10

20

30

40

50

60

70

80

90

0
10

11
w aktu (m enit)

4. Tegangan masukan termoelektrik sebesar 7 volt, dari jam 02.00 – 04.00 WIB.
Vi = 7 volt, jam 02.00-04.00

29
26
23
suhu (celcius)

20
17
14
11
8
5
2
0

10

20

30

40

50

60

70

80

90

0
10

11

w aktu (m enit)
5. Tegangan masukan termoelektrik sebesar 7 volt, dari jam 10.00 – 12.00 WIB.
Vi = 7 volt, jam 10.00-12.00

29
26
23
suhu (celcius)

20
17
14
11
8
5
2
0

10

20

30

40

50

60

70

80

90

0
10

11
w aktu (m enit)

6. Tegangan masukan termoelektrik sebesar 7 volt, dari jam 18.00 – 20.00 WIB.
Vi = 7 volt, jam 18.00-20.00

29
26
23
suhu (celcius)

20
17
14
11
8
5
2
0

10

20

30

40

50

60

70

80

90

0
10

11

w aktu (m enit)
7. Tegangan masukan termoelektrik sebesar 8 volt, dari jam 02.00 – 04.00 WIB.
Vi = 8 volt, jam 02.00-04.00
29
26
23
20
suhu (celcius)

17
14
11
8
5
2
0

10

20

30

40

50

60

70

80

90

0
10

11
w aktu (m enit)

8. Tegangan masukan termoelektrik sebesar 8 volt, dari jam 10.00 – 12.00 WIB.
Vi = 8 volt, jam 10.00-12.00
29
26
23
20
suhu (celcius)

17
14
11
8
5
2
0

10

20

30

40

50

60

70

80

90

0
10

11

w aktu (m enit)
9. Tegangan masukan termoelektrik sebesar 8 volt, dari jam 18.00 – 20.00 WIB.
Vi = 8 volt, jam 18.00-20.00
32
29
26
23
suhu (celcius)

20
17
14
11
8
5
2
0

10

20

30

40

50

60

70

80

90

0
10

11
w aktu (m enit)
LAMPIRAN

NILAI SUHU DENGAN MODE ON - OFF


Waktu Setpoint
(menit) (celcius)
8 7 6 5 4 3 2
0 30,4 28,2 27,6 27,8 28,4 26,4 28,6
30,4 28,2 27,6 27,8 28,4 26,4 28,6
1 30,8 28,4 27,4 28 28,2 26,2 27,4
29,4 28,8 26,6 28 28,4 26,8 28,4
2 30 27 26,4 26,4 27,2 25,2 27,6
29 26,6 26,4 26 26 26 27,2
3 28,4 26,4 26,4 25,6 26,6 24,6 26,8
28,2 26,8 25,6 25 25,2 25,2 25,4
4 27,4 26 24,6 24,8 24,4 23,4 24,6
27,4 24,8 24,2 24,2 24,2 23 24,2
5 26,2 24,6 24 23,4 23,4 23,8 24
25,8 24 23,2 23,2 23,2 21,8 23,6
6 26,8 23,8 23,4 22,4 22,4 23,2 22,2
25 23,2 22,8 21,8 23 22 22,6
7 25,4 23,2 22 21,6 21,4 21,2 21,6
24,2 23 21,2 21,2 21 21,2 21,4
8 23,6 21,8 21,6 21,4 21,4 20 21,4
23,4 21,2 20 20,8 21,4 20,6 21
9 23 21 20 20,4 20,8 19,4 20
23 20,6 19,6 19,4 20,4 19,6 19,6
10 22,8 20,2 19,2 19,4 19,4 19,2 19,2
22,2 20,2 19,6 18,6 19,2 19,8 19,6
11 21 20,4 19,2 18,6 19,6 18 19,2
21,6 19 18 18 18,6 18 18
12 20,2 18,6 18 18,6 18,2 17,2 18
21 18,6 17,4 17,6 18,2 17 17,4
13 19,6 17,8 17,4 18 17,4 17 17,4
19,8 19 18,2 17 18 17,6 18
14 18,8 17,2 17,8 16,2 16,4 17,6 16,4
19,6 17,2 17 17,2 17,6 16,6 17,2
15 18,2 16,6 15,8 16,6 15,8 15,8 16,6
18,2 17 16,6 16,4 15,6 15,2 17
Waktu Setpoint
(menit) (celcius)
8 7 6 5 4 3 2
16 17,6 16,6 15,8 15,2 15 16 16,6
17,2 16 15,8 15,2 14,6 16 16
17 17,6 15,8 14,4 14,2 15,6 15 15,8
17,8 15,4 14,2 14 15 14,8 15,4
18 17,4 15 14,4 14,4 14 14,4 15
17 14,6 14,4 13,4 14 14 14,6
19 15,8 14,4 14,8 13,4 14,6 14,4 14,4
16,6 14,6 13,8 13,6 13,2 13,6 14,6
20 16,2 15,2 13,8 12,6 13,2 13,4 15,2
15,4 13,6 12,8 12,4 12,4 13,6 13,6
21 15,6 14 13,4 12,6 12,8 13 12,4
15,2 14,4 12,2 12,2 11,8 14,4 11,8
22 15 13,8 12,8 12,4 12,8 12,2 12,8
14,4 13,4 11,8 12,2 12,2 12,4 12,2
23 14,2 13,6 12,8 12 11 12,2 11
14,2 12,8 11,8 11,8 11,6 12 11,6
24 14,4 12,6 11,2 11,8 11,4 11,8 11,4
14,8 12,6 12,4 11,8 10,6 11,6 10,6
25 14,2 12,6 12,6 11,6 10,4 11,4 10,4
14 11,8 12 11,2 12 12,4 10,8
26 13,4 11,8 10,8 10,6 10 10,8 10,6
13,6 11,4 12 10,4 11 10,6 10,6
27 13 11,2 11,4 10 9,4 10,6 11,6
13,2 12,4 10 9,8 9,4 11,6 11,4
28 13 12 10,2 9,6 9,4 11,4 10,2
13 11 10 9,2 9,6 10,2 10,4
29 12,2 10,6 10 9,2 10 10,4 9,8
12,8 10,6 10,2 9 10 11 9,6
30 11,8 11,6 9,8 8,6 8,6 9,4 9,2
11,6 10,4 9,4 8,4 8,6 9,8 9,2
31 12 9,8 10 8,2 8,4 10,2 9
12,2 9,8 9 8,4 9 10,4 8,6
Waktu Setpoint
(menit) (celcius)
8 7 6 5 4 3 2
32 12,4 10 10 9 8,8 10,2 8,4
11,2 9,6 10 9,2 8,2 9 8,2
33 11,2 10,4 9 8,8 7,6 9,2 7,6
10,6 9,2 8,4 8,6 7,8 8,8 7,8
34 10,8 9,2 8,8 7,8 7,6 9 7,6
10,8 9,2 8,8 8,6 7,2 10 8,6
35 10,6 8,8 8 8,6 7 8,4 8,6
11,4 8,8 7,8 7 7,6 8,8 7
36 10 8,6 8,4 6,8 8,4 8,2 6,8
11 9,4 7,8 7,4 8 8,4 7,4
37 10,6 8,2 7,6 7 7,8 8,4 7
10,4 8,6 7,2 6,6 6,8 7,4 6,6
38 9,6 8,8 7,2 7,6 8 8,4 7,6
10,4 8 7,6 6,8 6,2 7,8 6,8
39 10,6 9 7,4 6,8 5,6 7,8 6,8
9,2 8 7 6,2 5,6 9,2 6,2
40 10,4 7,8 7,8 7,4 6,6 7,8 7,4
9,6 7,8 8,2 6,4 6 8,4 6,4
41 10 7,8 6,6 6,2 6,8 7,6 6,2
9,6 8 6,4 6 5,6 6,8 5,6
42 10 7,6 8 5,6 6,2 7,4 6
9,6 7 6,4 6,6 5,4 7,2 5,4
43 8,4 7,8 6,2 6,6 5,4 6,8 5
8,4 8 6,4 6 6,6 7 5,4
44 8,4 7 6 5,2 4,8 8 4,8
8,8 8,4 6,4 5,6 5 7,2 5,4
45 8,8 7,4 7 5,6 4,4 7,6 4,4
8 7,4 6,6 5,2 4,4 6,2 4,4
46 8,6 7,6 7,2 5,6 4,4 6 4,4
9 8 6 5 4,8 6,2 4,8
47 8,8 6,6 5,4 6 5,8 5,8 5,8
8,8 7 6,4 5,2 4,8 6,2 4,8
Waktu Setpoint
(menit) (celcius)
8 7 6 5 4 3 2
48 7,6 6,6 6,2 5,2 5,2 5,8 4,6
8,4 7,2 5,4 5,6 4,8 7 5,6
49 7,8 7,4 6,4 5,6 5,8 6,2 5,4
8,6 7 6,2 6,2 5,4 5,8 4,4
50 8,2 7 6,4 4,8 5,4 6,6 4,6
8,6 7,2 7,2 4,8 4,4 6,8 5,6
51 8,2 7,6 7 5,2 4,4 5,4 4,4
8,8 7,8 6 5,6 5,6 5,6 4,8
52 8 6,8 5,6 5,6 5,6 5,6 4,6
8,4 7,2 6,2 6 5,2 6,6 5
53 8,2 7,6 5,8 6 4 6,4 5,2
7,8 6,8 6,4 6,2 3,6 6,6 4
54 8 7 6,4 5,4 4,4 5,2 4,8
9 7,8 7,2 5,8 3,8 5 5
55 8,2 7,6 6,2 4,6 4,8 5 4,8
8,8 6,8 6,2 5,2 4,8 6 4,8
56 8 7,2 6,4 5 4,2 5,6 5,2
8,7 6,4 7,2 5 5,4 4,8 4,4
57 8,2 7,4 6 6 5,4 5,8 4
8 7 5,4 5,8 4,4 4,8 5,4
58 7,6 7,4 6,2 5,2 3,8 4,8 3,8
8,2 7,6 6 5,4 4,8 4,6 4,8
59 8,4 8,2 5,8 5,2 4,4 5,6 4,4
9 8 6,4 5,4 4,4 5,4 4,4
60 8 7 5,8 5,4 4,2 4,4 4,2
8,8 6,8 6,4 4,8 5,6 4,6 5,6
61 9 7 7 4,8 5,4 5,6 5,4
8,8 6,8 6,2 5 5,2 4,4 5,2
62 8 7 6,4 4,8 4,2 4,8 4,2
8,2 7 6,4 5,6 4 4,6 4,2
63 8,6 7 6 5,8 3,6 5 5,2
7,4 7,4 6,8 5,4 4,2 5,2 4,4
Waktu Setpoint
(menit) (celcius)
8 7 6 5 4 3 2
64 7,4 6,8 6 5,2 4,6 4 5,4
7,8 7,2 6 5,6 4,4 4,8 4,4
65 8 8 5,8 5,2 4,2 5 4,2
8,6 7,2 6 5,6 4 4,8 4
67 8 7,6 5,6 5,6 4,2 4,8 3,8
8,6 7 6,2 5,2 4 5,2 4,4
68 7,8 6,8 6 4,6 4,4 4,4 3,6
8,2 7,2 7 5 4,2 4 4,6
69 8 6,6 6,8 4,8 3,4 5,4 4,6
8 7,2 6,8 5,2 4,4 5 4,2
70 8 8,2 6,6 4,8 4,6 4,4 4,4
8 8 7 5,6 4,2 4,2 4,6
71 8 7,4 5,4 5,2 4,6 5 4,4
9 7,2 6 6 4,2 5,4 4,8
72 7,2 7,4 7 5,6 3,6 4,8 3,8
7,8 7,6 7 5,2 4,2 3,8 4,6
73 7,8 7,4 6 5,8 4,4 3,8 4,8
8 7,2 6 5,2 4,2 4,2 4,4
74 7,6 7 5,6 5,4 4,4 3,4 4,8
8,2 6,8 6 5,6 4,6 3,6 4
75 9 7 6,8 5,6 4,2 4,6 4
8,2 7,4 6,2 5,2 4 3,8 4,6
76 9 7 6,8 6 4,4 4 4,2
8 7,4 6 5,4 3,8 3,6 3,6
77 7,8 6,4 6,6 4,6 4,2 3 4,6
8,4 7 6,4 5,2 4,6 3,4 4,6
78 7,6 7,2 5,6 5,6 4 4,4 4,4
8,4 6,6 5,8 5,6 3,8 3,6 4,2
79 7,8 7,2 6 6 4,4 4 4,8
8,6 7,4 6,2 5,2 3,6 4,6 4
80 8,8 7 6 4,4 4,6 4,4 4,8
8,4 7,4 6,8 5 4,6 3,4 4,6
Waktu Setpoint
(menit) (celcius)
8 7 6 5 4 3 2
81 9,2 7 5,8 5,4 4,2 3,4 4,6
8,8 6,6 6,6 4,8 4,4 2,8 5
82 9,2 7,2 6,6 5,2 4,6 3,4 4,8
8,4 6,8 6,4 6 4,4 3,4 4,4
83 8 7,2 6,8 5 4,2 4,6 4,8
7,4 7,2 6,4 4,8 3,8 3,4 4,2
84 8,2 7,8 7 5,2 4,6 3,8 4,6
8,4 7,4 6 5,2 4,2 4,8 4,8
85 7,4 7 6 5,8 4,4 4,6 4,4
8,4 7,6 6,8 5 4,8 3,6 4,8
86 8 7,6 5,2 5,8 4 3,4 4
9 7 5,8 5 4 4 4
87 7,6 6,8 6 4,8 4,6 4,4 4,6
8,2 7 5,6 5 4,2 4,4 4,2
88 7,8 7,8 6,4 4,8 3,6 3,6 3,6
8,2 7 7 5,2 4,2 3,4 4,6
89 9,2 7,8 6 4,8 4,6 4,4 4,6
9 6,8 6,4 5,6 4,4 3,4 4,4
90 8 7,2 6 5,2 4,2 4,6 4,4
7,8 6,6 6,4 6 4,6 4,4 4,8
91 8,2 7,2 6 5,2 4 3,2 4
3,8 3,4
92 4 3,4
3 4,6
93 3,4 3,4
4,2 3,8
94 4,6 4,8
3,2 4,6
95 2,8 3,6
3,4 3,4
96 3,4 4
4,4 4,4
Waktu Setpoint
(menit) (celcius)
8 7 6 5 4 3 2
97 3,4 4,4
3,4 3,6
98 3 3,4
4,4 4,4
99 4,6 3,4
4,2 4,6
100 4 4,4
3,4 3,4
101 3,6 3,4
3 4,4
102 3,2 3,4
3,4 3,4
103 4,2 3
4,2 4,4
104 3,4 4,6
2,8 4,2
105 3,6 4
3 3,4
106 3,4 3,6
3,4 3
107 3,6 3,2
3,4 3,4
108 3,2 4,2
3,6 4,2
109 3,4 3,4
4,4 2,8
110 4,2 3,6
3,4 3
111 3,4 3,4
3,4 3,4
112 4 3,6
3,4 3,4
Waktu Setpoint
(menit) (celcius)
8 7 6 5 4 3 2
113 3,2 3,2
3,8 3,6
114 3,4 3,4
4,4
115 4,2
3,4
116 3,4
3,4
117 4
3,4
118 3,2
3,8
119 3,4
2,8
120 3,8
3,2
121 3
3,4
122 3,4
3,6
123 3,4
3,2
124 3,6
3,4
125 4,4
4,2
126 3,4
3,4
127 3,4
2,6
128 2,4
3
Waktu Setpoint
(menit) (celcius)
8 7 6 5 4 3 2
129 2,8
2,8
130 3,8
3,2
131 2,8
2
132 1,8
2,8
133 2,2
2,6
134 2,4
3
135 2,8
2,8
136 3,8
3,2
137 2,8
2,2
138 1,4
2,4
139 2,8
2,2
140 3
2,4
141 2,6
LAMPIRAN

SKETSA PENDINGIN KOTAK OBAT


LAMPIRAN

RANGKAIAN PENDINGIN KOTAK OBAT


U2 1 2 3

2
VCC
1 3 40 1
39 PA0/AD0 PB0/T0 2 4 5 6
1k 15k 38 PA1/AD1 PB1/T1 3
- 37 PA2/AD2 PB2/AIN0 4
36 PA3/AD3 PB3/AIN1 5 10K
SENSOR 7 8 9
Penguatan 16x + 35 PA4/AD4 PB4/SS 6
34 PA5/AD5 PB5/MOSI 7
33 PA6/AD6 PB6/MISO 8 Ok 0 .
PA7/AD7 PB7/SCK
2

16
1 3 14 PD2/INT0
15 PD0/RXD 22
1k 1k 17 PD1/TXD PC0/A8 23
- 18 PD3/INT1 PC1/A9 24
OUTPUT PD4/OC1B PC2/A10
19 25
+ 20 PD5/OC1A PC3/A11 26
21 PD6/ICP PC4/A12 27 LCD VCC
Penguatan2x 10k PD7/OC2 PC5/A13 28
12 PC6/A14 29

16
15
14
13
12
11
10
13 XTAL1 PC7/A15

9
8
7
6
5
4
3
2
1
XTAL2 10 VCC 10k
9 VCC
4MHz VCC RESET
30 104
31 AVCC

3
22p 22p 32 AGND 11
10k AREF GND
Mega8535 2 250 2 500
Reset
2

104 1 3

1
VCC
10k 498.04

D1 4v 3 120
LAMPIRAN

LIST PROGRAM MODE ON - OFF


;=====================================
;INISIALISASI DDR, PIN, PORT & REGISTER
;=====================================
.include "m8535def.inc"

.equ ddrADC = ddra


.equ portADC = porta
.equ ddrKEYPAD = ddrb
.equ pinKEYPAD = pinb
.equ portKEYPAD = portb
.equ key_col1 = 4
.equ key_col2 = 5
.equ key_col3 = 6
.equ key_row1 = 0
.equ key_row2 = 1
.equ key_row3 = 2
.equ key_row4 = 3
.equ ddrLCD = ddrc
.equ portLCD = portc
.equ ddrPWM = ddrd
.equ pinPWM = pind
.equ portPWM = portd

.def q1 = r16
.def q2 = r17
.def q3 = r18
.def lc1 = r19
.def lc2 = r20
.def lc3 = r21
.def key1 = r22
.def key2 = r23
.def adc1 = r24
.def adc2 = r25
.def ascii1 = r4 ; puluhan ADC
.def ascii2 = r5 ; satuan ADC
.def ascii3 = r6 ; koma ADC
.def a1 = r7 ; puluhan input keypad
.def a2 = r8 ; satuan input keypad
.def a3 = r9 ; koma input keypad
.def b1 = r10
.def b2 = r11
.def b3 = r12
.def c1 = r14
.def c2 = r15
.def aa = r26 ; X
.def bb = r27 ; X
.def cc = r28 ; Y
.def dd = r29 ; Y

.org 0x0000
000000 c00e rjmp main
.org 0x000E
00000e c11e rjmp ADC

main:
00000f e50f ldi r16, low(RAMEND)
000010 bf0d out SPL, r16
000011 e002 ldi r16, high(RAMEND)
000012 bf0e out SPH, r16

;================
; Inisialisasi Port I/O
;================
inisialisasi_io:
000013 ef0f ldi q1, 0xff ; 0b11111111
000014 e010 ldi q2, 0x00 ; 0b00000000
000015 ef20 ldi q3, 0xf0 ; 0b11110000
000016 bb1a out ddrADC, q2
000017 bb1b out portADC, q2 ; Input ADC, awal 0b00000000

000018 bb27 out ddrKEYPAD, q3 ; Input KEYPAD, awal 0b11110000

000019 bb04 out ddrLCD, q1


00001a bb15 out portLCD, q2 ; Output LCD, awal 0b00000000

00001b bb01 out ddrPWM, q1


00001c bb12 out portPWM, q2 ; Output portPWM, awal 0b00000000
00001d bb10 out pinPWM, q2 ; Output pinPWM, awal 0b00000000

00001e c103 rjmp start

;========================
; Liquid Crystal Display (LCD)
;========================
lcd:
00001f e038 ldi lc1, 8
loopdelay:
000020 d138 rcall delay
000021 953a dec lc1
000022 3030 cpi lc1, 0
000023 f7e1 brne loopdelay

;inisialiasasi awal
000024 e330 ldi lc1, 0x30
000025 d012 rcall perintah
000026 d132 rcall delay
000027 e330 ldi lc1, 0x30
000028 d00f rcall perintah
000029 0000 nop
00002a 0000 nop
00002b e330 ldi lc1, 0x30
00002c d00b rcall perintah
00002d e230 ldi lc1, 0x20
00002e d009 rcall perintah
00002f e238 ldi lc1, 0x28
000030 d007 rcall perintah
000031 e036 ldi lc1, 0x06
000032 d005 rcall perintah
000033 e03d ldi lc1, 0x0d
000034 d003 rcall perintah
000035 e031 ldi lc1, 0x01
000036 d001 rcall perintah
000037 9508 ret

perintah:
000038 2f43 mov lc2, lc1
000039 9532 swap lc1
00003a e05f ldi lc3, 0x0f
00003b 2335 and lc1, lc3 ; LC1 untuk high
00003c 2345 and lc2, lc3 ; LC2 untuk low
00003d bb35 out portLCD, lc1
00003e 98ac cbi portLCD, 4 ; clear bit 4 dari portLCD
00003f d012 rcall enable
000040 bb45 out portLCD, lc2
000041 98ac cbi portLCD, 4 ; clear bit 4 dari portLCD
000042 d00f rcall enable
000043 d115 rcall delay
000044 9508 ret

data:
000045 2f43 mov lc2, lc1
000046 9532 swap lc1
000047 e05f ldi lc3, 0x0f
000048 2335 and lc1, lc3 ; LC1 untuk high
000049 2345 and lc2, lc3 ; LC2 untuk low
00004a bb35 out portLCD, lc1
00004b 9aac sbi portLCD, 4
00004c d005 rcall enable
00004d bb45 out portLCD, lc2
00004e 9aac sbi portLCD, 4
00004f d002 rcall enable
000050 d108 rcall delay
000051 9508 ret

enable:
000052 9aaf sbi portLCD, 7 ; set bit 7 dari portLCD
000053 0000 nop
000054 0000 nop
000055 98af cbi portLCD, 7 ; clear bit 7 dari portLCD
000056 9508 ret

kirim_pesan:
000057 2411 clr r1
loop_kirim:
000058 95c8 lpm
000059 2d30 mov lc1, r0
00005a 3030 cpi lc1, 0
00005b f409 brne kirim
00005c 9508 ret
kirim:
00005d dfe7 rcall data
00005e 9631 adiw zl, 1
00005f cff8 rjmp loop_kirim

;(menentukan baris)
baris1:
000060 e032 ldi lc1, 0x02
000061 dfd6 rcall perintah
000062 9508 ret
baris2:
000063 ec30 ldi lc1, 0xc0
000064 dfd3 rcall perintah
000065 9508 ret

;================
; Keypad Matrik 4x3
;================
keypad:
000066 e66f ldi key1, 0x7f ^ (1<<key_col1) ; xor bit untuk kolom 1(0)
000067 bb68 out portKEYPAD, key1 ; Keluarkan ke Port
000068 0000 nop ; Synchronizer delay
000069 9bb0 sbis pinKEYPAD, key_row1 ; Cek jika key_row1 = 0
00006a c01d rjmp key11
00006b 9bb1 sbis pinKEYPAD, key_row2 ; Cek jika key_row2 = 0
00006c c020 rjmp key12
00006d 9bb2 sbis pinKEYPAD, key_row3 ; Cek jika key_row3 = 0
00006e c023 rjmp key13
00006f 9bb3 sbis pinKEYPAD, key_row4 ; Cek jika key_row4 = 0
000070 c026 rjmp key14

000071 e56f ldi key1, 0x7f ^ (1<<key_col2) ; xor bit untuk kolom 2(0)
000072 bb68 out portKEYPAD, key1 ; Keluarkan ke Port
000073 0000 nop ; Synchronizer delay
000074 9bb0 sbis pinKEYPAD, key_row1 ; Cek jika key_row1 = 0
000075 c026 rjmp key21
000076 9bb1 sbis pinKEYPAD, key_row2 ; Cek jika key_row2 = 0
000077 c029 rjmp key22
000078 9bb2 sbis pinKEYPAD, key_row3 ; Cek jika key_row3 = 0
000079 c02c rjmp key23
00007a 9bb3 sbis pinKEYPAD, key_row4 ; Cek jika key_row4 = 0
00007b c02f rjmp key24
00007c e36f ldi key1, 0x7f ^ (1<<key_col3) ; xor bit untuk kolom 3(0)
00007d bb68 out portKEYPAD, key1 ; Keluarkan ke Port
00007e 0000 nop ; Synchronizer delay
00007f 9bb0 sbis pinKEYPAD, key_row1 ; Cek jika key_row1 = 0
000080 c02f rjmp key31
000081 9bb1 sbis pinKEYPAD, key_row2 ; Cek jika key_row2 = 0
000082 c032 rjmp key32
000083 9bb2 sbis pinKEYPAD, key_row3 ; Cek jika key_row3 = 0
000084 c035 rjmp key33
000085 9bb3 sbis pinKEYPAD, key_row4 ; Cek jika key_row4 = 0
000086 c038 rjmp key34
000087 cfde rjmp keypad
;------------------------------------------------------------------------------------
; Konversi kolom-baris ke nilai desimal
key11:
000088 e061 ldi key1, 1
000089 e371 ldi key2, 0x31
00008a 9bb0 sbis pinKEYPAD, key_row1
00008b cffc rjmp key11
00008c 9508 ret
key12:
00008d e064 ldi key1, 4
00008e e374 ldi key2, 0x34
00008f 9bb1 sbis pinKEYPAD, key_row2
000090 cffc rjmp key12
000091 9508 ret
key13:
000092 e067 ldi key1, 7
000093 e377 ldi key2, 0x37
000094 9bb2 sbis pinKEYPAD, key_row3
000095 cffc rjmp key13
000096 9508 ret
key14:
000097 e06b ldi key1, 11
000098 e471 ldi key2, 0x41
000099 9bb3 sbis pinKEYPAD, key_row4
00009a cffc rjmp key14
00009b 9508 ret
;------------------------------------------------------------------------------------
key21:
00009c e062 ldi key1, 2
00009d e372 ldi key2, 0x32
00009e 9bb0 sbis pinKEYPAD, key_row1
00009f cffc rjmp key21
0000a0 9508 ret
key22:
0000a1 e065 ldi key1, 5
0000a2 e375 ldi key2, 0x35
0000a3 9bb1 sbis pinKEYPAD, key_row2
0000a4 cffc rjmp key22
0000a5 9508 ret
key23:
0000a6 e068 ldi key1, 8
0000a7 e378 ldi key2, 0x38
0000a8 9bb2 sbis pinKEYPAD, key_row3
0000a9 cffc rjmp key23
0000aa 9508 ret
key24:
0000ab e060 ldi key1, 0
0000ac e370 ldi key2, 0x30
0000ad 9bb3 sbis pinKEYPAD, key_row4
0000ae cffc rjmp key24
0000af 9508 ret
;------------------------------------------------------------------------------------
key31:
0000b0 e063 ldi key1, 3
0000b1 e373 ldi key2, 0x33
0000b2 9bb0 sbis pinKEYPAD, key_row1
0000b3 cffc rjmp key31
0000b4 9508 ret
key32:
0000b5 e066 ldi key1, 6
0000b6 e376 ldi key2, 0x36
0000b7 9bb1 sbis pinKEYPAD, key_row2
0000b8 cffc rjmp key32
0000b9 9508 ret
key33:
0000ba e069 ldi key1, 9
0000bb e379 ldi key2, 0x39
0000bc 9bb2 sbis pinKEYPAD, key_row3
0000bd cffc rjmp key33
0000be 9508 ret
key34:
0000bf e06c ldi key1, 12
0000c0 e472 ldi key2, 0x42
0000c1 9bb3 sbis pinKEYPAD, key_row4
0000c2 cffc rjmp key34
0000c3 9508 ret
;====================
; Konversi Hexa ke ASCII
;====================
ubah:
0000c4 2444 clr ascii1
0000c5 2455 clr ascii2
0000c6 2466 clr ascii3
;------------------------------------------------------------------------------------
ratusan:
0000c7 e6a4 ldi aa, 100
0000c8 2fb8 mov bb, adc1
0000c9 1b8a sub adc1, aa ; adc1 - 100
0000ca f01a brmi ubah100 ; adc1 minus? jika ya ke ubah100
0000cb 9443 inc ascii1 ; ascii1 + 1
0000cc 9443 inc ascii1 ; ascii1 + 1
0000cd cff9 rjmp ratusan ; ke ratusan
ubah100:
0000ce 959a dec adc2
0000cf f01a brmi ubah100a
0000d0 e0a0 ldi aa, 256
0000d1 0f8a add adc1,aa
0000d2 cff4 rjmp ratusan
ubah100a:
0000d3 e3a2 ldi aa, 50
0000d4 2f8b mov adc1, bb
ubah100b:
0000d5 2fb8 mov bb, adc1
0000d6 1b8a sub adc1, aa ; adc1 - 50
0000d7 f012 brmi puluhan ; adc1 minus? jika ya ke puluhan
0000d8 9443 inc ascii1 ; ascii1 + 1
0000d9 cffb rjmp ubah100b ; ke ubah100a
;------------------------------------------------------------------------------------
puluhan:
0000da e0a5 ldi aa, 5
0000db 2f8b mov adc1, bb
ubah10:
0000dc 2fc8 mov cc, adc1
0000dd 1b8a sub adc1, aa ; adc1 - 5
0000de f012 brmi satuan ; adc1 minus? jika ya ke satuan
0000df 9453 inc ascii2 ; ascii2 + 1
0000e0 cffb rjmp ubah10 ; ke ubah10
;------------------------------------------------------------------------------------
satuan:
0000e1 e0a2 ldi aa, 2
0000e2 2f8c mov adc1, cc
0000e3 9f8a mul adc1, aa
0000e4 2c60 mov ascii3, r0
;------------------------------------------------------------------------------------
angka:
0000e5 e3a0 ldi aa, 0x30
0000e6 0e4a add ascii1, aa ; puluhan
0000e7 0e5a add ascii2, aa ; satuan
0000e8 0e6a add ascii3, aa ; angka belakang koma
0000e9 9508 ret
;==============================
;MENAMPILKAN "MODE ON - OFF"
;==============================
mode:
0000ea e1e0 ldi zl, low (2*data1)
0000eb e0f3 ldi zh, high (2*data1)
0000ec df73 rcall baris1
0000ed df69 rcall kirim_pesan
0000ee e2e2 ldi zl, low (2*data2)
0000ef e0f3 ldi zh, high (2*data2)
0000f0 df72 rcall baris2
0000f1 df65 rcall kirim_pesan
0000f2 d074 rcall delay1
0000f3 9508 ret
;=============================
;MENENTUKAN NILAI MASUKAN
;=============================
masukan:
0000f4 e031 ldi lc1, 0x01
0000f5 df42 rcall perintah
0000f6 e3e4 ldi zl, low (2*data3)
0000f7 e0f3 ldi zh, high (2*data3)
0000f8 df67 rcall baris1
0000f9 df5d rcall kirim_pesan
;masukan puluhan
pertama:
0000fa df6b rcall keypad ; Periksa keypad (puluhan)
0000fb 306b cpi key1, 11
0000fc f3e9 breq pertama
0000fd 306c cpi key1, 12
0000fe f3d9 breq pertama
0000ff 2f37 mov lc1, key2
000100 df44 rcall data
000101 2e77 mov a1, key2
;masukan satuan
kedua:
000102 df63 rcall keypad ; Periksa keypad (satuan)
000103 306b cpi key1, 11
000104 f3e9 breq kedua
000105 306c cpi key1, 12
000106 f3d9 breq kedua
000107 2f37 mov lc1, key2
000108 df3c rcall data
000109 2e87 mov a2, key2
;tampilkan koma
00010a e23c ldi lc1, 0b00101100
00010b df39 rcall data
;masukan koma
ketiga:
00010c df59 rcall keypad ; Periksa keypad (koma)
00010d 306b cpi key1, 11
00010e f3e9 breq ketiga
00010f 306c cpi key1, 12
000110 f3d9 breq ketiga
000111 2f37 mov lc1, key2
000112 df32 rcall data
000113 2e97 mov a3, key2
;tampilkan derajat
000114 ed3f ldi lc1, 0b11011111
000115 df2f rcall data
000116 e433 ldi lc1, 0b01000011
000117 df2d rcall data
000118 e4e8 ldi zl, low (2*data5)
000119 e0f3 ldi zh, high (2*data5)
00011a df48 rcall baris2
00011b df3b rcall kirim_pesan
pilih:
00011c df49 rcall keypad
00011d 306c cpi key1, 12
00011e f2a9 breq masukan ; key1=12 ke masukan
00011f 306b cpi key1, 11
000120 f031 breq proses ; key1=11 ke proses
000121 cffa rjmp pilih

;=======================
; PROSES KESELURUHAN
;=======================
start:
000122 e3a0 ldi aa, 0x30
000123 2eea mov c1, aa
000124 defa rcall lcd
000125 dfc4 rcall mode
000126 cfcd rjmp masukan
proses:
;------------------------------------------------------------------------------------
;Analog - Digital Converter
ad_converter:
000127 e0a0 ldi aa, 0
000128 b9a7 out ADMUX, aa
000129 eead ldi aa, 0b11101101
00012a 2f8a mov adc1, aa
00012b b9a6 out ADCSRA, aa
00012c 9478 sei
ADC:
00012d b184 in adc1, ADCL
00012e b195 in adc2, ADCH
00012f df94 rcall ubah
;------------------------------------------------------------------------------------
;Menampilkan data ADC ke LCD
000130 e3ee ldi zl, low (2*data4)
000131 e0f3 ldi zh, high (2*data4)
000132 df30 rcall baris2
000133 df23 rcall kirim_pesan

000134 2d34 mov lc1, ascii1


000135 df0f rcall data
000136 2d35 mov lc1, ascii2
000137 df0d rcall data
;tampilkan koma
000138 e23c ldi lc1, 0b00101100
000139 df0b rcall data
00013a 2d36 mov lc1, ascii3
00013b df09 rcall data
;tampilkan derajat
00013c ed3f ldi lc1, 0b11011111
00013d df07 rcall data
00013e e433 ldi lc1, 0b01000011
00013f df05 rcall data
;------------------------------------------------------------------------------------
;Bandingkan sensor dengan masukan
langkah1: ; untuk puluhan
000140 1447 cp ascii1, a1 ; bandingkan sensor dengan masukan
000141 f019 breq langkah2 ; ke langkah2 jika tidak sama
000142 1847 sub ascii1, a1 ; kurangi puluhan sensor dengan masukan
000143 f05a brmi termoelektrik_off ; ke termoelektrik_off jika negatif
000144 c00f rjmp termoelektrik_on ; ke termoelektrik_on
langkah2: ; untuk satuan
000145 1458 cp ascii2, a2 ; bandingkan sensor dengan masukan
000146 f019 breq langkah3 ; ke langkah3 jika tidak sama
000147 1858 sub ascii2, a2 ; kurangi satuan sensor dengan masukan
000148 f032 brmi termoelektrik_off ; ke termoelektrik_off jika negatif
000149 c00a rjmp termoelektrik_on ; ke termoelektrik_on
langkah3: ; untuk satu angka belakang koma
00014a 1469 cp ascii3, a3 ; bandingkan sensor dengan masukan
00014b f041 breq termoelektrik_on ; ke termoelektrik_on jika tidak sama
00014c 1869 sub ascii3, a3 ; kurangi sensor dengan masukan
00014d f00a brmi termoelektrik_off ; ke termoelektrik_off jika negatif
00014e c005 rjmp termoelektrik_on ; ke termoelektrik_on
;------------------------------------------------------------------------------------
; Termoelektrik On - Off
termoelektrik_off:
00014f e0a0 ldi aa, 0x00 ; isi aa dengan 0x00
000150 bba2 out portPWM, aa ; isi portPWM dengan aa
000151 bba0 out pinPWM, aa ; isi pinPWM dengan aa
000152 d022 rcall delay2
000153 cfd9 rjmp ADC
termoelektrik_on:
000154 efa0 ldi aa, 0xf0 ; isi aa dengan 0xf0
000155 bba2 out portPWM, aa ; isi portPWM dengan aa
000156 bba0 out pinPWM, aa ; isi pinPWM dengan aa
000157 d01d rcall delay2
000158 cfd4 rjmp ADC
;================
; WAKTU TUNDA
;================
delay: ; untuk LCD
000159 e0a4 ldi aa,0b00000100
00015a bfa9 out timsk,aa
00015b efaf ldi aa,high(0xfffa)
00015c bdad out tcnt1h,aa
00015d efaa ldi aa,low(0xfffa)
00015e bdac out tcnt1l,aa
00015f e0a5 ldi aa,0b00000101
000160 bdae out tccr1b,aa
looptimer:
000161 b7b8 in bb,tifr
000162 ffb2 sbrs bb,tov1
000163 cffd rjmp looptimer
000164 e0b4 ldi bb,0b00000100
000165 bfa8 out tifr,aa
000166 9508 ret
;------------------------------------------------------------------------------------
delay1: ; untuk tampilan awal
000167 e0a4 ldi aa,0b00000100
000168 bfa9 out timsk,aa
000169 efa9 ldi aa,high(0xf900)
00016a bdad out tcnt1h,aa
00016b e0a0 ldi aa,low(0xf900)
00016c bdac out tcnt1l,aa
00016d e0a5 ldi aa,0b00000101
00016e bdae out tccr1b,aa
looptimer1:
00016f b7b8 in bb,tifr
000170 ffb2 sbrs bb,tov1
000171 cffd rjmp looptimer1
000172 e0b4 ldi bb,0b00000100
000173 bfa8 out tifr,aa
000174 9508 ret
;------------------------------------------------------------------------------------
delay2: ; untuk proses
000175 e0a4 ldi aa,0b00000100
000176 bfa9 out timsk,aa
000177 edab ldi aa,high(0xdb00)
000178 bdad out tcnt1h,aa
000179 e0a0 ldi aa,low(0xdb00)
00017a bdac out tcnt1l,aa
00017b e0a5 ldi aa,0b00000101
00017c bdae out tccr1b,aa
looptimer2:
00017d e36f ldi key1, 0x7f ^ (1<<key_col3)
00017e bb68 out portKEYPAD, key1
00017f 0000 nop
000180 9bb3 sbis pinKEYPAD, key_row4
000181 cfa0 rjmp start

000182 b7b8 in bb,tifr


000183 ffb2 sbrs bb,tov1
000184 cff8 rjmp looptimer2
000185 e0b4 ldi bb,0b00000100
000186 bfa8 out tifr,aa
000187 9508 ret

;==================
; DATA TAMPIL LCD
;==================
data1:
.db "*PENDINGIN OBAT*", 0
000188 502a
000189 4e45
00018a 4944
00018b 474e
00018c 4e49
00018d 4f20
00018e 4142
00018f 2a54
000190 0000
data2:
.db "*MODE ON - OFF*", 0
000191 4d2a
000192 444f
000193 2045
000194 4f20
000195 204e
000196 202d
000197 464f
000198 2a46
000199 0000
data3:
.db "Input = ", 0
00019a 6e49
00019b 7570
00019c 2074
00019d 3d20
00019e 0020
data4:
.db "Sensor = ", 0
00019f 6553
0001a0 736e
0001a1 726f
0001a2 3d20
0001a3 0020
data5:
.db "Tekan : OK / X ", 0
0001a4 6554
0001a5 616b
0001a6 206e
0001a7 203a
0001a8 4b4f
0001a9 2f20
0001aa 5820
0001ab 2020
0001ac 0020

Assembly complete with no errors.

Anda mungkin juga menyukai