![](/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@17:6da57acb7bea, 2019-10-14 (annotated)
- Committer:
- Feike
- Date:
- Mon Oct 14 09:05:05 2019 +0000
- Revision:
- 17:6da57acb7bea
- Parent:
- 16:2ad161f709f6
- Child:
- 18:ab0fe311e7f3
Motor een en drie zijn onafhankelijk van elkaar aan te sturen. Starten nu met codering
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 | 17:6da57acb7bea | 4 | MODSERIAL pc(USBTX, USBRX); |
Feike | 17:6da57acb7bea | 5 | PwmOut motor1_pwm(PTC2); |
Feike | 17:6da57acb7bea | 6 | DigitalOut motor1_dir(PTC3); |
Feike | 17:6da57acb7bea | 7 | PwmOut motor3_pwm(PTA1); |
Feike | 17:6da57acb7bea | 8 | DigitalOut motor3_dir(PTB9); |
Feike | 4:bd21569250c7 | 9 | |
Feike | 16:2ad161f709f6 | 10 | QEI Encoder(D12,D13,NC,64,QEI::X4_ENCODING); |
Feike | 7:e119b12e5e7f | 11 | |
Feike | 13:18dd7a15603f | 12 | int quit; |
Feike | 13:18dd7a15603f | 13 | int counts = 0; |
Feike | 13:18dd7a15603f | 14 | int limit_pos = 8400; |
Feike | 13:18dd7a15603f | 15 | |
Feike | 12:2382468d36a4 | 16 | Ticker pulse; |
Feike | 12:2382468d36a4 | 17 | void pulseget() |
Feike | 13:18dd7a15603f | 18 | { |
Feike | 12:2382468d36a4 | 19 | counts = Encoder.getPulses(); |
Feike | 13:18dd7a15603f | 20 | if(counts > limit_pos) |
Feike | 13:18dd7a15603f | 21 | { |
Feike | 13:18dd7a15603f | 22 | quit = 1; |
Feike | 13:18dd7a15603f | 23 | } |
Feike | 12:2382468d36a4 | 24 | } |
Feike | 12:2382468d36a4 | 25 | |
Feike | 17:6da57acb7bea | 26 | Ticker show; |
Feike | 17:6da57acb7bea | 27 | void pulseshow() |
Feike | 17:6da57acb7bea | 28 | { |
Feike | 17:6da57acb7bea | 29 | pc.printf("The counts is %i",counts); |
Feike | 17:6da57acb7bea | 30 | } |
Feike | 17:6da57acb7bea | 31 | |
Feike | 17:6da57acb7bea | 32 | |
Feike | 12:2382468d36a4 | 33 | // DE MAIN FUNCTIE |
Feike | 4:bd21569250c7 | 34 | int main(void) |
Feike | 13:18dd7a15603f | 35 | { |
Feike | 16:2ad161f709f6 | 36 | pc.baud(115200); |
Feike | 17:6da57acb7bea | 37 | char cc = pc.getc(); |
Feike | 13:18dd7a15603f | 38 | while(true) |
Feike | 13:18dd7a15603f | 39 | { |
Feike | 13:18dd7a15603f | 40 | quit = 0; |
Feike | 13:18dd7a15603f | 41 | counts = 0; |
Feike | 8:017b813c72bb | 42 | { |
Feike | 16:2ad161f709f6 | 43 | pc.printf("in while"); |
Feike | 13:18dd7a15603f | 44 | int frequency_pwm = 10000; //10 kHz PWM |
Feike | 17:6da57acb7bea | 45 | motor1_pwm.period(1.0/(double)frequency_pwm); // T=1/f |
Feike | 17:6da57acb7bea | 46 | motor1_dir.write(0); // positief |
Feike | 17:6da57acb7bea | 47 | motor1_pwm.write(0.8); // write Duty Cycle |
Feike | 17:6da57acb7bea | 48 | |
Feike | 17:6da57acb7bea | 49 | motor3_pwm.period(1.0/(double)frequency_pwm); // T=1/f |
Feike | 17:6da57acb7bea | 50 | motor3_dir.write(0); // positief |
Feike | 17:6da57acb7bea | 51 | motor3_pwm.write(0.8); // write Duty Cycle |
Feike | 17:6da57acb7bea | 52 | |
Feike | 17:6da57acb7bea | 53 | counts = Encoder.getPulses(); |
Feike | 17:6da57acb7bea | 54 | pc.printf("The counts is %i\n\r",counts); |
Feike | 17:6da57acb7bea | 55 | |
Feike | 17:6da57acb7bea | 56 | //pulse.attach(pulseget,1.0/10000); |
Feike | 17:6da57acb7bea | 57 | // show.attach(pulseshow,1.0/10000); |
Feike | 17:6da57acb7bea | 58 | |
Feike | 17:6da57acb7bea | 59 | //if(quit == 1) |
Feike | 17:6da57acb7bea | 60 | //{ |
Feike | 17:6da57acb7bea | 61 | // pulse.detach(); |
Feike | 17:6da57acb7bea | 62 | // motor1_pwm.write(0); |
Feike | 17:6da57acb7bea | 63 | // motor3_pwm.write(0); |
Feike | 17:6da57acb7bea | 64 | // pc.printf("The motor is off with counts is %i\n\r",counts); |
Feike | 17:6da57acb7bea | 65 | // break; |
Feike | 17:6da57acb7bea | 66 | // } |
Feike | 17:6da57acb7bea | 67 | wait(1.0/10); |
Feike | 8:017b813c72bb | 68 | } |
Feike | 8:017b813c72bb | 69 | } |
Feike | 17:6da57acb7bea | 70 | } |