Filter emg 7-10-15 v1

Dependencies:   HIDScope mbed MODSERIAL

Committer:
Bartvaart
Date:
Fri Oct 09 11:27:58 2015 +0000
Revision:
17:cfe44346645c
Parent:
16:8f175d2a472f
Child:
18:eec0880fcded
Bepaald een max en minimum (voor kalibratie) en gaat dan gewone programma runnen

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Bartvaart 16:8f175d2a472f 1 #include "Kalibratie.h"
Bartvaart 17:cfe44346645c 2 #include "Filterdesigns.h"
Bartvaart 17:cfe44346645c 3
Bartvaart 17:cfe44346645c 4 Timer Timermax;
Bartvaart 17:cfe44346645c 5 Timer Timermin;
Bartvaart 17:cfe44346645c 6 AnalogIn emg2(A0); //Analog input van emg kabels
Bartvaart 17:cfe44346645c 7
Bartvaart 17:cfe44346645c 8 DigitalOut LedGreen(LED2);
Bartvaart 17:cfe44346645c 9 DigitalOut LedRed(LED1);
Bartvaart 17:cfe44346645c 10
Bartvaart 17:cfe44346645c 11 void Init()
Bartvaart 17:cfe44346645c 12 {
Bartvaart 17:cfe44346645c 13 LedGreen = 1;
Bartvaart 17:cfe44346645c 14 LedRed = 1;
Bartvaart 17:cfe44346645c 15 }
Bartvaart 17:cfe44346645c 16
Bartvaart 17:cfe44346645c 17 double KalibratieMax(bool &readymax) //Kalibratie van de maximum waarde
Bartvaart 17:cfe44346645c 18 {
Bartvaart 17:cfe44346645c 19 Timermax.start(); //Start de timer
Bartvaart 17:cfe44346645c 20
Bartvaart 17:cfe44346645c 21 LedGreen.write(0); //Led aan
Bartvaart 17:cfe44346645c 22 double ymax = 0;
Bartvaart 16:8f175d2a472f 23
Bartvaart 17:cfe44346645c 24 while(Timermax <= 5) { //Als timer onder de 5 seconden is dit uitvoeren
Bartvaart 17:cfe44346645c 25 double u = emg2.read();
Bartvaart 17:cfe44346645c 26 double y = Filterdesigns(u);
Bartvaart 17:cfe44346645c 27 if (y > ymax) { //Als de gemeten waarde groter is dan de opgeslagen waarde wordt dit de nieuwe opgeslagen waarde
Bartvaart 17:cfe44346645c 28 ymax = y;
Bartvaart 17:cfe44346645c 29 }
Bartvaart 17:cfe44346645c 30 else {
Bartvaart 17:cfe44346645c 31 }
Bartvaart 17:cfe44346645c 32 }
Bartvaart 17:cfe44346645c 33 Timermax.stop();
Bartvaart 17:cfe44346645c 34 LedGreen.write(1); //Led aan
Bartvaart 17:cfe44346645c 35 readymax = 1; // Zodat systeem weet wanneer kalibratie voltooid is
Bartvaart 17:cfe44346645c 36 return ymax;
Bartvaart 17:cfe44346645c 37 }
Bartvaart 17:cfe44346645c 38
Bartvaart 17:cfe44346645c 39 double KalibratieMin(bool &readymin) //Kalibratie van de minimum waarde
Bartvaart 17:cfe44346645c 40 {
Bartvaart 17:cfe44346645c 41 Timermin.start();
Bartvaart 17:cfe44346645c 42
Bartvaart 17:cfe44346645c 43 LedRed.write(0);
Bartvaart 17:cfe44346645c 44 double ymin = 10;
Bartvaart 17:cfe44346645c 45
Bartvaart 17:cfe44346645c 46 while(Timermin <= 5) {
Bartvaart 17:cfe44346645c 47 double u = emg2.read();
Bartvaart 17:cfe44346645c 48 double y = Filterdesigns(u);
Bartvaart 17:cfe44346645c 49
Bartvaart 17:cfe44346645c 50 if (y < ymin) {
Bartvaart 17:cfe44346645c 51 ymin = y;
Bartvaart 17:cfe44346645c 52 }
Bartvaart 17:cfe44346645c 53 else {
Bartvaart 17:cfe44346645c 54 }
Bartvaart 17:cfe44346645c 55 }
Bartvaart 17:cfe44346645c 56
Bartvaart 17:cfe44346645c 57 Timermin.stop();
Bartvaart 17:cfe44346645c 58 LedRed.write(1);
Bartvaart 17:cfe44346645c 59 readymin = 1;
Bartvaart 17:cfe44346645c 60 return ymin;
Bartvaart 17:cfe44346645c 61 }