Blog ini berisikan pengalaman pribadi, konten-konten Download Software dan beraneka tips dan trik yang mungkin bermanfaat bagi pembaca. Pembaca dimohon memberikan sebuah komentar yang bersifat membangun untuk kemajuan blog ini.

Ubah Bahasa

Selasa, 06 Desember 2011

Termometer Digital + Alarm Kebakaran

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:
Blok Diagram:

Flowchart:
Instalasi:
  1. Hubungkan data keluaran modul sensor DI-WLM35TS (DI-Waterproof LM35 Temperature Sensor) pada terminal D7 DI-Smart Extension Board.
  2. Hubungkan Buzzer pada terminal D0 DI-Smart Extension Board.
  3. Hubungkan dua buah modul DI-D7s secara cascade.
  4. Hubungkan pin enable modul DI-D7s pada terminal D1 dan D2 DI-Smart Extension Board.
  5. Hubungkan port data modul DI-D7s pada Port-C DI-Smart AVR System.
  6. 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).
  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

Tidak ada komentar:

Posting Komentar

Mohon Beri komentar yang bersifat membangun untuk kemajuan blog ini. namun sebelumnya harap melakukan registrasi terlebih dahulu.