Translate

Cara Membuat Alat Penghitung Heart Beat (BPM) dan Suhu DS18B20

Cara Membuat Alat Penghitung Heart Beat (BPM) dan Suhu DS18B20


              Pada kesempatan yang berbahagia kali ini saya akan mencoba menjelaskan mengenai bagaimana cara membuat alat untuk mengukur detak jantung atau heart beat, selain heart beat juga mengukur suhu menggunakan sensor suhu DS18B20, kegunaan alat ini yaitu bisa digunakan untuk mengukur detak jantung manusia dan juga suhu tubuh manusia, dari pada LM35 sensor DS18B20 ini lebih bagus karena tingkat sensitifitasnya tinggi, memang sensor ini lebih mahal dibanding LM35 tapi harga menunjukkan performa, maka dari itu lebih baik untuk masalah suhu serahkan pada sensor ini, prinsip kerja heartbeat yang digunakan yaitu menghitung titik puncak atau tegangan puncak, saat tegangan puncak terjadi akan mulai dihitung selama lima detik, setelah lima detik maka diasumsikan sinyal akan sama terus untuk lima detik setelahnya, maka dari itu dikalikan X agar menjadi satu menit. Agar bagus alat ini dilengkapi Buzzer yang berada di PortB.0, untuk lebih jelasnya berikut adalah skema dan programnya.



a. Minimum System 




b. Sensor Heart Beat / Pulse Sensor


* NOTE : Hubungkan kabel berikut
VCC = 5 v Supply
GND = Gnd
Out = PINA.7 ( ADC 7 )



c. Sensor Suhu DS18b20


*NOTE = Kabel dihubungkan ke port berikut
VCC = Supply 5v
GND = Gnd
D0 = PortD.7



d. Program Bascom AVR

$regfile = "8535def.dat"
$crystal = 12000000

Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2
Config Lcdpin = Pin , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 16 * 2

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Ddrb.0 = 1

Dim I1 As Integer , Ss As String * 6
Dim Id1(8) As Byte
Dim A As Byte
Dim W As Byte

Dim Au As Integer
Dim B As Integer
Dim Dataadc As Word
Dim X As Integer

Start Adc

Deflcdchar 0 , 8 , 20 , 11 , 4 , 4 , 4 , 3 , 32

Config 1wire = Portd.7

Cursor Off
Cls

'setting sensor suhu
W = 1wirecount()
Upperline
Lcd "Sensor = "
Waitms 500
Lcd W
Wait 3
Cls
Id1(1) = 1wsearchfirst()
'CRC
If Id1(8) = Crc8(id1(1) , 7) Then
 Locate 1 , 1
 Lcd "CRC OK "
 Wait 1
 Locate 2 , 1
 Lcd "ID:"
 For A = 1 To 8
 Cls
 Upperline
 Lcd "ID Sensor = " ; Hex(id1(a));
 Next
End If
Wait 2
Cls
'---------------
Main:
Do
'mengambil data suhu
   1wreset
   1wwrite &H55
   1wwrite &HCC
   1wverify Id1(1)
   1wwrite &HBE
   I1 = 1wread(2)
   1wreset
   1wwrite &HCC
   1wwrite &H44
'---------------------------------
Wait 1

'merubah ke celcius dan tipe data string
'-------
I1 = I1 * 10
   I1 = I1 / 16
   Ss = Str(i1)
   Ss = Format(ss , " 0.0")

Cls
Upperline
Lcd "Siap Deteksi"
Locate 2 , 1
Lcd "Tmp = " ; Ss ; " " ; Chr(0) ;

Wait 3

Cls
'mengambil bilai adc heart beat
Dataadc = Getadc(7)
Au = 0
B = 0

'mengambil nilai puncak / threshold
If Dataadc > 512 Then
Goto Deteksi
End If

Loop

'melakukan perhitungan BPM
Deteksi:
Cls
Cursor Off
Do

Dataadc = Getadc(7)

If Dataadc > 512 Then
Incr Au
Portb.0 = 1
Else
Portb.0 = 0
End If

Incr B
Waitms 200

'ambil lima 5 detik pertama                                               'frekuensi sampling
Loop Until B = 25

'untuk menjadi 1 menit
X = Au * 12

'untuk menampilkan suhu dan bpm
Upperline
Lcd "DETAK = " ; X
Locate 2 , 1
Lcd "Tmp = " ; Ss ; " " ; Chr(0) ;
   '-------
Portb.0 = 0
Wait 3
Goto Main
Return




e. VIDEO HASILNYA










No comments:

Post a Comment