Motor programma met EMG

Dependencies:   HIDScope MODSERIAL QEI biquadFilter mbed

Fork of frdm_Motor_V2_3 by Margreeth de Breij

Committer:
Rvs94
Date:
Tue Sep 29 12:19:51 2015 +0000
Revision:
7:67b50d4fb03c
Parent:
5:455773cf460b
Child:
8:69bde5e32dbf
Alle floats veranderd naar doubles. Error verlaagd naar 1. Aantal degs toegevoegd aan printf.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Margreeth95 0:284ed397e046 1 #include "mbed.h"
Margreeth95 0:284ed397e046 2 #include "MODSERIAL.h"
Margreeth95 0:284ed397e046 3 #include "HIDScope.h"
Margreeth95 0:284ed397e046 4 #include "QEI.h"
Margreeth95 0:284ed397e046 5
Margreeth95 0:284ed397e046 6 Serial pc(USBTX, USBRX); // tx, rx
Margreeth95 0:284ed397e046 7 DigitalOut led(LED_RED);
Margreeth95 0:284ed397e046 8 DigitalOut motor2direction(D4); //D4 en D5 zijn motor 2 (op het motorshield)
Margreeth95 0:284ed397e046 9 PwmOut motor2speed(D5);
Margreeth95 0:284ed397e046 10 DigitalIn button1(SW3);
Margreeth95 0:284ed397e046 11 DigitalIn EncoderA(D3);
Margreeth95 0:284ed397e046 12 DigitalIn EncoderB(D2);
Rvs94 5:455773cf460b 13 QEI Encoder(D3, D2, NC, 128);
Rvs94 1:48aba8d5610a 14 HIDScope scope(3);
Margreeth95 0:284ed397e046 15 Ticker ScopeTime;
Rvs94 7:67b50d4fb03c 16
Rvs94 7:67b50d4fb03c 17 double Aantal_Degs;
Rvs94 7:67b50d4fb03c 18 double Aantal_pulses;
Rvs94 7:67b50d4fb03c 19 double Error;
Rvs94 7:67b50d4fb03c 20 double refference;
Rvs94 7:67b50d4fb03c 21 const double Kp = 0.005;
Rvs94 2:099da0fc31b6 22
Rvs94 2:099da0fc31b6 23
Margreeth95 0:284ed397e046 24 void ScopeSend()//Functie die de gegevens voor de scope uitleest en doorstuurt
Margreeth95 0:284ed397e046 25 {
Margreeth95 0:284ed397e046 26 scope.set(0, motor2direction.read());
Margreeth95 0:284ed397e046 27 scope.set(1, motor2speed.read());
Rvs94 1:48aba8d5610a 28 scope.set(2, Aantal_Degs);
Rvs94 5:455773cf460b 29 Aantal_Degs = Encoder.getPulses()*360/128/131;
Rvs94 4:0d4aff8b57b3 30
Margreeth95 0:284ed397e046 31 scope.send();
Rvs94 1:48aba8d5610a 32
Margreeth95 0:284ed397e046 33 }
Margreeth95 0:284ed397e046 34
Rvs94 3:687729d7996e 35
Margreeth95 0:284ed397e046 36 int main()
Margreeth95 0:284ed397e046 37 {
Margreeth95 0:284ed397e046 38 motor2direction = 0;
Margreeth95 0:284ed397e046 39 motor2speed = 0;
Margreeth95 0:284ed397e046 40 led = 1;
Margreeth95 0:284ed397e046 41 pc.baud(115200);
Rvs94 7:67b50d4fb03c 42 refference = 0;
Rvs94 3:687729d7996e 43 pc.printf("Tot aan loop werkt\n");
Margreeth95 0:284ed397e046 44 ScopeTime.attach_us(&ScopeSend, 10e4);
Margreeth95 0:284ed397e046 45
Margreeth95 0:284ed397e046 46
Margreeth95 0:284ed397e046 47 while (true)
Margreeth95 0:284ed397e046 48 {
Rvs94 4:0d4aff8b57b3 49
Rvs94 3:687729d7996e 50 char c = pc.getc();
Rvs94 3:687729d7996e 51 if(c == 'r')
Rvs94 2:099da0fc31b6 52 {
Rvs94 3:687729d7996e 53 refference = refference + 10;
Rvs94 3:687729d7996e 54 pc.printf("rx \n");
Rvs94 4:0d4aff8b57b3 55 Error = refference - Aantal_Degs;
Rvs94 7:67b50d4fb03c 56 while(abs(Error) > 1)
Rvs94 4:0d4aff8b57b3 57 {
Rvs94 4:0d4aff8b57b3 58 Error = refference - Aantal_Degs;
Rvs94 4:0d4aff8b57b3 59 motor2speed = Kp*abs(Error);
Rvs94 7:67b50d4fb03c 60 pc.printf("reffence = %f,error = %f,Aantal degs = %f \n",refference,Error,Aantal_Degs);
Rvs94 4:0d4aff8b57b3 61 if(Error > 0)
Rvs94 4:0d4aff8b57b3 62 {
Rvs94 4:0d4aff8b57b3 63 motor2direction = 0;
Rvs94 4:0d4aff8b57b3 64 }
Rvs94 4:0d4aff8b57b3 65 else
Rvs94 4:0d4aff8b57b3 66 {
Rvs94 5:455773cf460b 67 motor2direction = 1;
Rvs94 4:0d4aff8b57b3 68 }
Rvs94 4:0d4aff8b57b3 69
Rvs94 4:0d4aff8b57b3 70 }
Rvs94 3:687729d7996e 71 }
Rvs94 4:0d4aff8b57b3 72
Rvs94 2:099da0fc31b6 73
Rvs94 4:0d4aff8b57b3 74
Rvs94 3:687729d7996e 75
Margreeth95 0:284ed397e046 76 }
Margreeth95 0:284ed397e046 77 }