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:
- Hubungkan data keluaran modul sensor WLM35TS (Waterproof LM35 Temperature Sensor) pada terminal D7 Smart Extension Board.
- Hubungkan Buzzer pada terminal D0 DI-Smart Extension Board.
- Hubungkan dua buah modul D7s secara cascade.
- Hubungkan pin enable modul D7s pada terminal D1 dan D2 Smart Extension Board.
- Hubungkan port data modul D7s pada Port-C DI-Smart AVR System.
- 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).
- Hubungkan sumber tegangan 9-12 VDC pada terminal power DI-Smart AVR System.
- Unduh skrip program di bawah ini.
- Selamat mencoba.
$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