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

Кардиограф на основе Arduino – вариант схемы


       Итак, здесь собираем всё "в кучу". Объединив цифровую часть – рис.3, усилитель аналоговой части – рис.8, и источник питания для усилителя – рис.11, получим в результате схему электрокардиографа вида:

Вариант схемы для ЭКГ (ECG)
                                                               рис.17

       В блоке питания, как уже было указано здесь R1=2 кОм, R2=10 кОм. Необходимо отметить, что в данной схеме переключатель питания на Arduino должен быть в положении 5V. Для Arduino с переключателем питания в положении 3.3V необходимо в схему добавить делитель. Так же ещё раз подчеркну, что правая нога пациента подключается к нулю схемы – не к земле, не к физическому заземлению (которого вообще-то на данной схеме и нет), а именно к нулевой точке болка питания (который внизу данного рисунка).


       Вот здесь (или здесь) интересный вариант на основе данной схемы, где добавлен аппаратно фильтр нижних частот (ФНЧ) для сглаживания высокочастотных шумов на кардиограмме, так же этот вариант интересен тем, что выполнен на другой элементной базе и питание аналоговой части схемы здесь осуществляется непосредственно от Arduino. Схема разработана Андреем – см. переписку в комментариях данной страницы, где подробно обсуждаются особенности построения и работы данной схемы. Необходимо лишь подчеркнуть, что во избежания риска смертельного поражения током данную схему можно ипользовать только на ноутбуке отключённом от сети 220 В.


Так же необходимо отметить, что если вы хотите привести характеристики данного кардиографа к официальным медицинским стандартам, то из схемы необходимо убрать защитные диоды и резистор в 1КОм, а также добавить референтный электрод (right leg driver на основе AD705J) приведённый в схеме из даташита для AD620 (см. рис.4 здесь). Практика показала, что это необходимо и таким образом мой ответ от 16/03/15 8:38 (см. ниже) - не полон и в определённых условиях, если вы планируете пользоваться прибором для целей медицинской диагностики, даже может оказаться не верным. Тем не менее тому, кто смог собрать схему на рис.17 не составит особого труда добавить в неё схему референтного электрода и тем самым довести её до идеального медицинского прибора. Если же вы намерены использовать данный прибор не в медицине, а, например, для изготовления на его основе энцефалографа с реализацией устройств с мысленным управлением объектами (как здесь), то вполне можете обойтись и без схемы референтного электрода.


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


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



                     Комментарии

prorok
27/03/14 14:25

Стрелочка между R2 и R1 идет на 0 и на минус?


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

Ответил здесь с рисунком: http://www.prointellekt.ru/phpBB3/viewtopic.php?f=26&t=14


Студент
11/01/15 2:09

Здравствуйте! Очень понравилась ваша статья. На сколько я понял, данная схема позволяет получить картину только одного отведения (I). При конструкции аппарата на 6 отведений конечностей потребуется задействовать 4 электрода (по одному на каждую конечность) и считывать разность потенциалов в 3 комбинациях для получения I, II, III. А затем вычислить aVF, aVR, aVL уже с помощью программы. То есть необходимо повторить данную схему 3 раза? задействовать в 6 AD620a? Все правильно? А если добавить и 6 грудных отведений, то еще 6 раз? Итого в Arduino необходимо задействовать 9 входов (а сколько там есть?). Спасибо


Константин
11/01/15 13:39

Здравствуйте! Итак, 6 отведений конечностей требуют 3 канала ("необходимо повторить данную схему 3 раза"), 6 грудных отведений - ещё три канала. Итого, 6 каналов. Не девять. Самая простая Arduino может обрабатывать как раз 6 каналов.


Студент
11/01/15 23:50

Спасибо за быстрый ответ. Мне остается непонятным почему 6 грудных отведений требуют 3 канала, а не 6? Спасибо


Константин
12/01/15 17:55

Пардон, моя ошибка. Рассуждал по аналогии с отведениями на конечности, однако посмотрел в интернете и понял, что там другое. Таким образом 6 грудных отведений - 6 каналов. Итого, вы правы, девять! Такую систему потянет Arduino Leonardo на которую можно завести до двенадцати каналов.


Студент
12/01/15 22:34

И снова спасибо за ответ, как раз собираюсь закупать необходимые детали, закажу именно Leonardo. Продолжение вопроса: а как будет выглядеть схема для грудных отведений? В роли контакта "+" играет потенциал с самого отведения, а вот за "-" идет хитрый расчет центра Уильсона Vw=1/3*(RA+LA+LL). Грубо говоря что же присоединять к ОУ? Может придется обходиться без него?


Константин
13/01/15 9:47

Почитал про Вильсона здесь: http://www.03kms.ru/page/grudnye-otvedenija Ну и насколько я понял "объединенный электрод Вильсона ... образуется путем соединения через дополнительное сопротивление трех конечностей". Т.е. всё что нужно это подключить "через дополнительное сопротивление" к этим самым конечностям по проводу, соединить эти три провода в один и в итоге получим объединённый электрод Вильсона - его и подключаем на минусовые входы усилителей (которые "-" - на самих усилителях AD620 на схеме это входы под номером 2, ещё их часто маркируют как -IN). Вот тут ещё про Вильсона: http://vmede.org/sait/?page=5&id=Gospitalnaya_ter_card_storojakova_2008_t1&menu=Gospitalnaya_ter_card_storojakova_2008_t1 Кстати, формула, что вы дали это среднеее арифметическое от трёх потенциалов (тех самых трёх конечностей) и что-то типа этого видимо автоматически и получится на объединённом проводе. Ещё могу предложить из общетехнических соображений вариант от себя (хотя скорее всего это "велосипед", который давно так или иначе и используется), опять же насколько я понял, можно мерять грудные отведения относительно, например, правой ноги (т.е. все минусовые входы усилителей к правой ноге), при этом если вы одновременно с грудными отведениями сформировали 6 отведений на конечности, то потенциал объединённого электрода Вильсона относительно правой ноги можно вычислить (программным путём) и затем (опять же программным путём) пересчитать измеренные грудные отведения относительно правой ноги в грудные отведения относительно электрода Вильсона.


Константин
13/01/15 11:36

Ну, и по поводу Leonardo. Я уже на сайте это отмечал, уверен, что вы это понимаете, но повторюсь для тех, кто не акцентирует внимание на электробезопасности. Если используется плата без блютуз т.е. такая, которая имеет непосредственную гальваническую связь с компьютером (а как раз-таки Leonardo будет связан с ним по USB-кабелю), то в целях электробезопасности такой компьютер должен быть отключён от сети в 220В, 50 Гц. Т.е. таким компьютером должен быть, например, ноутбук, отключённый от сети 220 В. Либо к Leonardo надо добавить блютуз модуль, либо вообще любой другой радиомодуль - в принципе это довольно легко решаемо и вариантов установки связи с платами типа Arduino по радиоканалу довольно много.


Студент
14/01/15 2:20

Спасибо за разъяснения. Попробую и так и так (соединить 3 провода в один и пересчитать относительно ноги), отпишусь что получится. С электробезопасностью все понятно, буду работать строго через Bluetooth.


Андрей
05/02/15 7:15

Здравствуйте. Спасибо за отличную статью! У меня возникла пара вопросов. Из-за отсутствия bluetooth-модуля решил всё-таки передавать данные на компьютер через USB и питать Arduino от компьютера соответственно. А схему в свою очередь запитать от Arduino. Подскажите, как лучше это реализовать? Точно так же подать питание на стабилизированный блок питания для аналоговой части?


Константин
05/02/15 9:04

Здравствуйте, Андрей! Если не хотите питать аналоговую часть от батарейки, как на схеме, то можете попробовать снять с Arduino 5 Вольт - там даже есть соответствующий разъём (5V). Так вот напряжение между 5V и GND ардуины и будет вашей "батарейкой". Причём так как питание у ардуины стабилизировано, то эту "батарейку" уже не надо стабилизировать. Далее подключаете эту "батарейку" в 5В к делителю, как это изображено на рис.3b здесь: http://www.prointellekt.ru/OU1.php . Резисторы лучше брать номиналом побольше. Вот вы и получите при помощи ардуины стабилизированный "блок питания", где есть +2.5В, 0В, -2.5В. Его и можно попытаться использовать вместо блока питания на батарейке. Но, есть важный момент. Чтобы у ардуины ничего при этом не сгорело необходимо чтобы ток с разъёма 5V ардуины не превышал вроде как то ли 50мА, то ли 500 мА (см. здесь: http://vk.com/topic-5409517_29225408). Поэтому сопротивление всей схемы - куда подключаем 5V и GND ардуины не должно быть меньше 100 Ом. Так что я бы для подстраховки всё-таки подключал ардуино к делителю через два одинаковых резистора по 50 Ом, так же как батарейка в 9В блока питания подключается через резисторы R 51 на схеме. Если не понятно, то нарисую. Спрашивайте. Ну и сам я такой способ питания не пробовал так что всё что я сейчас написал это пока что теория.


Андрей
05/02/15 19:12

Спасибо за ответ, Константин. С учётом ваших рекомендаций и описанием статьи получил схему такого типа: http://cs624120.vk.me/v624120822/2230d/780hpHhVP_E.jpg Что можете сказать по ней?


Константин
05/02/15 20:36

У вас есть несколько интересных моментов на схеме. По поводу питания схемы от Arduino я имел в виду следующую схему: http://www.prointellekt.ru/qw1.gif Где 5V и GND - выводы с Arduino (не путать с той GND, что на вашей схеме), R1>=50 Ом, ну и R2 побольше (лучше килоомы и более). У вас же резисторов типа R1 нету, хотя вроде бы можно и без них - надо посмотреть суммарное сопротивление схемы и скорее всего оно и без R1 больше 100 Ом. У вас на выводах RG первого INA126 нет резистора задающего усиление - почему? Так же на рисунке вы на плюсовой вход OPA2340 как бы подаёте референтный электрод. Формально конечно же можно так нарисовать (т.к. и референтный электрод подключен к нулевой точке), но читающего данную схему это может запутать - у него может сложиться впечатление, что референтный электрод надо подключать к схеме именно через OPA2340. Ещё вопрос: поясните пожалуйста зачем у вас на схеме повторитель на основе OPA2340 с выходом на A0? Ну и ещё вопрос: почему у вас R3=4.7K, а С5=1uF?


Константин
05/02/15 20:51

Да, и надеюсь, что в целях электробезопасности вы будете использовать данную схему на ноутбуке отключённым от сети, иначе есть угроза для жизни.


Андрей
05/02/15 21:12

