Filter emg 7-10-15 v1

Dependencies:   HIDScope mbed MODSERIAL

Committer:
Bartvaart
Date:
Mon Oct 12 10:14:18 2015 +0000
Revision:
18:eec0880fcded
Parent:
17:cfe44346645c
Child:
19:6c0245063b96
Lijkt te werken, moet nog getest worden met echte metingen

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 18:eec0880fcded 23 double gem = 0; // omdat y min nog niet is gedefinieerd moet er daarvoor in de plaats een waarde 0 worden doorgestuurd naar het programma Filterdesigns. Omdat het onduidelijk is dezse ymin te gaan noemen in een bestand waar ymin ook wordt bepaald heet deze in dit geval gem
Bartvaart 16:8f175d2a472f 24
Bartvaart 17:cfe44346645c 25 while(Timermax <= 5) { //Als timer onder de 5 seconden is dit uitvoeren
Bartvaart 17:cfe44346645c 26 double u = emg2.read();
Bartvaart 18:eec0880fcded 27 double y = Filterdesigns(u, gem);
Bartvaart 17:cfe44346645c 28 if (y > ymax) { //Als de gemeten waarde groter is dan de opgeslagen waarde wordt dit de nieuwe opgeslagen waarde
Bartvaart 17:cfe44346645c 29 ymax = y;
Bartvaart 17:cfe44346645c 30 }
Bartvaart 17:cfe44346645c 31 else {
Bartvaart 17:cfe44346645c 32 }
Bartvaart 17:cfe44346645c 33 }
Bartvaart 17:cfe44346645c 34 Timermax.stop();
Bartvaart 17:cfe44346645c 35 LedGreen.write(1); //Led aan
Bartvaart 17:cfe44346645c 36 readymax = 1; // Zodat systeem weet wanneer kalibratie voltooid is
Bartvaart 17:cfe44346645c 37 return ymax;
Bartvaart 17:cfe44346645c 38 }
Bartvaart 17:cfe44346645c 39
Bartvaart 17:cfe44346645c 40 double KalibratieMin(bool &readymin) //Kalibratie van de minimum waarde
Bartvaart 17:cfe44346645c 41 {
Bartvaart 17:cfe44346645c 42 Timermin.start();
Bartvaart 17:cfe44346645c 43
Bartvaart 17:cfe44346645c 44 LedRed.write(0);
Bartvaart 17:cfe44346645c 45 double ymin = 10;
Bartvaart 18:eec0880fcded 46 double gem = 0;
Bartvaart 17:cfe44346645c 47
Bartvaart 17:cfe44346645c 48 while(Timermin <= 5) {
Bartvaart 17:cfe44346645c 49 double u = emg2.read();
Bartvaart 18:eec0880fcded 50 double y = Filterdesigns(u, gem);
Bartvaart 17:cfe44346645c 51
Bartvaart 17:cfe44346645c 52 if (y < ymin) {
Bartvaart 17:cfe44346645c 53 ymin = y;
Bartvaart 17:cfe44346645c 54 }
Bartvaart 17:cfe44346645c 55 else {
Bartvaart 17:cfe44346645c 56 }
Bartvaart 17:cfe44346645c 57 }
Bartvaart 17:cfe44346645c 58
Bartvaart 17:cfe44346645c 59 Timermin.stop();
Bartvaart 17:cfe44346645c 60 LedRed.write(1);
Bartvaart 17:cfe44346645c 61 readymin = 1;
Bartvaart 17:cfe44346645c 62 return ymin;
Bartvaart 17:cfe44346645c 63 }