Robot tryout

Dependencies:   mbed QEI biquadFilter MODSERIAL FastPWM ttmath Math

Committer:
Feike
Date:
Mon Oct 14 07:36:10 2019 +0000
Revision:
16:2ad161f709f6
Parent:
14:b813ddfbcd71
Child:
17:6da57acb7bea
Script opgeschoond, enkel voor motor 1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Feike 4:bd21569250c7 1 #include "mbed.h"
Feike 8:017b813c72bb 2 #include "MODSERIAL.h"
Feike 12:2382468d36a4 3 #include "QEI.h"
Feike 4:bd21569250c7 4
Feike 16:2ad161f709f6 5 DigitalOut motor_pwm(PTC2);
Feike 16:2ad161f709f6 6 DigitalOut motor_dir(PTC3);
Feike 8:017b813c72bb 7 MODSERIAL pc(USBTX, USBRX);
Feike 16:2ad161f709f6 8 QEI Encoder(D12,D13,NC,64,QEI::X4_ENCODING);
Feike 7:e119b12e5e7f 9
Feike 13:18dd7a15603f 10 int quit;
Feike 13:18dd7a15603f 11 int counts = 0;
Feike 13:18dd7a15603f 12 int limit_pos = 8400;
Feike 13:18dd7a15603f 13
Feike 12:2382468d36a4 14 Ticker pulse;
Feike 12:2382468d36a4 15 void pulseget()
Feike 13:18dd7a15603f 16 {
Feike 12:2382468d36a4 17 counts = Encoder.getPulses();
Feike 13:18dd7a15603f 18 if(counts > limit_pos)
Feike 13:18dd7a15603f 19 {
Feike 13:18dd7a15603f 20 quit = 1;
Feike 13:18dd7a15603f 21 }
Feike 12:2382468d36a4 22 }
Feike 12:2382468d36a4 23
Feike 12:2382468d36a4 24 // DE MAIN FUNCTIE
Feike 4:bd21569250c7 25 int main(void)
Feike 13:18dd7a15603f 26 {
Feike 16:2ad161f709f6 27 pc.baud(115200);
Feike 13:18dd7a15603f 28 while(true)
Feike 13:18dd7a15603f 29 {
Feike 13:18dd7a15603f 30 quit = 0;
Feike 13:18dd7a15603f 31 counts = 0;
Feike 16:2ad161f709f6 32 char cc = pc.getc();
Feike 8:017b813c72bb 33 {
Feike 16:2ad161f709f6 34 pc.printf("in while");
Feike 13:18dd7a15603f 35 int frequency_pwm = 10000; //10 kHz PWM
Feike 16:2ad161f709f6 36 PwmOut motor_pwm(PTC2);
Feike 16:2ad161f709f6 37 PwmOut motor_dir(PTC3);
Feike 16:2ad161f709f6 38 motor_pwm.period(1.0/(double)frequency_pwm); // T=1/f
Feike 16:2ad161f709f6 39 motor_dir.write(0); // positief
Feike 16:2ad161f709f6 40 motor_pwm.write(0.8); // write Duty Cycle
Feike 13:18dd7a15603f 41 pulse.attach(pulseget,1.0/10000);
Feike 13:18dd7a15603f 42 if(quit == 1)
Feike 13:18dd7a15603f 43 {
Feike 13:18dd7a15603f 44 pulse.detach();
Feike 16:2ad161f709f6 45 motor_pwm.write(0);
Feike 13:18dd7a15603f 46 pc.printf("The motor is off with counts is %i\n\r",counts);
Feike 13:18dd7a15603f 47 break;
Feike 8:017b813c72bb 48 }
Feike 16:2ad161f709f6 49 wait(1.0/10000);
Feike 8:017b813c72bb 50 }
Feike 13:18dd7a15603f 51 cc = pc.getc();
Feike 13:18dd7a15603f 52 counts = 0;
Feike 13:18dd7a15603f 53 pc.printf("The motor is in final state and counts is %i\n\r",counts);
Feike 8:017b813c72bb 54 }
Feike 16:2ad161f709f6 55 }
Feike 16:2ad161f709f6 56
Feike 16:2ad161f709f6 57