Lab7

Dependencies:   mbed

main.cpp

Committer:
brunostgr
Date:
2019-12-17
Revision:
0:d4da42f37c03

File content as of revision 0:d4da42f37c03:

/*
 * Le 9 decembre 2019
 * Bruno St-Georges et Nicolas Brochu
 * Instrumentation en systemes ordines
 * 
 * Laboratoire 7 - Mesure du pouls
 * Ce programme permet de mesurer un pouls a partir d'un capteur APDS-9008 et d'une DEL ultrabrillante verte.
 * Un montage d'ampli op doit etre realise afin d'obtenir des valeurs de tensions reparties sur l'echelle 0-5V
 * a partir de la sortie du capteur.
 *
 * LPC1768
 * Connexions externes:
 * Broche 16 - Sortie du montage d'ampli op
 *
 */

#include "mbed.h"

// Definition des broches
AnalogIn heartbeat(p16);
DigitalOut LED(LED1);      
DigitalOut DEL(LED2);      

// Port serie 
Serial pc(USBTX, USBRX); // tx, rx

// Timer du temps de battement
Timer t;

// Declaration des variables globales
float temps,tension,bpm;
int bcounter;   // Compteur de battement

// Programme principal
int main() {
    
    pc.printf("\n\rDemarrage du systeme");
    
    while(1) {
        tension = heartbeat.read() * 3.3;
        if(tension > 2.2){              // Detection d'un battement
            t.start();
            while(tension > 1.9){       // hysteresis
                tension = heartbeat.read() * 3.3;
            }
            while(tension < 2.2){       // attente du prochain battement
                tension = heartbeat.read() * 3.3;
            }
            bcounter++;
        }   
        if(bcounter == 5){          // Pour moyenne sur 5 battements de coeur
            bcounter = 0;       
            temps = t.read();       // mesure du temps pris pour 5 battements
            bpm = 5 * 60 / temps;   // Conversion en bpm: * 5 provient de la division du denominateur par 5
            t.reset();              // Remise a zero du timer
            t.stop();
            pc.printf("\n\r%1.0f",bpm);     
        }
    }
}