Kamis, 08 Mei 2014

Aplikasi - Termometer Digital + Alarm Kebakaran (Seri Pemantauan Suhu [I])


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.

Blok Diagram:


Flowchart:


Instalasi:
  1. Hubungkan data keluaran modul sensor WLM35TS (Waterproof LM35 Temperature Sensor) pada terminal D7 Smart Extension Board.
  2. Hubungkan Buzzer pada terminal D0 DI-Smart Extension Board.
  3. Hubungkan dua buah modul D7s secara cascade.
  4. Hubungkan pin enable modul D7s pada terminal D1 dan D2 Smart Extension Board.
  5. Hubungkan port data modul D7s pada Port-C DI-Smart AVR System.
  6. Hubungkan modul Smart Extension Board pada Port-A Smart AVR System (PORTA.0 = Buzzer, PORTA.1 = enable D7s [pecahan], PORTA.2 = enable DI-D7s [bulat], dan PORTA.7 = Data Sensor).
  7. Hubungkan sumber tegangan 9-12 VDC pada terminal power DI-Smart AVR System.
  8. Unduh skrip program di bawah ini.
  9. 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

0 komentar:

Posting Komentar