Signa-bot code for project BioRobotics, at University of Twente.

Dependencies:   mbed QEI MODSERIAL FastPWM ttmath Math

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?

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 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 }