Домой В мире Экг с ардуино своими руками

Экг с ардуино своими руками

39
0

Экг на ардуино

Для регистрации электрической активности сердца потребуется плата с аналоговыми входами, например, ATmega328P. Подключите электроды через усилитель с коэффициентом не менее 1000, чтобы сигнал был различим на фоне шумов. Используйте операционный усилитель AD8232 – он фильтрует помехи и стабилизирует показания.

Создание кардиографа на базе микроконтроллера

Необходимые компоненты

Для сборки потребуется плата с процессором ATmega328P, 3 электрода, операционный усилитель AD8232, резисторы 10 кОм и 1 МОм, конденсаторы 0.1 мкФ. Электроды подключаются к усилителю через экранированные провода длиной не более 50 см.

Схема подключения

Правый электрод соедините с входом AD8232 (pin 2), левый — с pin 3. Выход усилителя (pin 9) подключите к аналоговому входу A0 микроконтроллера. Нагрузочные резисторы 1 МОм установите между каждым электродом и землей. Конденсатор 0.1 мкФ добавьте параллельно выходу усилителя для фильтрации высокочастотных помех.

Код для обработки сигнала:

void setup() {
Serial.begin(9600);
pinMode(A0, INPUT);
}
void loop() {
int value = analogRead(A0);
Serial.println(value);
delay(10);
}

Для визуализации данных используйте Processing или Serial Plotter в среде разработки. Частота дискретизации составит 100 Гц при задержке 10 мс. Погрешность измерений не превысит ±5% при правильной калибровке.

Сборка схемы для регистрации сердечного ритма на микроконтроллере

Для работы потребуется плата с АЦП, например, Uno или Nano, а также операционный усилитель с высоким входным сопротивлением, например, AD8232. Подключите электроды к усилителю:

  • Правый электрод (RA) – к положительному входу (IN+).
  • Левый электрод (LA) – к отрицательному входу (IN-).

Соедините выход усилителя (OUT) с аналоговым входом A0 контроллера. Добавьте фильтр нижних частот (RC-цепь с резистором 10 кОм и конденсатором 0.1 мкФ) между выходом AD8232 и A0, чтобы снизить высокочастотные помехи.

  1. Подайте питание 3.3 В на усилитель от платы.
  2. Используйте экранированные провода для соединений с датчиками.

Пример кода для считывания сигнала:

void setup() {
Serial.begin(9600);
}
void loop() {
int value = analogRead(A0);
Serial.println(value);
delay(10);
}

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

Обработка и отображение сигналов кардиографа

Подключите датчик AD8232 к аналоговому входу A0 платы. Для фильтрации шумов используйте скользящее среднее в коде:

#define SAMPLE_SIZE 10
int ecgValues[SAMPLE_SIZE];
int index = 0;
void setup() {
Serial.begin(115200);
}
void loop() {
ecgValues[index] = analogRead(A0);
index = (index + 1) % SAMPLE_SIZE;
int filteredValue = 0;
for(int i=0; i

Для визуализации в реальном времени установите Processing. Этот код отрисует график:

import processing.serial.*;
Serial port;
float[] values = new float[500];
int currentIndex = 0;
void setup() {
size(800, 400);
port = new Serial(this, "COM3", 115200);
}
void draw() {
background(0);
stroke(0, 255, 0);
noFill();
beginShape();
for(int i=0; i 0) {
String data = port.readStringUntil('
');
if(data != null) {
values[currentIndex] = float(data.trim());
currentIndex = (currentIndex + 1) % values.length;
}
}
}

Для точного определения R-зубцов добавьте пороговый детектор. Пик считается при превышении значения 600 единиц:

if(filteredValue > 600 && previousValue <= 600) {
Serial.print("R-peak detected: ");
Serial.println(millis());
}
previousValue = filteredValue;

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь