Você está na página 1de 4

Termometer Digital + Alarm Kebakaran (Seri Pemantauan

Suhu [I])

Abstrak:

Termometer digital ini berdasar pada sensor suhu LM35. Nilai suhu yang
dibaca oleh sensor ditampilkan pada 4 digit 7-Segment dengan nilai
ketelitian 2 digit di belakang koma dengan satuan oC. Kemudian
mikrokontroler ATMEGA8535 digunakan sebagai pengendali sistem
dengan perangkat lunak penulis skrip program-nya adalah BASCOM (Basic
Compiler). Selain itu, ada pula tambahan buzzer sebagai indikator suhu
panas yang luar biasa / kebakaran yang akan berbunyi pada suhu 55oC.

Modul-Modul Depok Instruments yang Mendukung:

DI-Smart AVR System (DI-Sistem Minimum Mikrokontroler AVR


ATMEGA8535)
DI-Smart Extension Board
DI-D7s (DI-Dual 7-Segment Display)
DI-WLM35TS (DI-Waterproof LM35 Temperature Sensor)
DI-Low Cost USB AVR ISP (USB AVR Downloader)
Blok Diagram:
Flowchart:

Instalasi:

Hubungkan data keluaran modul sensor DI-WLM35TS (DI-Waterproof LM35


Temperature Sensor) pada terminal D7 DI-Smart Extension Board.
Hubungkan Buzzer pada terminal D0 DI-Smart Extension Board.
Hubungkan dua buah modul DI-D7s secara cascade.
Hubungkan pin enable modul DI-D7s pada terminal D1 dan D2 DI-Smart
Extension Board.
Hubungkan port data modul DI-D7s pada Port-C DI-Smart AVR System.
Hubungkan modul DI-Smart Extension Board pada Port-A DI-Smart AVR
System (PORTA.0 = Buzzer, PORTA.1 = enable DI-D7s [pecahan], PORTA.2
= enable DI-D7s [bulat], dan PORTA.7 = Data Sensor).
Hubungkan sumber tegangan 9-12 VDC pada terminal power DI-Smart
AVR System.
Unduh skrip program di bawah ini.
Selamat mencoba.
Skrip Program:

$regfile = m8535.dat Mikrokontroler yang digunakan = ATMEGA8535


$crystal = 8000000 Kristal Oscilator yang digunakan = 8 MHz

Inisialisasi RAM yang akan digunakan sebagai register:


Dim Data7 As Byte
Dim Koma7 As Byte
Dim Dataadc As Word
Dim Suhu As Single
Dim S10 As String * 10
Dim S2a As String * 2
Dim S2b As String * 2
Dim Panjang As Byte

Inisialisasi ADC:
Config Adc = Single , Prescaler = Auto
Start Adc

Inisialisasi PORT I/O:


Config Porta.0 = Output Inisialisasi PORTA.0 sebagi output
Config Porta.5 = Output
Config Porta.6 = Output
Buzzer Alias Porta.0 PORTA.0 = Buzzer
Enlo Alias Porta.5 PORTA.5 = Pengendali 7-Segment (bilangan
pecahan)
Enhi Alias Porta.6 PORTA.6 = Pengendali 7-Segment (bilangan bulat)
Config Portc = Output Inisialisasi PORTC sebagai output
Buzzer = 1 Buzzer = OFF (Buzzer = active-low)

Enlo = 1 7-Segment pecahan = di-latch (tidak menerima data)


Enhi = 1 7-Segment bulat = di-latch

Do
Dataadc = Getadc(7) Ambil data ADC kanal 7 (PORTA.7)

Proses kalibrasi data suhu:


Suhu = Dataadc / 10.23
Suhu = Suhu * 5.03
S10 = Fusing(suhu , #.##)
Panjang = Len(s10)
Panjang = Panjang 3
S2a = Left(s10 , Panjang)
S2b = Right(s10 , 2)
Data7 = Val(s2a)
Koma7 = Val(s2b)

Proses menampilkan data bilangan pecahan ke 7-Segment:


Portc = Makebcd(koma7)
Enlo = 0 7-Segment pecahan diaktifkan (siap menerima data)
nop
nop
Enlo = 1 7-Segment bulat di-latch

Proses menampilkan data bilangan bulat ke 7-Segment:


Portc = Makebcd(data7)
Enhi = 0
nop
nop
Enhi = 1

Waitms 200 Tunda 200ms


Loop

Você também pode gostar