payaem.ru

Паяем — Все о электронике

Как сделать измеритель пульса и сердцебиения своими руками

Привет всем.

Частота сердечных сокращений человека является одним из наиболее важных факторов, поскольку она колеблется в значительной степени в зависимости от нашего состояния ума и физического состояния. Частота сердечных сокращений во время физической активности даёт нам прямое указание на наш уровень физической подготовки. Также по изменению частоты пульса можно определить в какой момент человеку снится сон и чем чаще пульс, тем ярче сон человека, то есть если сниться кошмар или что то радостное.

Проект  «сердечного ритма», представленный здесь, работает по принципу обнаружения даже небольшого изменения в свете просвечивания пальца, он видит как ваша кровь проходит по крошечным артериям в палец. Это устройство не то же самое, что те мониторы сердечного ритма, которые обычно используются в больницах, потому что там используются зонды кожи, которые обнаруживают изменения в электрической активности, как бьётся сердце. Этот пульсометр на самом деле видит ваш пульс через тело, то есть через палец, ноги, или даже через вашу мочку уха.  В этой схеме измерителя пульса применяется пара: инфракрасный диод и инфракрасный фоторезистор, между которыми нужно поместить палец. По изменению уровня принимаемого инфракрасного излучения микроконтроллер вычисляет частоту сердцебиения либо пульса.

Схема собрана на основе микроконтроллера ATmega88 и операционном усилителе LM324, прошивка написана на BascomAVR.

Схема измерителя пульса изготовлена из двух частей: аналоговой — это операционный усилитель, он выполняет усиление и фильтрацию принятого сигнала, и цифровая — это микроконтроллер ATmega8 и семисегментные индикаторы.

На операционном усилителе LM324 собран чувствительный усилитель и фильтр нижних частот, он захватывает слабые изменения напряжения на фоторезисторе, которые отражают скачки давления крови.

Микроконтроллер ATmega88 работает на частоте 4 МГц и тактируется от внешнего  кварцевого резонатора. Можете применить микроконтроллеры ATmega48, ATmega168 или же ATmega8, тогда нужно будет изменить вторую строчку $regfile = «M88def.dat» в исходном коде и перекомпилировать прошивку. Транзисторы можете применить любые маломощные типа NPN. Для настройки и калибровки схемы применяется резистор VR1 на 100 кОм.

Исходник для микроконтроллера написан на basic в компиляторе BascomAVR.

Вот собственно сам код:

001.’ DEFINE TARGET = MEGA88 @ 4MHZ002.$regfile = ‘M88def.dat’003.$crystal = 4000000004.’ CONFIGURE IO PORTS005.Config Portd.0 = Output006.Config Portd.1 = Output007.Config Portd.2 = Output008.Config Portd.3 = Output009.Config Portd.4 = Output010.Config Portd.6 = Output011.Config Portd.7 = Output012.Config Portb.3 = Output013.Config Portb.4 = Output014.Config Portb.5 = Output015.Config Portb.2 = Output016.’ DEFINE VARIABLES017.Dim Led(10) As Byte018.Dim A As Byte019.Dim B As Byte020.Dim C As Byte021.Dim D As Word022.Dim E As Word023.Dim F As Integer024.Dim G As Word025.Dim H As Word026.Dim J As Integer027.Dim K As Integer028.Dim X As Byte029.’ DEFINE LED DIGITS030.Led(1) = 8031.Led(2) = 187032.Led(3) = 97033.Led(4) = 49034.Led(5) = 178035.Led(6) = 52036.Led(7) = 4037.Led(8) = 185038.Led(9) = 0039.Led(10) = 48040.’ SET DEFAULT HEART RATE041.K = 60042.’ START ADC RUNNING043.Start Adc044.’ ********** MAIN LOOP **********045.Main:046.Do047.’ READ ADC VALUE048.D = Getadc(0)049.’ GET ADC CHANGE SINCE LAST050.F = D — E051.F = Abs(f)052.E = D053.’ test bench 1 second = 164 clk054.’X = X + 1055.’F = 0056.’If X = 200 Then057.’X = 0058.’F = 10059.’End If060.’ HEART BEAT FILTER061.If G> 0 Then G = G — 1062.If F> 4 And G = 0 Then G = 40063.’ HEART BEAT LED FLASHER064.If G = 1 Then Portb.2 = 0065.If G = 20 Then Portb.2 = 1066.’ CALCULATE HEART RATE PER MINUTE067.H = H + 1068.If G = 1 Then069.J = 9840 / H070.H = 0071.End If072.’ SLOWLY ADJUST RUNNING AVERAGE073.If G = 1 Then074.If K> J Then K = K — 1075.If K < J Then K = K + 1076.End If077.' DISPLAY DATA ON LEDS078.If K> 99 Then079.C = K Mod 10080.B = K 10081.B = B Mod 10082.A = K 100083.End If084.If K < 100 Then085.C = K Mod 10086.B = K 10087.A = 0088.End If089.If K < 10 Then090.C = K091.B = 0092.A = 0093.End If094.Gosub Ledshow095.' RESTART MAIN LOOP096.Loop097.End098.' ********** LED DISPLAY ROUTINE **********099.Ledshow:100.Portb.5 = 1101.Portb.4 = 0102.Portb.3 = 0103.D = A + 1104.Portd = Led(d)105.Waitms 2106.Portb.5 = 0107.Portb.4 = 1108.Portb.3 = 0109.D = B + 1110.Portd = Led(d)111.Waitms 2112.Portb.5 = 0113.Portb.4 = 0114.Portb.3 = 1115.D = C + 1116.Portd = Led(d)117.Waitms 2118.Return

Можете скачать его в архиве ниже

Code

The LM324 quad op amp (IC1) forms a sensitive amplifier and a low-pass filter that will “lock” onto tiny variations in voltage that fall within the typical heart rate frequencies. The varying voltage comes from the light-dependent resistor (LDR), which changes a very small amount each time blood pumps through the tiny arteries in between the visible red LED and the LDR surface. — See more at: http://www.8051projects.net/news-i166-heart-rate-monitor-system.html#sthash.mft127Pe.dpuf

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *