Anda di halaman 1dari 26

BAB I

PENDAHULUAN

1.1 Latar Belakang


Mata kuliah pilihan mekatronika, merupakan mata kuliah yang dipilih sesuai
dengan keinginan masing-masing mahasiswa jurusan teknik elektro. Pada kuliah
mekatronika, mahasiswa memilih judul yang telah diberikan oleh dosen untuk
melengkapi tugas pembuatan rangkaian dan UK 4.
Judul yang diperoleh dalam perkuliahan mekatronika sebagai tugas dan UK 4
khususnya ialah “Pengendali Kipas dengan Sensor Suhu”. Sesuai dengan judul
tersebut dibuatlah suatu sistem menggunakan mikrokontroler ATMega 8 dan sensor
suhu LM35 beserta kipas guna melengkapi tujuan perkuliahan mekatronika.
1.2 Identifikasi Masalah
Berdasarkan latar belakang permasalahan tersebut diharapkan:
a. Dengan mengikuti perkuliahan mekatronika diharapkan mampu membuat
rangkaian pengendali kipas menggunakan mikrokontroler dan sensor suhu.
b. Dapat mengendalikan kipas sesuai dengan set point suhu.
1.3 Rumusan Masalah
Rumusan masalah ini terfokus pada proses perancangan rangkaian
menggunakan mikrokontrol ATMega 8 dengan sensor suhu LM35 sebagai
pengendali dan set point untuk menggerakkan kipas.
1.4 Tujuan
Dari rumusan masalah tersebut didapatkan tujuan untuk membuat rangkaian
pengendali kipas dengan set point suhu.
1.5 Manfaat
Pembuatan rangkaian pengendali kipas dengan set point suhu berbasis
mikrokontroler ATMega 8 menggunakan sensor suhu LM35 diharapkan dapat
beermanfaat dalam memberikan inspirasi bagi setiap mahasiswa yang mengikuti
kuliah mekatronika.
BAB II
LANDASAN TEORI

2.1 Microcontroller AVR (Alf and Vegaard’s Risc Processor)


Microcontroller AVR adalah salah satu jenis microcontroller yang paling
sering dipakai dalam bidang elektronika dan instrumentasi. Microcontroller AVR ini
memiliki arsitektur RISC (Reduce Instruction Set Computing) delapan bit, di mana
semua instruksi dikemas dalam kode 16-bit (16 bits word) dan sebagian besar
instruksi dieksekusi dalam 1 siklus clock. Secara umum AVR dapat dikelompokkan
dalam 7 kelas, yaitu keluarga ATTiny, keluarga AT90Sxx, keluarga ATMega,
keluarga ATXMega, keluarga ATUSBxx, keluarga ATPWMxx, dan AT86RFxx.
Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral
dan fungsinya(Atmel, 2010).
2.2 ATMega 8
AVR merupakan seri microcontroller CMOS 8-bit buatan Atmel, berbasis
arsitektur RISC (Reduced Instruction Set Computer). Hampir semua instruksi
dieksekusi dalam satu siklus clock. AVR mempunyai 32 register general-purpose,
timer/counter fleksibel dengan mode compare, interrupt internal dan external, serial
USART, Programmable Watchdog Timer, dan mode power saving. Beberapa
diantaranya mempunyai ADC dan PWM internal. AVR juga mempunyai In-System
Programmable Flash on-chip yang mengijinkan memori program untuk diprogram
ulang dalam sistem menggunakan hubungan serial SPI.
ATMega 8 adalah microcontroller CMOS 8-bit daya rendah berbasis arsitektur RISC
yang ditingkatkan. Kebanyakan instruksi dikerjakan pada satu siklus clock, ATMega
8 mempunyai throughput mendekati 1 MPS/MHz membuat disain dari sistem untuk
mengoptimalisasi konsumsi daya versus kecepatan proses.
Susunan pin-pin dari mikrokontrol ATMega 8 diperlihatkan pada gambar 2.1.
Mikrokontrol ini tersusun dari 28 pin yang memiliki beberapa fungsi tertentu.
Gambar 2.1 Pin ATMega 8
1. VCC
Suplai tegangan digital. Besarnya tegangan berkisar antara 4,5 – 5,5V untuk
ATMega 8 dan 2,7 – 5,5V untuk ATMega 8L.
2. GND
Ground. Referensi nol suplai tegangan digital.
3. PORTB(PB7..PB0)
PORTB adalah port I/O dua-arah (bidirectional) 8-bit dengan resistor pull-up
internal yang dapat dipilih. Buffer keluaran port ini memiliki karakteristik yang
simetrik ketika digunakan sebagai source ataupun sink. Ketika digunakan sebagai
input, pin yang di pull-low secara external akan memancarkan arus jika resistor
pull-up-nya diaktifkan. Pin-pin PORTB akan berada pada kondisi tri-state ketika
RESET aktif, meskipun clock tidak running.
4. PORTC(PC5..PC0)
PORTC adalah port I/O dua-arah (bidirectional) 6-bit dengan resistor pull-up
internal yang dapat dipilih. Buffer keluaran port ini memiliki karakteristik yang
simetrik ketika digunakan sebagai source ataupun sink. Ketika digunakan sebagai
input, pin yang di pull-low secara external akan memancarkan arus jika resistor
pull-up-nya diaktifkan. Pin-pin PORTC akan berada pada kondisi tri-state ketika
RESET aktif, meskipun clock tidak running.
5. PC6/RESET
Jika fuse RSTDISBL diprogram, maka PC6 berfungsi sebagai pin I/O akan
tetapi dengan karakteristik yang berbeda dengan PC5..PC0. Jika fuse RSTDISBL
tidak diprogram, maka PC6 berfungsi sebagai masukan Reset. Sinyal low pada
pin ini dengan lebar minimum 1,5 mikrodetik akan membawa microcontroller ke
kondisi Reset, meskipun clock tidak running.
6. PORTD(PD7..PD0)
PORTD adalah port I/O dua-arah (bidirectional) 8-bit dengan resistor pull-up
internal yang dapat dipilih. Buffer keluaran port ini memiliki karakteristik yang
simetrik ketika digunakan sebagai source ataupun sink. Ketika digunakan sebagai
input, pin yang di pull-low secara external akan memancarkan arus jika resistor
pull-up-nya diaktifkan. Pin-pin PORTD akan berada pada kondisi tri-state ketika
RESET aktif, meskipun clock tidak running.
7. RESET
Pin masukan Reset. Sinyal low pada pin ini dengan lebar minimum 1,5
mikrodetik akan membawa microcontroller ke kondisi Reset, meskipun clock
tidak running. Sinyal dengan lebar kurang dari 1,5 mikrodetik tidak menjamin
terjadinya kondisi Reset.
8. AVCC
AVCC adalah pin suplai tegangan untuk ADC, PC3..PC0, dan ADC7..ADC6.
Pin ini harus dihubungkan dengan VCC, meskipun ADC tidak digunakan. Jika
ADC digunakan, VCC harus dihubungkan ke AVCC melalui low-pass filter
untuk mengurangi noise.
9. AREF
Pin Analog Reference untuk ADC.
10. ADC6&ADC7
Analog input ADC. Hanya ada pada ATMega8 dengan package TQFP dan
QFP/MLF.
2.3 IC Regulator 7805

Gambar 2.2 IC Regulator 7805

Gambar 2.2 merupakan bentuk fisik IC regulator 7805. IC ini adalah


regulator untuk membuat catu daya (+5V) dari rangkaian kontrol layar. IC ini
digunakan pada rangkaian catu daya.
2.4 Potensiometer
Potensiometer (POT) adalah salah satu jenis Resistor yang Nilai Resistansinya
dapat diatur sesuai dengan kebutuhan Rangkaian Elektronika ataupun kebutuhan
pemakainya. Potensiometer merupakan Keluarga Resistor yang tergolong dalam
Kategori Variable Resistor. Secara struktur, Potensiometer terdiri dari 3 kaki
Terminal dengan sebuah shaft atau tuas yang berfungsi sebagai pengaturnya.

Gambar 2.3 Potensiommeter


2.5 Sensor Suhu LM35
Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk
mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan. Sensor suhu
LM35 yang dipakai dalam penelitian ini berupa komponen elektronika yang
diproduksi oleh National Semiconductor. LM35 memiliki keakuratan tinggi dan
kemudahan perancangan, LM35 juga mempunyai keluaran impedansi yang rendah
dan linearitas yang tinggi, sehingga dapat dengan mudah dihubungkan dengan
rangkaian kendali khusus, serta tidak memerlukan penyetelan lanjutan.
Meskipun tegangan sensor ini dapat mencapai 30 volt akan tetapi yang
diberikan kesensor adalah sebesar ±5 volt, sehingga dapat digunakan dengan catu
daya tunggal dengan ketentuan bahwa LM35 hanya membutuhkan arus sebesar 60
µA hal ini berarti LM35 mempunyai kemampuan menghasilkan panas (self-heating)
dari sensor yang dapat menyebabkan kesalahan pembacaan yang rendah yaitu kurang
dari 0,5 ºC pada suhu 25 ºC .

Gambar 2.4 Sensor Suhu LM35

Gambar 2.4 menunjukan bentuk dari LM35 tampak depan dan tampak bawah
serta bentuk aslinya. 3 pin LM35 menujukan fungsi masing-masing pin diantaranya,
pin 1 berfungsi sebagai sumber tegangan kerja dari LM35, pin 2 atau tengah
digunakan sebagai tegangan keluaran atau Vout dengan jangkauan kerja dari 0 Volt
sampai dengan 1,5 Volt dengan tegangan operasi sensor LM35 yang dapat digunakan
antar 4 Volt sampai 30 Volt. Keluaran sensor ini akan naik sebesar 10 mV setiap
derajad celcius sehingga diperoleh persamaan sebagai berikut :

VLM35 = Suhu* 10 mV
Gambar 2.5 skematik sensor suhu LM35

Pada gambar 2.5 Vout adalah tegangan keluaran sensor yang terskala linear
terhadap suhu terukur, yakni 10 mV per 1 derajad celcius. Jadi jika Vout =
530mV, maka suhu terukur adalah 53 derajad celcius. Dan jika Vout =
320mV, maka suhu terukur adalah 32 derajad celcius. Tegangan keluaran ini bisa
langsung diumpankan sebagai masukan ke rangkaian pengkondisi sinyal seperti
rangkaian penguat operasional dan rangkaian filter, atau rangkaian lain seperti
rangkaian pembanding tegangan dan rangkaian analog to digital converter.
Rangkaian dasar tersebut cukup untuk sekedar bereksperimen atau untuk
aplikasi yang tidak memerlukan akurasi pengukuran yang sempurna. Akan tetapi
tidak untuk aplikasi yang sesungguhnya. Terbukti dari eksperimen yang telah saya
lakukan, tegangan keluaran sensor belumlah stabil. Pada kondisi suhu yang relatif
sama, jika tegangan suplai saya ubah-ubah (saya naikkan atau turunkan), maka Vout
juga ikut berubah. Dibandingkan dengan tingkat kepresisian, maka tingkat akurasi
alat ukur lebih utama karena alat ukur seyogyanya dapat dijadikan patokan bagi
penggunanya. Jika nilainya berubah-ubah untuk kondisi yang relatif tidak ada
perubahan, maka alat ukur yang demikian ini tidak dapat digunakan.
Sensor suhu LM35 memiliki karakteristik sebagai berikut:
1. Memiliki sensitivitas suhu, dengan faktor skala linear antara tegangan dan suhu 10
mV/ºC, sehingga dapat dikalibrasi langsung dalam celcius.
2. Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5ºC pada suhu 25 ºC seperti
terlihat pada gambar 2.6.
3. Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC.
4. Bekerja pada tegangan 4 sampai 30 volt.
5. Memiliki arus rendah yaitu kurang dari 60 µA.
6. Memiliki pemanasan sendiri yang rendah (low-heating) yaitu kurang dari 0,1 ºC
pada udara diam.
7. Memiliki impedansi keluaran yang rendah yaitu 0,1 W untuk beban 1 mA.
8. Memiliki ketidaklinieran hanya sekitar ± ¼ ºC.

Gambar 2.6 Grafik akurasi LM35 terhadap suhu


