Не удается получить данные с ЭКГ — Arduino

Привет, сообщество StackOverflow,

Последние пару недель не могу найти решение своей проблемы. Моя проблема в том, что я не могу получить данные из моей самодельной ЭКГ, которую я создал из Arduino. Я полный любитель в этом, но я почти уверен, что это проблема схемы. Вот как моя схема выглядит сейчас. (Примечание: крайний слева элемент с надписью «Dual O» — это инструментальный усилитель, а не операционный усилитель, как тот, что ближе к середине)

1

Вот мой код:

const int  signal = 5;    // Pin connected to the filtered signal from the circuit
unsigned long currentBeatTime;   
unsigned long previousBeatTime;

unsigned long frequency;

// Internal variables
unsigned long period = 0;
int input = 0;
int lastinput = 0;


void setup() {
pinMode(signal, INPUT);
Serial.begin(9600);

previousBeatTime = millis();
}

void loop() {
delay(500);
input = digitalRead(signal);

if ((input != lastinput) && (input == HIGH)) {
    // If the pin state has just changed from low to high (edge detector)
    currentBeatTime = millis();

    period = currentBeatTime - previousBeatTime; // Compute the time between the previous beat and the one that has just been detected
    previousBeatTime = currentBeatTime; // Define the new time reference for the next period computing
}

lastinput = input; // Save the current pin state for comparison at the next loop iteration

// Detect if there is no beat after more than 2 seconds
if ( (millis() - previousBeatTime) > 2000 ) 
{ 
    Serial.println("dead");
}
else 
{
    if (period <= 0) 
    {
        frequency = 0;
    }
    else 
    {
        frequency = 60000/period; // Compute the heart rate in beats per minute (bpm) with the period in milliseconds
    }

    Serial.print(frequency);
    Serial.println(" : alive! ");
}
}

Я был бы признателен, если бы кто-то мог вернуться ко мне как можно скорее. Благодарю вас!


person user3744439    schedule 22.12.2014    source источник
comment
Вы случайно не мертвы или, может быть, вампир?   -  person Martin James    schedule 22.12.2014
comment
Ха-ха, нет, но я получаю сигнал о том, что да. Я просто получаю «мертвый» в качестве вывода. Однако оцените шутку.   -  person user3744439    schedule 22.12.2014
comment
Ну, вы на 100% уверены, что это не аппаратная проблема - осциллограф показывает сигнал на входном контакте, правильный контакт подключен и т. д.?   -  person Martin James    schedule 22.12.2014
comment
@ user3744439: Для дальнейшего использования вам нужно научиться рисовать электронные схемы. Потому что мультяшное изображение макетной платы — ужасный способ показать, как вы собираетесь подключать свою схему. Насколько мы можем судить, проблема может быть где угодно в сигнальной цепочке.   -  person In silico    schedule 22.12.2014
comment
Другими словами: если вы подключите светодиод + резистор к входному контакту платы контроллера, он будет мигать?   -  person Martin James    schedule 22.12.2014
comment
@Insilico Мне очень жаль, так как схемы и схемы не являются моей специализацией. Я обязательно нарисую лучшую схему в следующий раз, когда задам вопрос.   -  person user3744439    schedule 22.12.2014
comment
это было бы лучше на electronics.stackexchange   -  person chris    schedule 22.12.2014
comment
Да, светодиод мигает, но я не знаю, что теперь делать. Прошил ЕЕ, но безрезультатно. Что мне теперь делать?   -  person user3744439    schedule 23.12.2014


Ответы (1)


Похоже, вы считываете на выводе 5 напряжение после того, как ток прошел через светодиод. Светодиоды вызывают падение напряжения, поэтому возможно, что напряжение никогда не будет достаточно высоким, чтобы его можно было зарегистрировать как высокое при вызове digitalRead(). Возможно, вы изменили место, где вы измеряете напряжение, или вместо этого попробуйте AnalogRead().

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

person uncleO    schedule 22.12.2014
comment
Привет UncleO, светодиод работает. Я не знаю, что делать, хотя. Я спрашивал у EE, но не понимаю их комментариев. - person user3744439; 23.12.2014