ECG

Dependencies:   mbed LCD_DISCO_F746NG BSP_DISCO_F746NG

Committer:
alixhavr10
Date:
Wed Jun 09 06:24:21 2021 +0000
Revision:
1:3c739c810aaf
Parent:
0:f5f54c7509b4
ECG_final

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dj444 0:f5f54c7509b4 1 #include "mbed.h"
dj444 0:f5f54c7509b4 2 #include "LCD_DISCO_F746NG.h"
alixhavr10 1:3c739c810aaf 3 #include <stdio.h>
dj444 0:f5f54c7509b4 4
dj444 0:f5f54c7509b4 5
alixhavr10 1:3c739c810aaf 6 LCD_DISCO_F746NG lcd;
alixhavr10 1:3c739c810aaf 7 DigitalOut led1(LED1);
alixhavr10 1:3c739c810aaf 8 AnalogIn mesure_analogique(PA_0);
alixhavr10 1:3c739c810aaf 9 PwmOut Buzzer(PA_8);
alixhavr10 1:3c739c810aaf 10 DigitalIn mon_bouton(PI_11);
dj444 0:f5f54c7509b4 11
dj444 0:f5f54c7509b4 12 int main()
dj444 0:f5f54c7509b4 13 {
alixhavr10 1:3c739c810aaf 14 float val,time;
alixhavr10 1:3c739c810aaf 15 int X, Y,X_max,Y_max,Range;
alixhavr10 1:3c739c810aaf 16 int a = mon_bouton.read();
alixhavr10 1:3c739c810aaf 17 char chaine[50];
alixhavr10 1:3c739c810aaf 18 // initialisations
alixhavr10 1:3c739c810aaf 19 val=0;
alixhavr10 1:3c739c810aaf 20 led1 = 1;
alixhavr10 1:3c739c810aaf 21 time=0.2f;
alixhavr10 1:3c739c810aaf 22 lcd.Clear(LCD_COLOR_BLACK);
alixhavr10 1:3c739c810aaf 23 lcd.SetBackColor(LCD_COLOR_BLACK);
alixhavr10 1:3c739c810aaf 24 lcd.SetTextColor(LCD_COLOR_WHITE);
alixhavr10 1:3c739c810aaf 25 X_max=lcd.GetXSize();
alixhavr10 1:3c739c810aaf 26 Y_max=lcd.GetYSize();
alixhavr10 1:3c739c810aaf 27 X=0;
alixhavr10 1:3c739c810aaf 28 Range=200;
alixhavr10 1:3c739c810aaf 29 Y=Y_max-10;
dj444 0:f5f54c7509b4 30
alixhavr10 1:3c739c810aaf 31 while(1)
alixhavr10 1:3c739c810aaf 32 {
alixhavr10 1:3c739c810aaf 33 val=mesure_analogique.read();
alixhavr10 1:3c739c810aaf 34 val=val*3.3;
alixhavr10 1:3c739c810aaf 35 sprintf((char*)chaine,"tension (en V) = %3.3f",val);
alixhavr10 1:3c739c810aaf 36 lcd.DisplayStringAt(0, LINE(1), (uint8_t *)&chaine, CENTER_MODE);
alixhavr10 1:3c739c810aaf 37 Y=Y_max-Range*val/3.3;
alixhavr10 1:3c739c810aaf 38 lcd.DrawPixel(X,Y,LCD_COLOR_WHITE);
alixhavr10 1:3c739c810aaf 39 wait_ms(3);//3 ms est la meilleure des valeurs
alixhavr10 1:3c739c810aaf 40 X=X+1;
alixhavr10 1:3c739c810aaf 41 if(a == 1){ //bouton poussoir non enfoncé
alixhavr10 1:3c739c810aaf 42 if(X > X_max) {
alixhavr10 1:3c739c810aaf 43 X = 0;
alixhavr10 1:3c739c810aaf 44 lcd.Clear(LCD_COLOR_BLACK);
alixhavr10 1:3c739c810aaf 45 sprintf((char*)chaine,"tension (en V) = %3.3f",val);
alixhavr10 1:3c739c810aaf 46 }
alixhavr10 1:3c739c810aaf 47 if(val<=1.9){
alixhavr10 1:3c739c810aaf 48 Buzzer.write(0);
alixhavr10 1:3c739c810aaf 49 }
alixhavr10 1:3c739c810aaf 50 if(val>=3){
alixhavr10 1:3c739c810aaf 51 Buzzer.write(0);
alixhavr10 1:3c739c810aaf 52 }
alixhavr10 1:3c739c810aaf 53 if(val<=0.1){
alixhavr10 1:3c739c810aaf 54 Buzzer.pulsewidth(160.0f);
alixhavr10 1:3c739c810aaf 55 }
alixhavr10 1:3c739c810aaf 56 else{
alixhavr10 1:3c739c810aaf 57 Buzzer.period_ms(10.0f); //pour le son
alixhavr10 1:3c739c810aaf 58 //Buzzer.write(0.1f);
alixhavr10 1:3c739c810aaf 59 Buzzer.pulsewidth_ms(5.0f);
alixhavr10 1:3c739c810aaf 60 }
alixhavr10 1:3c739c810aaf 61 }
alixhavr10 1:3c739c810aaf 62 else{//bouton poussoir enfoncé obj :figer l'écran
alixhavr10 1:3c739c810aaf 63 lcd.DrawPixel(X,Y,LCD_COLOR_WHITE);
alixhavr10 1:3c739c810aaf 64 }
dj444 0:f5f54c7509b4 65 }
alixhavr10 1:3c739c810aaf 66 }