2.6 Dioda
Dioda berasal dari pendekatan kata dua elektroda yaitu anoda dan katoda.
Dioda semikonduktor hanya melewatkan arus searah saja (forward), sehingga banyak
digunakan sebagai komponen penyearah arus. Secara sederhana sebuah dioda biasa
kita asumsikan sebuah katup, dimana katup tersebut akan terbuka manakala air yang
mengalir dari belakang katup menuju kedepan, sedangkan katup akan menutup oleh
dorongan aliran air dari depan katup. Pada gambar 2.7 terlihat bentuk fisik dioda.

Gambar 2.7 Dioda


2.7 Elco
Elco (Elektrolit Condensator) adalah komponen yang memiliki 2 kaki, yaitu
kaki (-) dan kaki (+). Fungsi elco juga dapat di bilang sebagai penyimpan arus listrik
DC. Pada gambar 2.8 akan ditunjukkan bentuk elco.

Gambar 2.8 Elco


2.8 LCD(Liquid Crystal Display)
Merupakan sebuah komponen yang dapat menampilkan tulisan maupun
gambar yang telah diprogram terlebih dahulu ke layar LCD. Masing-masing modul
LCD memiliki suatu controler yang berfungsi untuk mengontrol tampilan layar LCD
secara keseluruhan. Controler pada modul LCD menerima instruksi dan data dari
suatu prosesor atau mikrokontrol untuk menentukan karakter apa yang akan
ditampilkan pada layar LCD tersebut.
Modul LCD memiliki karakteristik sebagai berikut:
1. Terdapat 16 x 2 karakter huruf yang bisa ditampilkan.
2. Setiap huruf terdiri dari 5x7 dot-matrix cursor.
3. Terdapat 192 macam karakter.
4. Terdapat 80 x 8 bit display RAM (maksimal 80 karakter).
5. Memiliki kemampuan penulisan dengan 8 bit maupun dengan 4 bit.
6. Dibangun dengan osilator lokal.
7. Satu sumber tegangan 5 volt.
8. Otomatis reset saat tegangan dihidupkan.
9. Bekerja pada suhu 0°C sampai 55°C
Konfigurasi pin dari LCD ditunjukkan pada gambar 2.9:

Gambar 2.9 Pin LCD


Tabel 2.1 keterangan pin LCD:
 Pin
 Function  Name
No
1 Ground (0V) Ground
2 Supply voltage; 5V (4.7V – 5.3V)  Vcc
3 Contrast adjustment; through a variable resistor  VEE
4 Selects command register when low; and data register Register
when high Select
5 Low to write to the register; High to read from the Read/write
register
6 Sends data to data pins when a high to low pulse is given Enable
7 DB0
8 DB1
9 DB2
10 DB3
8-bit data pins
11 DB4
12 DB5
13 DB6
14 DB7
15 Backlight VCC (5V) Led+
16 Backlight Ground (0V) Led-
2.9 Relay
Relay merupakan komponen yang digunakan dalam pensaklaran. Pensaklaran
dapat dilakukan terhadap suatu beban dengan tegangan dan daya tinggi berdasarkan
input sinyal yang lebih rendah. Pensaklaran dengan menggunakan relay dilakukan
secara mekanik dengan memanfaatkan medan magnet yang dibangkitkan oleh
solenoid berdaya rendah. Relay ini menghubungkan rangkaian beban on atau off
dengan pemberian energi elektromagnetis.
2.10 Bahasa C
Akar dari bahasa C adalah bahasa yang dikembangkan oleh Martin Richard
pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thompson yang kemudian
mengembangkan bahasa yang disebut dengan B pada tahun 1970. Perkembangan
selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ricthie sekitar tahun 1972 di
Bell Telephone Laboratories Inc (sekarang adalah AT&T Bell Laboratories).
Bahasa C memiliki kemampuan diantaranya adalah sebagai berikut :
1. Bahasa C tersedia hampir di semua jenis komputer
2. Kode bahasa C sifatnya adalah portable .
3. Aplikasi yang ditulis dengan bahasa C untuk suatu komputer tertentu dapat
digunakan di komputer lain hanya dengan sedikit modifikasi.
4. Bahasa C sudah dliengkapi dengan library yang memudahkan dalam
pemrograman.
Struktur Pemrograman C
Struktur penulisan bahasa C secara umum terdiri atas empat blok, yaitu :
1. Header.
2. Deklarasi konstanta global atau variable.
3. Fungsi atau prosedur.
4. Program utama
2.11 Kipas DC
Kipas DC adalah motor listrik yang memerlukan suplai tegangan arus searah
pada kumparan medan untuk diubah menjadi energi gerak mekanik.

Gambar 2.10 Kipas DC


BAB III
PERANCANGAN

3.1 Alat dan Bahan


Dalam proses pembuatan alat atau rangkaian ini memerlukan peralatan baik
yang berukuran besar maupun berukuran kecil. Dibawah ini adalah daftar alat yang
digunakan untuk membuat pengendali kipas dengan sensor suhu.
Tabel 3.2 Peralatan yang digunakan dalam pembuatan alat.

No. Nama Barang Jumlah

1. Mesin Pemotong Plat 1 Buah

2. Minidrill 1 Buah

3. Gerinda 1 Buah

4. Solder 1 Buah

5. Multimeter 1 Buah

6. Atraktor 1 Buah
7. Mata Bor 0,8 dan 0,1 1 Buah
8. Mesin Press 1 Buah

9. Tang Potong 1 Buah

10. Komputer 1 Buah

11. Lem Tembak 1 Buah

12. Polyfoam 1 Buah

13. Cutter 1 Buah

14. Pelarut Secukupnya

15. Tenol Secukupnya


Disamping peralatan yang diperlukan, diperlukan juga bahan atau berbagai
komponen elektronika. Berikut ini adalah daftar bahan atau komponen yang
digunakan untuk membuat rangkaian pengendali kipas dengan sensor suhu.
Tabel 3.3 komponen yang digunakan dalam pembuatan alat.

No. Bahan Spesifikasi Jumlah


AT MEGA 8 1
1. IC
Regulator 7805 1
2. Socket IC 28 pin 3

3. Sensor suhu LM35 1

4. LED Super bright kuning 3mm 4

5. PCB Fiber putih 1

6. Trimpot 203 1

7. Dioda IN 4002 5
Elco 1000uf/16v 1
8. Kapasitor Elco 100uf/16v 2
Keramik 33Pf 2
1k ohm 2
9. Resistor 4k7 ohm 1
330 ohm 1
10. Kristal 12.000 MHz 1

11. Transistor BD 139 2


Lurus 2
12. Pin deret
Siku 1
13. kabel pelangi 6 jalur ±1meter

14. Bateral Lipo 3 Cell 1300 mah 1

15. Button Push on putih 1

16. Push Switch Reset 1


3.2 Blok Diagram

Gambar 3.1 Blok Diagram Rangkaian


3.3 Flowchart

Gambar 3.2 Flowchart


3.4 Cara Pembuatan
a. Pembuatan Skema Rangkaian Driver Kipas DC dengan Set Point Sensor
Suhu (LM35) dengan menggunakan Software Proteus
b. Pembuatan Program Rangkaian Driver Kipas DC dengan Set Point Sensor
Suhu (LM35) dengan menggunakan Software Code Vision AVR
c. Pengujian Program pada Rangkaian Driver Kipas DC dengan Set Point
Sensor Suhu (LM35) pada simulasi.
d. Melakukan Pembelian Komponen Rangkaian Driver Kipas DC dengan Set
Point Sensor Suhu (LM35)
e. Melakukan pencetakan Skema Rangkaian Driver Kipas DC dengan Set
Point Sensor Suhu (LM35)
f. Pengecekan cetakan Skema Rangkaian Driver Kipas DC dengan Set Point
Sensor Suhu (LM35)
g. Penempelan Skema Rangkaian Driver Kipas DC dengan Set Point Sensor
Suhu (LM35) pada Papan PCB
h. Pengecekan kembali cetakan Skema Rangkaian Driver Kipas DC dengan
Set Point Sensor Suhu (LM35) pada Papan PCB
i. Melakukan Pelarutan Papan PCB Rangkaian Driver Kipas DC dengan Set
Point Sensor Suhu (LM35)
j. Mengebora Papan PCB Rangkaian Driver Kipas DC dengan Set Point
Sensor Suhu (LM35)
k. Melakukan Pemasanagan dan Penyolderan Komponen Elektronika pada
Papan PCB Rangkaian Driver Kipas DC dengan Set Point Sensor Suhu
(LM35)
l. Pengecekan Komponen yang telah terpasang pada Rangkaian Driver
Kipas DC dengan Set Point Sensor Suhu (LM35)
m. Memasukkan program ke Rangkaian Driver Kipas DC dengan Set Point
Sensor Suhu (LM35)
n. Pengujian
3.5 Skema dan Layout Rangkaian

Gambar 3.3 Skema Rangkaian Proteus

Gambar 3.4 Layout Rangkaian Ares


BAB IV
HASIL PENELITIAN dan PEMBAHASAN

Rangkaian Driver Kipas DC dengan Set Point Sensor Suhu (LM35)


merupakan sebuah rangkaian pengendali kipas berbasis mikrokontroler.
Mikrokontroler digunakan untuk mengendalikan relay yang dilengkapi sensor suhu
bertype LM35 sebagai set point atau nilai batasan dengan program dimana :
a. Kipas akan hidup jika nilai yang dimasukkan kurang dari nilai pembacaan
suhu (nilai batasan sensor suhu), dan
b. Kipas akan mati jika nilai yang dimasukkan lebih dari nilai pembacaan
suhu (nilai batasan sensor suhu)
4.1. Uji fungsi power supply
Langkah-langkah pada pengukuran power supply adalah sebagai berikut :
1. Siapkan multimeter
2. Kalibrasi multimeter
3. Tulis data yang didapat tersebut dan catat.
Uji fungsi power supply untuk mengetahui apakah sumber tegangan yang
dipakai dalam alat sudah sesuai dengan fungsi yang direncanakan. Tegangan yang
digunakan dalam alat ini adalah sebagai berikut :
Vout Baterai = 12VDC
Vin regulator 7805 = 12VDC
Vout regulator 7805 = ±5VDC
4.2. Uji Fungsi Alat
Uji Rangkaian Driver Kipas DC dengan Set Point Sensor Suhu (LM35) dengan
Nilai Batasan Suhu < Nilai SET (masukan) diperoleh data bahwa kipas dalam
keadaan OFF. Hal ini terjadi karena relay tidak aktif dan sesuai dengan program.
Seperti gambar dibawah ini:
Gambar 4.1 Suhu < Set
Point

Uji Rangkaian Driver Kipas DC dengan Set Point Sensor Suhu (LM35)
dengan Nilai Batasan Suhu > Nilai SET (masukan) dan Kipas ON. Hal ini terjadi
karena relay telah aktif dan sesuai dengan program. Seperti gambar dibawah ini:

Gambar 4.2 Suhu > Set


Point
BAB V
KESIMPULAN DAN SARAN

5.1 Kesimpulan
Dari seluruh hasil perencanaan sampai pembuatan rangkaian elektronik, mekanik
dan eksperimen dapat disimpulkan bahwa:
1. Mahasiswa dapat membuat rangkaian pengendali kipas dengan set point suhu.
2. Rangkaian ini dikontrol oleh mikrokontrol ATMega 8 dengan menggunakan
sensor suhu LM35.
5.2 Saran
Sesuai dengan pembuatan mekanik, rangkain elektronik dan penyusunan
hardware disarankan pengkabelan dengan kerapian yang baik
DAFTAR PUSTAKA

http://shatomedia.com/2008/12/sensor-suhu-lm35/ (29/5/2016 )
http://teknikelektronika.com/pengertian-fungsi-potensiometer/ (31 Mei 2016)
http://telinks.wordpress.com/2008/12/11/deskripsi-pin-atmega8 (29/5/2016)
http://telinks.wordpress.com/2010/04/09/rangkaian-sensor-suhu-lm35/ (29/5/2016)
http://yosmedia.blogspot.com/2008/12/cara-kerja-relay-dc.html (29/5/2016)
www.datasheetcatalog.com (29/5/2016)
LAMPIRAN

Gambar. 1
Bentuk Rangkaian Driver Kipas DC dengan Set Point Sensor Suhu (LM35) Tampak
Depan

Gambar. 2 Bentuk Rangkaian Driver Kipas DC dengan Set Point Sensor Suhu
(LM35) Tampak Samping
Gambar 3. Tampilan Wiring Rangkaian Driver Kipas DC dengan Set Point Sensor
Suhu (LM35) Tampak Atas

Gambar 4. Tampilan Wiring Rangkaian Driver Kipas DC dengan Set Point Sensor
Suhu (LM35) Tampak Atas saat Rangkaian Posisi ON
PROGRAM
/*******************************************************
This program was created by the
CodeWizardAVR V3.12 Advanced
Automatic Program Generator
© Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 12-May-2016
Author :
Company :
Comments:
Chip type : ATmega8
Program type : Application
AVR Core Clock frequency: 12.000000 MHz
Memory model : Small
External RAM size :0
Data Stack size : 256
*******************************************************/
#include <mega8.h>
#include <stdio.h>
#include <delay.h>
#include <alcd.h>
char lcd_buffer[33];

// Voltage Reference: AREF pin


#define ADC_VREF_TYPE ((0<<REFS1) | (0<<REFS0) | (0<<ADLAR))
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | ADC_VREF_TYPE;
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=(1<<ADSC);
// Wait for the AD conversion to complete
while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
return ADCW;
}
unsigned int data_adc,data_adc0;
float suhu,resvar;
void konvert_suhu()
{
data_adc=read_adc(0);
suhu=(float)data_adc*500/1023;
data_adc0=read_adc(1);
resvar=(float)data_adc0*150/1023;
}
void membaca_sensor_suhu()
{
konvert_suhu();
lcd_gotoxy(0,0);
sprintf(lcd_buffer,"SUHU : %.1f",suhu);
lcd_puts(lcd_buffer);
lcd_putchar(0xdf);
lcd_putsf("C ");
lcd_gotoxy(0,1);
sprintf(lcd_buffer,"SET :: %.1f",resvar);
lcd_puts(lcd_buffer);
lcd_putchar(0xdf);
lcd_putsf("C ");
if(suhu>resvar)PORTB.0=1; // pengkondisian kipas
else(PORTB.0=0);
}
void main(void)
{
// Function: Bit7=In Bit6=In Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out
Bit0=Out
DDRB=(0<<DDB7) | (0<<DDB6) | (1<<DDB5) | (1<<DDB4) | (1<<DDB3) |
(1<<DDB2) | (1<<DDB1) | (1<<DDB0);
// State: Bit7=T Bit6=T Bit5=0 Bit4=0 Bit3=0 Bit2=0 Bit1=0 Bit0=0
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) |
(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

// Function: Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In


DDRC=(0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) |
(0<<DDC1) | (0<<DDC0);
// State: Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTC=(0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) |
(0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In


DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (1<<DDD3) |
(0<<DDD2) | (0<<DDD1) | (0<<DDD0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) |
(0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=(0<<CS02) | (0<<CS01) | (0<<CS00);
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Disconnected
// OC1B output: Disconnected
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) |
(0<<WGM11) | (0<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) |
(0<<CS11) | (0<<CS10);
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0<<AS2;
TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) |
(0<<CS21) | (0<<CS20);
TCNT2=0x00;
OCR2=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) |
(0<<TOIE1) | (0<<TOIE0);
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);
// USART initialization
// USART disabled
UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) |
(0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
// Analog Comparator initialization
// Analog Comparator: Off
// The Analog Comparator's positive input is
// connected to the AIN0 pin
// The Analog Comparator's negative input is
// connected to the AIN1 pin
ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) |
(0<<ACIS1) | (0<<ACIS0);
// ADC initialization
// ADC Clock frequency: 750.000 kHz
// ADC Voltage Reference: AREF pin
ADMUX=ADC_VREF_TYPE;
ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (0<<ADIE) |
(1<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);
SFIOR=(0<<ACME);
// SPI initialization
// SPI disabled
SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) |
(0<<CPHA) | (0<<SPR1) | (0<<SPR0);
// TWI initialization
// TWI disabled
TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);
// Alphanumeric LCD initialization
lcd_init(16);
lcd_gotoxy(0,0);
lcd_putsf(" MEKATRONIKA ");
lcd_gotoxy(0,1);
lcd_putsf("PENGENDALI KIPAS");
lcd_clear();
while (1)
{
membaca_sensor_suhu();
}
}

Anda mungkin juga menyukai