Definitieve motorscript in aanbouw

Dependencies:   HIDScope MODSERIAL QEI biquadFilter mbed

Fork of frdm_Motor_V2_2 by Robert Schulte

Committer:
Rvs94
Date:
Mon Sep 28 12:25:05 2015 +0000
Revision:
2:099da0fc31b6
Parent:
1:48aba8d5610a
Child:
3:687729d7996e
Toevoeging van p controller.

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 1:48aba8d5610a 13 QEI Encoder(D3, D2, NC, 32);
Rvs94 1:48aba8d5610a 14 HIDScope scope(3);
Margreeth95 0:284ed397e046 15 Ticker ScopeTime;
Rvs94 1:48aba8d5610a 16 float Aantal_Degs;
Rvs94 1:48aba8d5610a 17 float Aantal_pulses;
Margreeth95 0:284ed397e046 18
Rvs94 2:099da0fc31b6 19 float Error;
Rvs94 2:099da0fc31b6 20 float refference;
Rvs94 2:099da0fc31b6 21 float Kp = 0.01;
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 1:48aba8d5610a 29 Aantal_Degs = Encoder.getPulses()*360/31/131;
Margreeth95 0:284ed397e046 30 scope.send();
Rvs94 1:48aba8d5610a 31
Margreeth95 0:284ed397e046 32 }
Margreeth95 0:284ed397e046 33
Margreeth95 0:284ed397e046 34 int main()
Margreeth95 0:284ed397e046 35 {
Margreeth95 0:284ed397e046 36 motor2direction = 0;
Margreeth95 0:284ed397e046 37 motor2speed = 0;
Margreeth95 0:284ed397e046 38 led = 1;
Margreeth95 0:284ed397e046 39 pc.baud(115200);
Margreeth95 0:284ed397e046 40 pc.printf("Tot aan loop werkt");
Margreeth95 0:284ed397e046 41 ScopeTime.attach_us(&ScopeSend, 10e4);
Margreeth95 0:284ed397e046 42
Margreeth95 0:284ed397e046 43
Margreeth95 0:284ed397e046 44 while (true)
Margreeth95 0:284ed397e046 45 {
Rvs94 2:099da0fc31b6 46 char c = pc.getc();
Rvs94 2:099da0fc31b6 47 switch(c)
Rvs94 2:099da0fc31b6 48 {
Rvs94 2:099da0fc31b6 49 case 'r':
Rvs94 2:099da0fc31b6 50 {
Rvs94 2:099da0fc31b6 51 refference = refference + 10;
Rvs94 2:099da0fc31b6 52 break;
Rvs94 2:099da0fc31b6 53 }
Rvs94 2:099da0fc31b6 54 case 'f':
Rvs94 2:099da0fc31b6 55 {
Rvs94 2:099da0fc31b6 56 refference = refference - 10;
Rvs94 2:099da0fc31b6 57 break;
Rvs94 2:099da0fc31b6 58 }
Rvs94 2:099da0fc31b6 59 }
Rvs94 2:099da0fc31b6 60
Rvs94 2:099da0fc31b6 61 Error = refference - Aantal_Degs;
Rvs94 2:099da0fc31b6 62 if(Error > 0)
Rvs94 2:099da0fc31b6 63 {
Rvs94 2:099da0fc31b6 64 motor2direction = 0;
Rvs94 2:099da0fc31b6 65 }
Rvs94 2:099da0fc31b6 66 else
Rvs94 2:099da0fc31b6 67 {
Rvs94 2:099da0fc31b6 68 motor2direction = 1;
Rvs94 2:099da0fc31b6 69 }
Rvs94 2:099da0fc31b6 70 motor2speed = Kp*abs(Error);
Margreeth95 0:284ed397e046 71
Margreeth95 0:284ed397e046 72 }
Margreeth95 0:284ed397e046 73 }