![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Signa-bot code for project BioRobotics, at University of Twente.
Dependencies: mbed QEI MODSERIAL FastPWM ttmath Math
Motor_tryout.cpp@16:2ad161f709f6, 2019-10-14 (annotated)
- 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?
User | Revision | Line number | New 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 |