Robot tryout

Dependencies:   mbed QEI biquadFilter MODSERIAL FastPWM ttmath Math

Committer:
Feike
Date:
Thu Oct 03 14:26:41 2019 +0000
Revision:
8:017b813c72bb
Parent:
7:e119b12e5e7f
Child:
9:61bdf58f856e
Data uitlezen vanuit motor toegevoegd

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 4:bd21569250c7 3
Feike 7:e119b12e5e7f 4 // test
Feike 7:e119b12e5e7f 5
Feike 8:017b813c72bb 6 DigitalOut motor1_pwm(PTC2); // aansturen motor 1, via poort PTC2
Feike 8:017b813c72bb 7 DigitalIn motor1_1(PTD1); // data vanuit motor 1
Feike 8:017b813c72bb 8 DigitalIn motor1_2(PTD3); // data vanuit motor 1
Feike 8:017b813c72bb 9
Feike 8:017b813c72bb 10
Feike 8:017b813c72bb 11 DigitalOut motor2_pwm(PTA2); // aansturen motor 2, via poort PTA2
Feike 8:017b813c72bb 12 AnalogIn input(PTB3); // input van ECG
Feike 8:017b813c72bb 13 MODSERIAL pc(USBTX, USBRX);
Feike 7:e119b12e5e7f 14
Feike 4:bd21569250c7 15 int main(void)
Feike 8:017b813c72bb 16 {
Feike 8:017b813c72bb 17 pc.baud(115200);
Feike 8:017b813c72bb 18 char c = pc.getc();
Feike 8:017b813c72bb 19 pc.printf("In de main, check\r\n");
Feike 8:017b813c72bb 20 if (c == 'm')
Feike 8:017b813c72bb 21 {
Feike 8:017b813c72bb 22 pc.printf("In de if, check\r\n");
Feike 8:017b813c72bb 23 pc.baud(115200);
Feike 8:017b813c72bb 24 int frequency_pwm = 10000; //10 kHz PWM
Feike 8:017b813c72bb 25 PwmOut motor1_pwm(PTC2);
Feike 8:017b813c72bb 26 PwmOut motor2_pwm(PTA2);
Feike 8:017b813c72bb 27 motor1_pwm.period(1.0/(double)frequency_pwm); // T=1/f
Feike 8:017b813c72bb 28 motor2_pwm.period(1.0/(double)frequency_pwm); // T=1/f
Feike 8:017b813c72bb 29 while(true)
Feike 8:017b813c72bb 30 {
Feike 8:017b813c72bb 31 pc.printf("In de while, check\r\n");
Feike 8:017b813c72bb 32 int DataM[1000];
Feike 8:017b813c72bb 33 for(int pct = 0 ; pct <= 100 ; pct += 10)
Feike 8:017b813c72bb 34 {
Feike 8:017b813c72bb 35 pc.printf("Motor 1\r\n");
Feike 8:017b813c72bb 36 motor1_pwm.write(pct/100.0); // write Duty Cycle
Feike 8:017b813c72bb 37 wait(1.0f);
Feike 8:017b813c72bb 38 for(int tijd = 0 ; pct <= 100 ; pct += 1)
Feike 8:017b813c72bb 39 {
Feike 8:017b813c72bb 40 int tijd2 = tijd + pct/10*100;
Feike 8:017b813c72bb 41 int Outm1 = motor1_1.read();
Feike 8:017b813c72bb 42 DataM[tijd2] = Outm1;
Feike 8:017b813c72bb 43 wait(0.01f);
Feike 8:017b813c72bb 44 }
Feike 8:017b813c72bb 45 }
Feike 8:017b813c72bb 46 pc.printf("Data motor 1 is %i", DataM);
Feike 8:017b813c72bb 47 motor1_pwm.write(0.0f); // motor 1 off again
Feike 8:017b813c72bb 48 pc.printf("Motor 1 off\r\n");
Feike 8:017b813c72bb 49 for(int pct = 0 ; pct <= 100 ; pct += 10)
Feike 8:017b813c72bb 50 {
Feike 8:017b813c72bb 51 pc.printf("Motor 2\r\n");
Feike 8:017b813c72bb 52 motor2_pwm.write(pct/100.0); // write Duty Cycle
Feike 8:017b813c72bb 53 wait(1.0f);
Feike 8:017b813c72bb 54 }
Feike 8:017b813c72bb 55 motor2_pwm.write(0.0f); // motor 2 off again
Feike 8:017b813c72bb 56 pc.printf("Motor 2 off\r\n");
Feike 8:017b813c72bb 57 }
Feike 8:017b813c72bb 58 }
Feike 8:017b813c72bb 59 if (c == 'e')
Feike 4:bd21569250c7 60 {
Feike 8:017b813c72bb 61 pc.printf("In de tweede if, check");
Feike 8:017b813c72bb 62 while (true)
Feike 4:bd21569250c7 63 {
Feike 8:017b813c72bb 64 int sample = input.read();
Feike 8:017b813c72bb 65 pc.printf("Input is %i \r\n", sample);
Feike 7:e119b12e5e7f 66 wait(1.0f);
Feike 8:017b813c72bb 67 }
Feike 4:bd21569250c7 68 }
Feike 4:bd21569250c7 69 }