10.4. Ritme cardíac KY-039
1a Part: Esquema i muntatge
2a Part: Programació
1- Obrir IDE Arduino de l'ordinador.
2- Endollar l'arduino i seleccionar el port on es troba.
3- Copiar i enganxar, el codi de la part inferior de la imatge, al programa.
4- Per últim pujar.
float factor = 0.75; // coeficiente para filtro pasa bajos
float maximo = 0.0; // para almacenar valor maximo
int minimoEntreLatidos = 300; // 300 mseg. de tiempo minimo entre latidos
float valorAnterior = 500; // para almacenar valor previo
int latidos = 0; // contador de cantidad de latidos
void setup() {
pinMode(13, OUTPUT); // LED incorporado en pin 13 como salida
Serial.begin(9600); // inicializacion de monitor serie a 9600 bps
Serial.println("Iniciando mediciones"); // texto a mostrar
}
void loop() {
static unsigned long tiempoLPM = millis(); // tiempo Latidos Por Minuto con
// valor actual devuelto por millis()
static unsigned long entreLatidos = millis(); // tiempo entre Latidos con
// valor actual devuelto por millis()
int valorLeido = analogRead(A0); // lectura de entrada analogica A0
float valorFiltrado = factor * valorAnterior + (1 - factor) * valorLeido; // filtro pasa bajos
float cambio = valorFiltrado - valorAnterior; // diferencia entre valor filtrado y
// valor anterior
valorAnterior = valorFiltrado; // actualiza valor anterior con valor filtrado
if ((cambio >= maximo) && (millis() > entreLatidos + minimoEntreLatidos)) { // si cambio es
// es mayor o igual a maximo y pasaron al menos 300 mseg.
maximo = cambio; // actualiza maximo con valor de cambo
digitalWrite(13, HIGH); // enciende LED incorporado
entreLatidos = millis(); // actualiza variable entreLatidos con millis()
latidos++; // incrementa latidos en uno
}
else { // condicion falsa del condicional
digitalWrite(13, LOW); // apaga LED incorporado
}
maximo = maximo * 0.97; // carga maximo como el 97 por ciento de su propio
// valor para dejar decaer y no perder pulsos
if (millis() >= tiempoLPM + 15000) { // si transcurrieron al menos 15 segundos
Serial.print("Latidos por minuto: "); // muestra texto
Serial.println(latidos * 4); // muestra variable latidos multiplicado por 4
latidos = 0; // coloca contador de latidos en cero
tiempoLPM = millis(); // actualiza variable con valor de millis()
}
delay(50); // demora entre lecturas de entrada analogica
}
3a Part: Activitats
1- Afegeix una nova subpàgina al teu bloc amb el nom 10.4. Ritme cardíac.
2- Crea un apartat 10.4.1. Monitor sèrie. Un cop realitzada la part de programació, anirem a IDE Arduino, al menú eines i seleccionarem el monitor sèrie. Aleshores començaran les medicions, quan tinguem un número més o menys de pulsacions constant, el donarem per bo. Insereix una imatge amb el número de pulsacions de cadascun dels integrants del grup.
3- En el següent apartat 10.4.2. Plotter sèrie. Ara tanca el monitor sèrie i obre el plotter, també en el menú eines. Enganxa una imatge del plotter amb almenys 5 resultats.
4- En el 10.4.3. Les meves pulsacions, escriu les pulsacions que tens realment sense ajuda de l'arduino, és a dir, cronometra en 1 minut quantes pulsacions tens.
5- Insereix un full de càlcul amb els següents resultats: