Lab7
Dependencies: mbed
main.cpp
00001 /* 00002 * Le 9 decembre 2019 00003 * Bruno St-Georges et Nicolas Brochu 00004 * Instrumentation en systemes ordines 00005 * 00006 * Laboratoire 7 - Mesure du pouls 00007 * Ce programme permet de mesurer un pouls a partir d'un capteur APDS-9008 et d'une DEL ultrabrillante verte. 00008 * Un montage d'ampli op doit etre realise afin d'obtenir des valeurs de tensions reparties sur l'echelle 0-5V 00009 * a partir de la sortie du capteur. 00010 * 00011 * LPC1768 00012 * Connexions externes: 00013 * Broche 16 - Sortie du montage d'ampli op 00014 * 00015 */ 00016 00017 #include "mbed.h" 00018 00019 // Definition des broches 00020 AnalogIn heartbeat(p16); 00021 DigitalOut LED(LED1); 00022 DigitalOut DEL(LED2); 00023 00024 // Port serie 00025 Serial pc(USBTX, USBRX); // tx, rx 00026 00027 // Timer du temps de battement 00028 Timer t; 00029 00030 // Declaration des variables globales 00031 float temps,tension,bpm; 00032 int bcounter; // Compteur de battement 00033 00034 // Programme principal 00035 int main() { 00036 00037 pc.printf("\n\rDemarrage du systeme"); 00038 00039 while(1) { 00040 tension = heartbeat.read() * 3.3; 00041 if(tension > 2.2){ // Detection d'un battement 00042 t.start(); 00043 while(tension > 1.9){ // hysteresis 00044 tension = heartbeat.read() * 3.3; 00045 } 00046 while(tension < 2.2){ // attente du prochain battement 00047 tension = heartbeat.read() * 3.3; 00048 } 00049 bcounter++; 00050 } 00051 if(bcounter == 5){ // Pour moyenne sur 5 battements de coeur 00052 bcounter = 0; 00053 temps = t.read(); // mesure du temps pris pour 5 battements 00054 bpm = 5 * 60 / temps; // Conversion en bpm: * 5 provient de la division du denominateur par 5 00055 t.reset(); // Remise a zero du timer 00056 t.stop(); 00057 pc.printf("\n\r%1.0f",bpm); 00058 } 00059 } 00060 }
Generated on Tue Jul 12 2022 18:52:27 by 1.7.2