Главная Материалы Новости Форум Поддержать сайт     

Кардиограф на основе Arduino - продолжение


на базе инструментального операционного усилителя AD620. Сведения об операционных усилителях (ОУ) необходимые для дальнейшего понимания излагаемого см. здесь. Рассмотрим даташит на AD620 (здесь) и обнаружим, что там электрокардиограф (кардиограф) строится по следующей схеме:

Схема из даташита
                                                               рис.4

Мы эту схему упростим до следующего вида:

Упрощенная схема из даташита
                                                               рис.5

Дело в том, что “драйвер правой ноги” (right leg driver – ещё это часто имеет название "референтный электрод") на основе AD705J нам не нужен так как он предназначен для борьбы с наводкой в 50 Гц, которая обычно возникает если прибор гальванически соединён с сетью в 50Гц. У нас прибор с сетью, как мы уже знаем, не соединён и питается от батарейки в 9В, поэтому здесь схема "драйвера правой ноги" на основе усилителей не обязательна. И даже если наводка в 50 Гц возникнет на теле пациента, то обычно емкости защитных диодов вкупе с резистором 1 Ком (см. рис.3 на предыдущей странице) оказывается достаточно чтобы сгладить и эти шумы (вот ещё одна ф-ия схемы на защитных диодах в данном проекте). В итоге в качестве “драйвера правой ноги” у нас будет просто нулевой провод. Почему именно нулевой провод? Дело в том, что разность потенциалов между телом человека и нулевым потенциалом схемы может быть довольно большой и в итоге может получиться так, что потенциалы, снимаемые с тела и подаваемые на входы усилителя, относительно нулевой точки схемы имеют слишком большое отличие и таким образом выходят за диапазон допустимых величин потенциалов подаваемых на входы ОУ и это несмотря на то, что разность потенциалов между плюсовым и минусовым входом усилителя в пределах милливольта (см. подробнее об этом здесь – где: "... потенциалы относительно нуля схемы, подаваемые на входы +IN и –IN усилителя должны быть в пределах определяемых ..."). Подобное чревато режимом насыщения усилителя, в котором он не усиливает, а просто выдаёт на выход постоянную составляющую равную примерно верхнему или нижнему значению напряжения питания усилителя (в нашем случае это около +3В или -3В). Чтобы этого избежать нужно привести потенциалы тела к требуемому диапазону – к уровню близкому потенциалу нулевого провода схемы. Для этого мы и подключаем этот нулевой провод к правой ноге человека (максимально далеко от сердца – так принято в медицине, чтобы минимизировать всякий риск поражения током). В итоге потенциал, снимаемый с тела человека становится близок к нулевому потенциалу схемы, а значит, попадает в диапазон допустимых величин потенциалов подаваемых на входы ОУ.
       Необходимо так же отметить, что имеет место такое явление как поляризация электродов при их контакте с кожей. Это приводит к тому, что на входе усилителя помимо изменяющейся разности потенциалов, обусловленной электрической активностью сердца (полезный сигнал, который мы стремимся измерить) появляется ещё и постоянная составляющая, чья величина может достигать 300 мВ как в положительную, так и в отрицательную сторону (см. С.В. Фролов, В.М. Строев, А.В. Горбунов, В.А. Трофимов Методы и приборы функциональной диагностики. Изд-во ТГТУ, здесь также есть об этом, правда на английском языке). Если мы сразу усилим данный сигнал в 1000 раз, то в итоге получим величину около 300В или -300В – что явно выходит за пределы возможностей усилителя. В итоге мы просто получим усилитель в режиме насыщения. Чтобы этого избежать усилитель строят из 2-х ОУ и фильтра высоких частот (ФВЧ) между ними – это и изображено в схеме даташита. Первый усилитель AD620 имеет коэффициент усиления 7, далее у усиленного таким образом сигнала при помощи ФВЧ в виде RC-цепочки вида:

ФВЧ на основе RC-цепочки
                                                               рис.6

убирается постоянная составляющая – та самая, что получается при усилении составляющей обусловленной поляризацией электродов. Эту самую постоянную составляющую не пропускает конденсатор RC-цепочки, включённый последовательно со входом следующего усилителя. Далее полученный сигнал поступает на 2-й AD620 с коэффициентом усиления около 140. Тау RC цепочки – 0.3 сек. Получается схема вида рис.7:

Два AD620 кардиографа
                                                               рис.7

Схема на рис.7 не полная – нужен опорный уровень (см. объяснение здесь) – его мы сделаем на основе OP97. Также необходимо добавить конденсаторы для борьбы с самовозбуждением по питанию операционников (см. объяснение здесь). В итоге аналоговая часть схемы имеет вид рис.8

Аналоговая часть схемы кардиографа
                                                               рис.8

       Здесь не хватает лишь схемы стабилизированного питания. То есть той части схемы рис.8, которая там обозначена как:

Схема питания - в общем
                                                               рис.9

Блок питания построим на основе микросхемы TL431. За основу возьмём схему вот отсюда (здесь). Достоинство источника питания выполненного по этой схеме – меньший уровень шумов по сравнению, например, с импульсными источниками питания.


Обсудить на форуме


ПРЕДЫДУЩАЯ СТРАНИЦА            СЛЕДУЮЩАЯ СТРАНИЦА



                     Комментарии

chestolub
24/03/14 11:31

Добрый день! Подскажите, пожалуйста, можно ли заменить OP97 на LM324N, если использовать один ОУ из четырех в качестве повторителя.


Константин
24/03/14 16:58

Здравствуйте! Скачал даташит для LM324N здесь: http://pdf1.alldatasheet.com/datasheet-pdf/view/17880/PHILIPS/LM324N.html Там среди типичных применений данного усилителя есть схема Input Biasing Voltage–Follower - повторитель входного напряжения смещения. Эту функцию в данной схеме и выполняет OP97. Так что похоже, что подойдёт, особенно если делать как в упомянутой схеме (Input Biasing Voltage–Follower) упомянутого даташита на LM324N, хотя возможно, что можно ничего не усложнять и сделать как на рис.8 просто подставив вместо OP97 один из усилителей микросхемы LM324N. Но конечно же только практика покажет всё окончательно. Если сделаете на этом усилителе, то огромная просьба отписаться как получилось.


Владимир
16/12/15 4:32

ОР97 в данной схеме не нужен, надо просто соединить среднюю точку батарей с 5 выводом микросхем.


Константин
16/12/15 10:03

То есть вы предалагаете всё сделать почти, как на рис.7 :-). Дело в том, что к точке 5 нужно подключать источник с минимальным выходным сопротивлением - поэтому и применяется обыкновенный повторитель на основе OP97. В принципе можно и без него, но тогда есть риск, что нулевой уровень кардиограммы сместится - хоть и не очень уж сильно, но довольно заметно сместится. У меня, например, так было, когда я пытался без OP97. Если вам это не сильно принципиально, то можно и без OP97 - напрямую подключить нулевой потенциал к точке 5. Кстати, тогда если уж сдвиг уровня ЭКГ не принципиален, то можно вообще к точке номер 5 ничего не подключать.


Павел
17/12/15 10:37

OP97 не нашел, нашел OP97FP и AD620AN. Нормально будет если их поставить?


Павел
17/12/15 10:51

Еще можно ли поставить TLC272CP в энцефалографе?


Константин
17/12/15 16:36

Всё подойдёт


Игорь
26/12/15 18:51

Константин, здравствуйте! Очень интересную тему Вы подняли! Я тоже решил собрать кардиограф но \"блин\" не работает :) Когда подключаю питание к стабилизатору напряжения, то система выдаёт импульс со значением 60. Пробовал с ОУ OP97 (рис 8), и без него (рис 7), система не фурычит (с ОУ сигнал немного большего значения), сигнал выдаётся стабильный без изменения. Когда подаю напряжение на стабилизатор (9.6 в), то одна из схем TL431 начинает нагреваться (та которая к + подводится), это нормально?? Питание вроде адекватное стабилизатор выдаёт. Если проверял среднюю ногу, и крайние, то выдаёт 3.1 и -2.9 (вначале кажется одинаковое питание было на обеих ногах 2,9/-2,9). Если электроды не подключены к человеку, то како значение должно регистрироваться на A0?? В каком направлении копать??? Я новичёк в этом :)


Константин
27/12/15 10:02

Здравствуйте, Игорь! \"Когда подключаю питание к стабилизатору\" - это вы по сути включаете всю систему, весь кардиограф, я правильно понял? И далее на A0 у вас импульс со значением 60, а потом что - ноль или что? \"С ОУ сигнал немного большего значения\" - большего чем что, чем 60 или тут о другом? \"Сигнал выдаётся стабильный без изменений\" - что за сигнал, опять речь об этих 60? То есть тут хотелось бы пояснений. По поводу стабилизатора. Судя по всему он у вас работает нормально, раз выдаёт значения 3.1 и -2.9 - это в пределах нормы. То, что греется ... ну вроде нормально, если не очень сильно. Но может быть всё-таки лучше подавать на вход стабилизатора от 6 до 9В, как это указано на схеме, а то ведь 9.6В это уже чуть выше нормы. Проверяется кардиограф так: замыкаете между собой 3 электрода - два сигнальных и референтный и на A0 должно быть значение где-то около 500 - т.е. в середине диапазона АЦП. Это самая первая и самая важная проверка и её делают до подключения этих электродов к человеку. Проверьте и сообщите что у вас на A0 - буду рад помочь.


Игорь
29/12/15 22:52

Я правильно понял как подключить OP97(dip8)? http://anprog.com/tmp/op97.png Средний вывод стабилизированного питания подключать к минусу питания? (не к Arduino, а именно к батарейке стабилизированного питания?)


Константин
30/12/15 12:28

На рисунке вы всё правильно разметили. А вот это не понял: \"Средний вывод стабилизированного питания подключать к минусу питания\". Вы имели в виду, что средний вывод стабилизированного питания (ноль источника питания) подключать к минусовому входу OP97 ? Или что-то другое ?


Игорь
30/12/15 22:37

Я подумал что средний вывод нужно подключить к заземлению (GND), решил что GND это минус внешнего питания для стабилизатора. В схеме ведь два источника питания, для стабилизатора и собственно от самой Arduino. Где я ошибаюсь? :)


Константин
31/12/15 9:28

Ага, понятно. Плюсовой вход OP97 нужно подключать к нулю блока питания от стабилизатора - т.е. тот самый ноль, что на рис.9, рис.11. GND ардуины это другое. Кстати, вот здесь http://www.prointellekt.ru/EKG3.php есть об этом: \"Также необходимо отметить, что к GND Arduino (см. рис.2, рис.3) подключается потенциал -3В нашей аналоговой части, а, не нулевая точка, как можно было бы подумать. Разность потенциалов между, например, A0 и GND Arduino должна быть только положительной.\" И, кстати, если вы хотите чтобы у вас был один источник питания - от ардуины, то есть и такая схема - вот здесь (схема от Андрея): http://www.prointellekt.ru/EKG4.php Обратите внимание, что там так же ноль это не GND ардуины, он взят с делителя МЕЖДУ 5V и GND ардуины - т.е. по тому же принципу, что и на рис.9.


Игорь
01/01/16 19:59

Пересобрал схему ещё раз. Система показывает уровень сигнала 120-125 при подключённом среднем выводе стабилизатора к \"-\" батарейки. Когда отключаю средний вывод стабилизатора от \"-\", система начинает показывать 140. В моей конфигурации ArduinoMega, а информация выводится на LCD экранчик (но это же не важно?).


Константин
02/01/16 9:48

Здравствуйте, Игорь! С наступившим вас Новым Годом! Всё-таки давайте определимся с терминами, а то похоже, что мы с вами о разных вещах говорим. Стабилизатор - это схема на рис. 11 - так? Средний вывод стабилизатора это ноль на схеме рис.11. Батарейка это то, что мы подключаем к стабилизатору (это те самые 6...9В) на рис.11. Но тогда почему вы \"-\" батарейки подключаете к нулю (среднему выводу) стабилизатора? Этого нигде на схеме нет. Если вы имели в виду другое, то просьба пояснить ссылаясь на рисунки, а так же чтобы мы поняли друг друга надо определиться что мы с вами будем понимать под термином \"батарейка\", \"стабилизатор\" и т.д. применительно к конкретным рисункам на сайте - так будет проще для дальнейшего понимания. То, что информация выводится на LCD-экранчик проблем вроде бы это создавать не должно.


Игорь
02/01/16 16:08

Спасибо, Константин, Вас тоже с наступившим :) Да всё верно. Как я понял, GND это \"-\" батарейки к которой подключён к стабилизатору (что на схеме 11), но видимо не правильно понял. Все заземления замкнул на \"-\" батарейки (их много в схеме). Средний вывод, это ноль на схеме 11. Что же такое GND и где его искать?


Константин
02/01/16 17:07

Ага, вот в чём дело. Итак, суть в следующем - система состоит из элементов: усилитель, Arduino, компьютер. Сигнал идёт так: электроды->усилитель->Arduino->компьютер. У усилителя своё питание (та самая Батарейка 6..9 В, что подключается к стабилизатору на рис.11), у Arduino своё питание (на схеме рис.1, отсюда (http://www.prointellekt.ru/EKG4.php , например, вы увидите, что к Arduino отдельно идёт питание в виде 6-ти пальчиковых батареек на фотографии, а усилительная часть схемы питается через стабилизатор от своей отдельной батарейки в 6...9В). Ну и соответственно у компьютера своё питание. Все эти 3 источника питания питают свою часть схемы и между ними нет ничего общего. Далее, в схеме общий ноль - это ноль со стабилизатора рис.11 - т.е. это ноль источника питания усилителя. у Arduino есть GND и A0. Но GND Ардуины здесь используется не в смысле какого-то нулевого провода, а в том смысле, что GND Arduino и A0 Arduino это вход АЦП Arduino - т.е. это те 2 провода по которым сигнал с усилителя подаётся на оцифровку на Arduino и не более того. Т.е. GND Arduino - это здесь всего лишь один из информационных входов по которому поступает измеряемый нами сигнал-кардиограмма. И GND Arduino здесь никоим образом не общий провод для схемы. Общий провод-ноль, повторюсь, для схемы это ноль со стабилизатора рис.11.


Игорь
02/01/16 23:13

Переподключил, теперь система выдаёт значения в пределах 600-620 :) При соединении трёх электродов сигнал держится на уровне 600-620. Попытался подключить электроды к телу и снять сигнал, получил ерунду, позже попробую с проводящим гелем, для лучшего контакта. При замыкании 1 и 8 выводов второго AD620 я использовал резистор на 390 Ом, может ли это сильно исказить показатели?


Константин
02/01/16 23:54

Нет, 390 Ом вместо 400 по сути ничего поменять не должно. Кстати, интересно, но у вас система теперь выдаёт то же, что у Ильи здесь http://www.prointellekt.ru/EKG3.php (см. одно из последних сообщений - от 02/01/16 21:03). Посоветую вам то же, что посоветовал Илье: \"Могу для начала порекомендовать отключить 2-й AD620 и подать на A0 сигнал с выхода 1-го AD620 естественно при замыкании между собой всех 3-х электродов. Должно быть всё-таки что-то около 500. \"


Константин
03/01/16 19:32

Тут выяснилось, что если вы убрали из схемы стабилитрон, то значение около 600 при замыкании 3-х проводов - это нормальная ситуация.


Игорь
05/01/16 0:05

Проверил, показывает те же самые показатели (примерно 620), может только постабильнее сигнал стал. Пробовал попробовать без стабилитронов/диода, результат тот же. Может усилители неисправны (AD620)?


Константин
05/01/16 15:33

То есть и со стабилитроном и без при замыкании 3-х проводов даёт 620? Тогда явно где-то что-то не так. Надо проверять все контакты. AD620 вряд ли неисправен, хотя можно и проверить - убираем из схемы рис.8 2-й AD620 и меряем потенциал между нулевым проводом и выходом 1-го AD620 при замыкании между собой 2-х сигнальных и референтного провода. Разность потенциалов между нулевым проводом и выходом 1-го AD620 тогда должна быть равна нулю.


Игорь
06/01/16 13:20

Константин спасибо, сегодня обязательно проверю! Есть ли разница при подключении полярных конденсаторов? У них же там указан \"-\"


Константин
06/01/16 18:39

Да, есть. Минус надо подключать к минусу.


Николай
16/03/16 2:10

ФВЧ у вас на 0.53гц??? это морсимум 120 ударов в минуту, этого будет достаточно для ЭКГ?


Константин
16/03/16 12:32

Здравствуйте, Николай! Практика показывает, что вполне нормально прибор отображает ЭКГ и для 50 ударов в минуту. На следующей странице есть рисунок для ЭКГ полученной при помощи данной схемы с данным фильтром и там пульс далеко не 120 ударов в минуту (где-то около 65). Дело в том, что частота среза хоть и 0.53 Гц, но это не значит, что данный фильтр наглухо глушит все частоты ниже этого значения. Строго говоря он однозначно не пропускает лишь постоянную составляющую, собственно только для этого данный фильтр и нужен. Ну и фильтр с такими параметрами применяется в официальной медицине - именно поэтому я взял его параметры такими. Пардон, обратил сейчас внимание на рис.4 из даташита и вдруг осознал, что там частота среза 0.03 Гц. Т.е.если хотите делать по даташиту, то сопротивление в фильтре надо не 1 Мом, а около 17 МОм. Однако где-то на русском языке читал, что нижняя частота среза должна быть 0.5 Гц. Собственно поэтому так и сделал и, кстати, практика показала, что для 0.5 Гц всё работает.


Игорь
12/01/21 23:22

Есть нормальный китайский модуль на базе AD620. Там есть регулировки нуля и усиления, а также источник опорного напряжения. На нем можно легко сделать ЭКГ, только добавить фильтры. Вот здесь подробно описано как настроить его и вообще что получается: https://labdata.ru/article/nastrojka-usilitelja-ad620-na-primere-jelektrokardiosignala


Константин
14/01/21 14:30

Да, хороший сайт.


Иван
29/06/22 12:01

Коллеги, не забывайте про электробезопасность! С накожными электродами не менее 1500 вольт статики. По крайней мере если работать с ноутом, то только от батареи и никаких настольных РС - прецедентов море. Хотя с другой стороны естественный отбор и премию Дарвина никто не отменял :)))))




Представтесь (не менее 2-х символов):

Сообщение:

Далее функция антиспама.
Ответьте на вопрос:
Восемь умножить на сто будет равно? (введите числом):






Читаем книгу "Что людей объединяет или обо всём понемногу"

Что людей объединяет ...