Да, конечно буду отключать ноутбук от сети, а вообще, в конечном счёте устройство будет автономным. Схему поправил: http://cs624120.vk.me/v624120822/223a2/Np1UJtUrMwg.jpg У первой INA126 я не поставил резистор устанавливающий коэффициент усиления, потому что без него он и так будет усиливать в 5 раз (по даташиту). На счёт повторителя перед АЦП, он там для выравнивания сигнала и в качестве буферного усиления. И на счёт номиналов 4.7K и 1uF - по формуле простейшего RC-фильтра они срезают 0.03Гц (постоянную составляющую)


Андрей
05/02/15 21:43

Я ошибся. С такими номиналами фильтр будет срезать 0.03кГц. Нужно исправлять.


Константин
05/02/15 22:10

Правильно ли я понял, что OPA2340 с выходом на A0 используется для согласования? Т.е. у вас источник сигнала за счёт R3 имеет достаточно высокое выходное сопротивление и вы за счёт повторителя преобразуете сопротивление источника сигнала к минимальному чтобы АЦП лучше работал? Да, кстати, а зачем вам ФНЧ на основе R3? Для сглаживания сигнала?


Андрей
05/02/15 22:21

Всё верно, и на счёт повторителя и на счёт ФНЧ


Андрей
05/02/15 22:41

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


Константин
06/02/15 11:07

Разместил-таки пример кардиограммы с моей схемы здесь: http://www.prointellekt.ru/EKG3.php Вот ещё кто-то повторил данную схему и разместил видео с экрана осцилографа: http://vk.com/wall-5409517_4658 Андрей, у меня к вам просьба. У вас замечательная схема на альтернативной элементной базе с ФНЧ для сглаживания сигнала. Не могли бы вы не удалять её с вашей ссылки здесь http://cs624120.vk.me/v624120822/223a2/Np1UJtUrMwg.jpg с тем, чтобы другие пользователи могли ею пользоваться. И может быть вы разрешите мне продублировать эту ссылку с тем чтобы файл вашей схемы лежал для надёжности ещё в одном месте (на данном сайте) и здесь я бы разместил на неё ссылку с обязательным указанием вас, как автора?


Андрей
06/02/15 16:22

Спасибо за пример работы схемы. Конечно, буду только рад помочь. Тогда уж лучше используйте эту схему: http://cs624120.vk.me/v624120822/22720/27z17uZa2D0.jpg


Константин
06/02/15 17:33

Спасибо!


Андрей
06/02/15 18:31

Всегда пожалуйста. В данный момент разрабатываю плату по этой схемы на smd компонентах, если будет интересно, могу поделиться результатами.


Константин
06/02/15 19:25

Очень интересно! Было бы здорово узнать о результатах. Особенно на smd компонентах. По идее там шумы должны уменьшиться.


Андрей
18/02/15 2:43

Здравствуйте. Собрал данную схему, но пока без ФНЧ и повторителя перед АЦП. Устройство работает, но крайне нестабильно. В основном получаю значения 890 или 120, а между ними иногда проскакивает полезный сигнал. (http://cs624319.vk.me/v624319822/1d949/2otAxAMpjPw.jpg) Как думаете, с чем это связано?


Константин
18/02/15 11:46

Здравствуйте, Андрей! У меня подобное было на этапе разработки схемы. Ваши усилители попадают в режим насыщения. Похоже на то, что референтный электрод у вас плохо работает - не приводит диапазон измеряемого сигнала к уровню близкому к нулевому потенциалу схемы (так же на стр. http://www.prointellekt.ru/EKG2.php это описано). Стоит проверить контакты. Если там всё нормально, то если вы питаете схему от ардуино, то может стоит сначала попробовать запитать её от отдельной батарейки. С батарейкой, как на рис.1 у меня всё работало на ура. Так же может быть, что дело в ФВЧ между усилителями (хотя вряд ли) - можно проверить его конденсатор, он не должен пропускать постоянную составляющую (но повторюсь, скорее всего дело не в ФВЧ, а в референтном электроде).


Максим
20/02/15 0:33

Константин, если есть возможность, фото готовой платы разместите пожалуйста! Чтобы можно было не только схематически но и визуально видеть что к чему соединять. И чем можно заменить TLC272? а то не можем найти в магазинах в наличии. Заранее благодарим.


Константин
20/02/15 11:01

Здравствуйте, Максим! Устройство было сделано на основе платы беспаечного монтажа. Сейчас всё разобрано. Сохранилась только вот такая фотография для энцефалографа: http://www.prointellekt.ru/enc1.php. По поводу TLC272. Конкретно чем заменить сказать не могу (не искал так как в своё время проблем с покупкой данного усилителя у меня не было). Поэтому могу лишь подсказать следующее. Суть TLC272 - это повторитель с большим входным и малым выходным сопротивлением. По даташиту у TLC272 входное сопротивление 10^12 Ом. Ищите операционники с подобным или большим входным сопротивлением ну и с остальными характеристиками подобными TLC272.


Андрей
22/02/15 5:38

Пересобрал схему на макетке и всё заработало. Питание полностью от ардуино, нулевая точка сделана с помощью делителя напряжения, так же перед электродами поставил резисторы по 10кОм, что в свою очередь сгладило график. И перед ацп поставил ФНЧ. Вот результат: (http://cs624319.vk.me/v624319822/1e65d/vII099kxtqo.jpg) Система работает очень стабильно. Странно, что на печатной плате она плохо заработала.


Константин
22/02/15 10:58

Класс! Результат здорово смотрится! На счёт резисторов перед электродами не понял. То есть вы поставили по 10 кОм между каждым электродом, что идёт на тело пациента и входом первого усилителя?


Андрей
22/02/15 19:23

На счёт резисторов я не точно выразился, но да - перед входами первого инстументальника поставил резисторы.


Константин
22/02/15 20:28

А зачем? От этого же вроде как наоборот всё хуже? Ведь рост сопротивления источника сигнала ведёт к рассогласованию? У меня, в своё время, когда я так пробовал это привело к лишним шумам. Или может мы о разных вещах говорим?


Евгений
16/03/15 5:35

Как Вы считаете, Константин, может ли кардиограф на Arduino для 12-отведений конкурировать по точности показаний с теми, которые стоят в поликлиниках?


Константин
16/03/15 8:38

В принципе аналоговая часть данной схемы выполнена в соответствии с официальными рекомендациями даташита на AD620 по изготовлению именно кардиографа. Знаменитая фирма Analog Devices вряд ли будет позориться и предлагать схему хуже той, что используется в медицине. Я у этой схемы изменил лишь "right leg driver" - или по нашему схему референтного электрода. И по моим наблюдениям это лишь уменьшило шумы аналоговой (усилительной) части схемы. Оно и не удивительно ведь Arduino в моём варианте имеет абсолютную гальваническую развязку с сетью в 220В, 50Гц, а значит не нужна сложная схема референтного электрода, которая применяется в схеме от фирмы Analog Devices и которая предназначена именно для борьбы с помехой в 50 Гц, что наводится электросетью. Таким образом моя схема за счёт отсутствия лишних деталей (которые всё-таки привносят свой шум) работает даже чуть лучше, чем схема от Analog Devices. Это что касается аналоговой части. У Arduino здесь критична АЦП. В принципе его 10 битная АЦП достаточна если мы имеем дело с обычной ЭКГ. Так как 10 бит АЦП позволяет разбить сигнал по оси Y на 1024 уровней. Т.е. значения сигнала будут отражаться с точностью до одной тысячной. Т.е. даже на экране монитора высотой в 1000 пикселей кардиограмма будет построена с точностью до пикселя. Помню когда-то я проходил ЭКГ и там была лента шириной где-то 5 см - вряд ли доктор фиксирует на этой ленте одну тысячную высоты этой ленты - там даже сама линия рисуемая самописцем явно была жирнее. Однако, существуют ещё и ЭКГ высокого разрешения. Там необходима 12 битная АЦП. Для Arduino, если не ошибаюсь, есть специальные шилды с АЦП разрядностью до 24 бит. Можно также без всяких шилдов подключать к ардуино нужные АЦП. Ну и есть плата Arduino Due, которая имеет 12 аналоговых входов, каждый из которых может обеспечить разрешение 12 бит.


Евгений
16/03/15 9:00

Спасибо, Константин, за подробные комментарии. Возможно чуть позднее позадаю Вам либо я, либо кто ещё, несколько вопросов. Планируем сделать кардиограф на 12-отведений.


Константин
16/03/15 9:05

Желаю Успехов! С удовольствием отвечу на вопросы.


Дмитрий
20/03/15 1:21

Уважаемый Константин, как Вы считаете, можно ли как-то адаптировать данную схему для Raspberry Pi?


Константин
20/03/15 8:12

Здравствуйте, Дмитрий! Прочитал здесь http://raspberrypi.ru/blog/571.html#cut что Raspberry Pi не имеет АЦП, поэтому вам придётся подать сигнал с аналоговой части на АЦП, а с неё на Raspberry Pi - всё как в указанной статье. Правда там взят 8-ми битовый АЦП, а это для серьёзного измерения ЭКГ наверное всё-таки маловато. Лучше брать 10-ти или даже 12-ти битовую АЦП.


Андрей
11/05/15 20:58

Здравствуйте. А что должно идти на ардуино? Какое напряжение?


Андрей
11/05/15 21:03

На разъем А0 Ардуино какое напряжение должно идти?


Константин
11/05/15 21:17

Здравствуйте, Андрей! Вопрос не понял. Что вы подразумеваете в фразе "какое напряжение"? Поясните пожалуйста какие варианты, как вам кажется, тут возможны, тогда будет понятно что вы имели в виду.


Андрей
12/05/15 12:32

Здравствуйте Константин! Спасибо за ответ. Что должно идти на ардуино? скриншот: http://take.ms/Uvcd5


Константин
12/05/15 14:49

Здравствуйте, Андрей! На рис.1 см. на данной странице выше (откуда вы и взяли скриншот) на A0 идёт провод с выхода усилителя AD620 через сопротивление в 1 кОм (хотя этот 1 кОм можно потом убрать, как и диод Шоттки (BAT85) и стабилитроны (BZX55C2V4) - всё это нужно лишь на этапе настройки схемы). Таким образом на A0 и GND подаётся разность потенциалов между выходом последнего AD620 и проводом -3V (-3V подаётся на GND).


Андрей
12/05/15 19:21

Спасибо за ответ Константин, а можно с вами связаться по скайпу? Пишу диплом по данной схеме и хотел бы узнать кое-что


Константин
12/05/15 21:52

Мой скайп: ABV1111111, правда лучше сначала условиться о времени связи по e-mail, так как я в скайпе бываю не регулярно. Мой e-mail: kos_post@mail.ru


Владимир
17/10/15 1:47

Здравствуйте) Отличный сайт, очень полезный во всех отношениях, спасибо Вам за него. Попробовал собрать схему (источник двухполярного напряжения, правда, заменил на простой делитель). И что-то видно не так сделал) Когда подключаю к АЦП, график получается похожим на меандр - через равные промежутки времени усилитель то в насыщение входит, то ноль выдаёти. Не знаете, в чём может быть причина? Собирал на печатной плате, вытравил аккуратно, всё вроде нормально. Питание через USB с компа.


Константин
17/10/15 13:19

Здравствуйте, Владимир! С подобным не сталкивался. Если я вас правильно понял, то в качестве источника питания для усилителя вы взяли батарейку и к ней делитель. Может быть стоит всё-таки попробовать применить стабилизированный источник питания. Самый простой вариант - это тот же делитель подключить к GND и +5V у Arduino - как здесь: http://www.prointellekt.ru/img2/27z17uZa2D0.jpg (см. в правом нижнем углу - там GND Arduino обозначено как AGND). Возможно также, что где-то в схеме что-то закоротило и надо всё проверять-прозванивать.


Еще один студент
18/10/15 9:10

При закупки деталей возникла проблема:не могу найти в наличии диод Шоттки ВАТ85 и стабилитроны на 2,4 Можно заменить на Другой диод Шотки (с 11 вольт) и на стабилитроны 2,2 и 2,7? Спасибо за ответ.


Константин
18/10/15 10:51

2 стабилитрона на 2.7 дадут ограничение по напряжению где-то до 5.4, а на вход Arduino можно не больше 5-ти, у Arduino есть конечно некий запас прочности, но я бы не рисковал. А вот 2 по 2.2 дадут 4.4 - это меньше 5-ти, это нормально. А 2.2+2.7 = 4.9 это вообще наверное идеально. Шоттки можно например такие: BAT54, BAT54S или подобные. В принципе можно вообще обойтись без Шоттки и стабилитронов, если уверены, что у вас не перепутается плюс с минусом и напряжение не поднимется выше 5V, но это уже всё-таки некий риск.


Еще один студент
18/10/15 15:02

Еще раз спасибо за оперативный ответ. Рисковать с стабилитронами не буду и поставлю,а вот с Шоттки,если не найду, семь раз перепроверю и больше не буду менять полярность


Алексей
26/01/16 16:28

Здравствуйте, Константин. При сборке данного устройства возникли проблемы с получением данных, так как при 3-ех замкнутых контактах я получаю не прямую, а ломаную, которая идет от 300 до 800 в Stamp Plot. Не могу понять в чем проблема.


Константин
26/01/16 16:52

Здравствуйте, Алексей! Здесь в комментариях у нескольких человек уже были подобные проблемы. Обычно это означает ошибки в сборе схемы - и обычно я рекомендую всё прозвонить, либо начать собирать всё с нуля поэтапно переходя к следующему этапу только удостоверившись, что предыдущий этап работает как надо. Ещё практика показала, что часто дело в электродах.


Алексей
26/01/16 22:19

В схеме биполярное питание получаю +3 и -3, потом а op97 получаю повторитель- на выходе то же самое что и на входе, а затем на первом ad620 получаю на выходе то же самое что и на входе. В качестве электродов использую монеты на двух проводах типа витая пара.


Константин
26/01/16 22:31

То есть после первого AD620 при замыкании всех 3-х проводов получаете всё-таки прямую, а не ломаную? И при этом на выходе 2-го AD620 уже ломаная в диапазоне от 300 до 800, так?


Алексей
27/01/16 13:03

После первого прямая, а после второго ломаная


Константин
27/01/16 14:46

Ага, а после первого прямая на каком уровне? По идее при замыкании 3-х проводов разность потенциалов между выходом 1-го AD620 и нулевым проводом должна быть равна нулю. У вас так? Если да, то тогда надо померить разность потенциалов между плюсовым входом 2-го AD620 и нулевым проводом - тоже должна быть равна нулю. Если и это так, то ваш 2-й AD620 надо проверить отдельно - возможно что он бракованный.


Алексей
27/01/16 16:07

После первого прямая на уровне 600 и разность потенциалов равна 0. Разность потенциалов на втором между плюсовым входом и нулевым проводом тоже 0, но на графике ломаная от 300 до 800.


Константин
27/01/16 19:38

Сильно похоже, что что-то у вас не то со 2-м AD620. Либо сам усилитель бракованный, либо надо проверить насколько правильны контакты при его подключении. Для начала я бы сам усилитель проверил - поменяйте местами 1-й и 2-й AD620 - изменится ли что-либо (будет ли 2-й на месте 1-го работать как первый до него - будет ли выдавать ноль между выходом и нулевым проводом при замыкании 3-х проводов).


Алексей
27/01/16 20:15

Меняю местами, измеряю, получаю то же самое, операционники рабочие


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

Значит похоже, что блокировочные конденсаторы не справляются со своей задачей устранения самовозбуждения усилителей. Я бы попробовал их поменять, а так же прозвонить все контакты - вполне возможно, что где-то нет контакта, либо есть лишний обеспечивающий положительную обратную связь и самовозбуждение. Кстати, а схему паяли или на основе беспаечного монтажа делали? Ещё возникла идея. Можно проверить так: у второго AD620 убрать Rg - сопротивление, что задаёт его коэффициент усиления. Тогда коэффициент усиления 2-го AD620 будет равен 1 и тогда по идее самовозбуждения не будет и прямая будет на том же уровне, что и после 1-го AD620. Ну и соотвественно разность потенциалов между выходом 2-го AD620 и нулевым проводом будет нуль. Если это так, то тогда действительно дело в самовозбуждении, а значит дело либо в блокировочных конденсаторах, либо в недостаточном, либо лишнем контакте.


Алексей
28/01/16 15:44

Убрал Rg со второго ad620 получил прямую на уровне 600, так же как и после первого. Сигнал, который после диодов идет на А0- прямая на уровне 580.


Алексей
28/01/16 19:27

Как только ставлю назад Rg после первого прямая, после второго ломаная от 300 до 1023, после диодов - ломаная от 300 до 800


Константин
28/01/16 20:53

Где-то у вас образовалась положительная обратная связь. Блокировочные конденсаторы менять пробовали? Возможно, что где-то какая-то дорожка замкнулась - надо прозванивать.


xopek
03/01/19 22:38

Подскажите пожалуйста, у меня собранный девайс показывает нечто подобное ЭКГ, но ровно до тех пор, пока задействован один из двух электродов, идущих от первой AD620. При касании обоих - ровная, как при замыкании трех электродов на уровне 300. С чем это связано?


Константин
03/01/19 22:45

Первый электрод задействован, а второй при этом висит в воздухе? Если это так, то тогда вопрос: а если теперь первый висит в воздухе, а второй задействован, то опять вы фиксируете нечто подобное ЭКГ?


xopek
04/01/19 1:41

Именно так. Состояние электрода \"0\" значения особого не имеет. Размах импульсов меняет незначительно.


Константин
04/01/19 10:55

Ещё один момент. Довольно подозрительно, что у вас при замыкании всех трёх электродов линия идёт на уровне 300. Должно быть где-то на уровне 500. Питание что вы подаёте на 1-й усилитель это -3В и +3В или -2.5В и +2.5В?


xopek
04/01/19 11:40

Да, напряжение питания где-то в районе 2.5-2.7В. Вроде у OP97 и AD620 это в допустимых пределах.


Константин
04/01/19 13:54

Тогда уж точно при замыкании всех трёх проводов значение на выходе 2-го AD620 должно быть на уровне 0 (относительно нулевого провода), что означает на выходе Arduino график в виде прямой на уровне около 500. Где-то у вас что-то закорочено. Рекомендую замкнуть эти 3 провода и посмотреть потенциал на выходе 1-го усилителя относительно нулевого провода - должно быть около нуля.


xopek
04/01/19 23:05

Такой график без замыкания электродов https://goo.gl/bUfwCW Такой при замкнутых электродах https://goo.gl/vNdpjz КЗ на плате не нашел, нашел два непропая. После этого пересмотрел ещё раз - результат выше. После первого ОУ около 6мВ, после второго много, тестер показывает до 2.7В. Пересобирать времени уже нет :(


Константин
05/01/19 11:52

Судя по графикам схема у вас вообще не работает - надо проверять все контакты. Судя по графикам и вашему замеру второй AD620 точно в режиме насыщения и даже скорее всего самовозбуждения. Посмотрите что на входе 2-го ОУ - должен быть ноль (при замыкании 3-х электродов), если нуля нет, то возможно конденсатор ВЧ фильтра (который между 1-м и 2-м ОУ) пропускает постоянную составляющую, либо на вход 2-го ОУ ещё откуда-то поступает напряжение. Так же и 1-й ОУ у вас выдаёт по-моему многовато, хотя может и ошибаюсь. Так же я бы проверил нет ли у вас где-то закоротки между какими-то 2-мя входными электродами.


Алексей
21/01/19 12:40

Здравствуйте, Константин, я спаял схему, поместил ее в металлический корпус и нулевой провод припаял к корпусу. Пробовал подключить себя к прибору, используя контакты в виде монеток, но график получался странный, не похожий на кардиограмму. Я решил сделать генератор импульсов. С помощью ардуино нано я генерировал прямоугольный сигнал, программно я мог регулировать время подачи 5 вольт и время подачи 0 вольт, этот сигнал я пропускал через делитель напряжения. На выходе делителя узлы 2.8 мВ, 0 и -2.8 мВ, далее я подключил эти провода к сигнальным и 0 делителя подал на 0 схемы. На выходе я получил сигнал усиленный в 1000 раз как и должно быть, только форма этого сигнала близка к прямоугольной, если задавать время не более 300 мс, если же я задавал 1 секунду, то сигнал менялся, вот картинки: [https://cdn1.savepice.ru/uploads/2019/1/21/1f36a3f2a87f63ac16ba935096c7eb06-full.jpg] – (10 миллисек.) [https://cdn1.savepice.ru/uploads/2019/1/21/9fc2d9a627498f35dab4b2bdfbd7363a-full.jpg] – (1 сек.). При замыкании сигнальных проводов с референтным прямая линия на уровне 600, при разомкнутых так же на уровне 600 использовал защитные диоды, как в статье. [https://cdn1.savepice.ru/uploads/2019/1/21/737948abf4c1ac9d228a1ada447b351b-full.jpg]. Не могли бы вы подсказать из-за чего на графике прослеживается экспоненциальная зависимость (или это ветвь пораболы) это особенности работы ОУ или у меня где-то ошибка? Вот такой сигнал, если генератор подключить к ардуино уно без делителя [https://cdn1.savepice.ru/uploads/2019/1/21/19ea4e56fa7ee98f36b060b0c5d4930a-full.jpg]-(1 сек.).


Константин
21/01/19 13:09

Здравствуйте, Алексей! Всё у вас судя по всему правильно. Экспонента из-за RC-фильтра, который стоит между усилителями. Вопрос: когда вы себя к прибору подключали монетками, то нулевой провод (который у вас на корпусе) вы подключали к своей левой ноге?


Алексей
21/01/19 13:15

Спасибо огромное, Константин, за статью и быстрый ответ. К правой, думал это не важно к какой ноге. Сейчас я электроды переделываю, когда закончу попробую к левой подключить.


Алексей
21/01/19 13:31

И еще вопрос: вот когда я ставлю у генератора 10 секунд, например. Сигнал возрастает, а через 300 мс опять на уровень 600 возвращается. Это так и должно быть?


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

Про 10 сек у генератора хорошо бы на график на входе усилителя и на график на выходе посмотреть. По поводу электродов - в принципе не обязательно нулевой электрод к левой ноге, даже лучше если на тело поближе к одному из сигнальных электродов. Часто плохой сигнал из-за плохого контакта провода с монеткой (монетку и провод хорошо бы идеально зачистить, плюс надо чтобы как можно больше провода касалось бы монетки по спирали), либо плохого контакта монетки с кожей - тут монетку надо смачивать солевым раствором и плотно при помощи пластыря приклеивать к телу. И даже здесь, когда солевой раствор высыхает, то контакт теряется. В идеале лучше использовать покупные медицинские одноразовые электроды специально для кардиографа - там цена не такая уж и большая и кардиограмма получается очень хорошая.


Алексей
21/01/19 14:56

График на входе посмотреть проблематично, у меня нет осцилографа, зато я могу мультиметром померить, когда 10 сек подается напряжения порядка 2.8 миливольт, мультиметр показывает величину, а на выходе, график такой же как и 1 сек. Только экспонента сползает дальше и остальное время на уровне 600, так до тех пор пока 0 не будет подаваться на делитель, когда 0 резкое падение и затем возрастание по экспоненте с помехами, как и на графике с 1 сек. График сам чуть позже скину.


Алексей
21/01/19 15:11

График на входе посмотреть проблематично, у меня нет осцилографа, зато я могу мультиметром померить, когда 10 сек подается напряжения порядка 2.8 миливольт, мультиметр показывает величину, а на выходе, график такой же как и 1 сек. Только экспонента сползает дальше и остальное время на уровне 600, так до тех пор пока 0 не будет подаваться на делитель, когда 0 резкое падение и затем возрастание по экспоненте с помехами, как и на графике с 1 сек. График сам чуть позже скину.


Алексей
21/01/19 15:11

График на входе посмотреть проблематично, у меня нет осцилографа, зато я могу мультиметром померить, когда 10 сек подается напряжения порядка 2.8 миливольт, мультиметр показывает величину, а на выходе, график такой же как и 1 сек. Только экспонента сползает дальше и остальное время на уровне 600, так до тех пор пока 0 не будет подаваться на делитель, когда 0 резкое падение и затем возрастание по экспоненте с помехами, как и на графике с 1 сек. График сам чуть позже скину.


Константин
21/01/19 15:25

Кажется понял о чём вы. Когда у вас импульс большой длительности (10 сек например), то получается, что, например, плоская вершина импульса воспринимается RC-фильтром верхних частот (между усилителями) как практически постоянное напряжение (оно и не проходит через конденсатор фильтра) вот и получается в итоге, что сигнал на выходе фильтра (а далее и на выходе 2-го усилителя) по экспоненте движется к нулевому уровню (у вас он на уровне 600), а далее идёт задний фронт этого импульса и ФВЧ на этот фронт реагирует выдавая экспоненту. То есть ФВЧ реагирует при довольно длинных импульсах либо на передний, либо на задний фронт импульса, а плоскую вершину импульса (или плоское основание) практически не пропускает и сигнал в эти моменты стремится к нулевому уровню по экспоненте. Всё это так и должно быть.


Алексей
21/01/19 20:50

[https://cdn1.savepice.ru/uploads/2019/1/21/5201337431526f9d0484b7bfda55e7ee-full.jpg] Не знаю, кардиограмма это или помехи. Что вы об этом думаете, Константин?


Константин
22/01/19 9:54

Если тут и есть что-то типа кардиограммы, то сильно в помехах. Похоже, что здесь надо посильнее электроды к телу прижимать - явно слабый контакт.


Константин
22/01/19 10:04

Да, ещё вот что может быть. Вы используете Stamp Plot. Попробуйте просто записать все числа в файл и посмотреть потом график при помощи экселя. Для этого надо скетч у Arduino поменять на более простой чем тот что при работе со Stamp Plot. Часто просто настройки Stamp Plot не совсем адекватные и он отображает не очень хорошо - помнится кто-то писал мне про это - у него были похожие проблемы. Простая запись чисел в текстовый файл и затем отображение их в экселе даёт часто гораздо лучшие результаты.


ignat
25/01/19 14:19

Привет. Я собрал на беспаечной макетке - не заработало. Собрал на паяной макетке - тоже не заработало (шумело сильно). Собрал на печатной плате - тоже самое. Подскажите , на выходе OP97 относительно нуля имею 0.012В. На выходе первого AD620 замкнутых In+ и In-, имею те же 0.012В. Однако на втором на входе уже 0, но на выходе около 1В. Подозреваю неисправность какого-то из усилителей (вероятно второго), но может быть я что-то не так понимаю?


Константин
25/01/19 22:42

По идее на выходе OP97 относительно нуля должен быть ноль. Так как OP97 - повторитель на вход которого подали ноль.


ignat
30/01/19 9:12

Действительно, с OP97 оказался непорядок. Заменил на MCP601 - на выходе 0. Только все равно не легчает :( График выглядит вот так (замкнуты электроды / не замкнуты): https://goo.gl/GCRdKd


ignat
31/01/19 11:46

Посмотрел осциллографом на все сигналы. с TL431 выходят пилы почти одинаковые (разница в напряжениях 0,03В). На входе первой 620 нули, на выходе импульсы до 50 милливольт. Эти 50 милливольт на выходе второй 620 превращаются почти в 1В, который в свою очередь превращается в максимальный размах при размыкании электродов. Поменял местами AD620, перепроверил конденсаторы и соединения, поменял три источника питания на TL431 (делал в трех вариантах на TO92\\SO8\\SOT23), питаю только от кроны. Ситуация с графиком абсолютно стабильна. В какую сторону вообще копать? Или сразу ОУ под замену?


Константин
01/02/19 1:52

С TL431 пилы? TL431 служит для того чтобы дать постоянное напряжение - пил там быть не должно! Можете вообще попробовать без TL431 - см. например здесь: http://www.prointellekt.ru/img2/27z17uZa2D0.jpg - тут в правом нижнем углу обычный делитель при помощи которого мы питаем усилители, сам делитель подключён к +5V и земле Arduino. Это схема Андрея - её мы обсуждаем в комментариях здесь же - чуть выше.


ignat
11/02/19 14:46

Пилы на TL431 закончились убиранием конденсаторов 0.1uF. Правда ничего сильно не изменилось. Попробовал рекомендованный делитель, получил вот такую картину: https://ibb.co/Bf7BFVf На TL431 без пил, картина как по ссылке выше на участке \"электроды в воздухе\". Упорно не понимаю, что делаю не так.


Константин
11/02/19 21:52

В целом средние уровни сигнала явно правильные и поведение сигнала при переходе от разомкнутых электродов к замкнутым тоже похожее. Всё-таки чудится мне, что всё у вас работает правильно. Возможно, что это StampPlot сильно инерционен и не отрисовывает график нормально. Попробуйте сделать так чтобы ваша Arduino записала все значения отсчётов в обычный текстовый файл (числа друг под другом столбиком) и посмотрите его в экселе.


giorgi
18/04/19 14:17

a gdze kod na arduino ?


Константин
18/04/19 14:56

Есть в интернете много способов отображения данных поступающих на аналоговый вход Arduino. Один из вариантов, например, здесь: http://www.prointellekt.ru/Ardu1.php


Дмитрий
31/05/19 12:23

Константин здравствуйте, не могли бы вы написать вашу почту?


Константин
31/05/19 16:33

Здравствуйте, Дмитрий! kos_post@mail.ru


Маэстро
29/09/21 23:32

Здравствуйте, Константин. Я очень хочу собрать схему, у меня есть вопросы. И видео с осциллографа, я хочу показать их вам. Можете пожалуйста написать свой телеграм или еще что-нибудь для более комфортного общения. Буду очень вам признателен.


Константин
05/10/21 8:01

Здравствуйте! kos_post@mail.ru


Дмитрий F
21/01/22 11:33

Здравствуйте! Интересный проект. Собрал плату по вашей схеме, на осциллографе ЭКГ видно. Есть пара вопросов. 1)Не пойму для чего в схеме нужен OP97? Что изменится, если без него обойтись, т.е. 5-е ноги обеих микросхем AD920 пустить на среднюю точку (ноль) или на -3V? 2)Для чего RC-Фильтр между двумя AD620? Он, получается пропускает все выше 0.5Гц? 3)После выхода 2-го AD620, что идет на АЦП, поставить rc-фильтр низких частот обоснованно для подавления 50Гц?


Константин
21/01/22 20:04

Здравствуйте, Дмитрий! 1) OP97 нужен для формирования опорного уровня - см. объяснение здесь: http://www.prointellekt.ru/OU1.php 2) По поводу RC-цепочки объяснено здесь: http://www.prointellekt.ru/EKG2.php 3) После 2-го AD620 идёт ЭКГ и подавлять 50 Гц там в принципе не надо - у нас прибор питается от батареек и с компьютером связан только по блютуз - это принципиально с точки зрения безопасности для пациента. Вот здесь http://www.prointellekt.ru/img2/27z17uZa2D0.jpg вариант как добавить сглаживающий RC-фильтр на входе АЦП. Там потребуется поставить ещё и повторитель.


Дмитрий F
23/01/22 18:45

Спасибо, Константин, за ваш ответ!




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

Сообщение:

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






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

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