You are on page 1of 2

#include <Wire.

h>
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>
#include <LiquidCrystal.h>

#define ECG_PIN A0
#define EMG_PIN A1
#define BUZZER_PIN 4
#define LED_RED_PIN 2
#define LED_GREEN_PIN 3

Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
pinMode(LED_RED_PIN, OUTPUT);
pinMode(LED_GREEN_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);

Serial.begin(9600);

if (!accel.begin()) {
Serial.println("Could not find a valid ADXL345 sensor, check wiring!");
while (1);
}

accel.setRange(ADXL345_RANGE_16_G);

lcd.begin(16, 2);
lcd.print("Fetal Monitor");
}

void loop() {
int ecgValue = analogRead(ECG_PIN);
int emgValue = analogRead(EMG_PIN);

float x, y, z;
sensors_event_t event;
accel.getEvent(&event);
x = event.acceleration.x;
y = event.acceleration.y;
z = event.acceleration.z;

lcd.setCursor(0, 1);
lcd.print("ECG: ");
lcd.print(ecgValue);
lcd.print(" EMG: ");
lcd.print(emgValue);

if (ecgValue > 500 || emgValue > 500 || (abs(x) > 10 || abs(y) > 10 ||
abs(z) > 10)) {
digitalWrite(LED_RED_PIN, HIGH);
digitalWrite(LED_GREEN_PIN, LOW);
tone(BUZZER_PIN, 1000);
delay(100);
noTone(BUZZER_PIN);
delay(100);
} else {
digitalWrite(LED_RED_PIN, LOW);
digitalWrite(LED_GREEN_PIN, HIGH);
}

delay(1000);
}

You might also like