Programming Milestone Group 7 BMT M9
Dependencies: FastPWM MODSERIAL mbed
main.cpp@3:cb0a931ff019, 2018-09-25 (annotated)
- Committer:
- MAHCSnijders
- Date:
- Tue Sep 25 15:57:25 2018 +0000
- Revision:
- 3:cb0a931ff019
- Parent:
- 2:6d3f3d1bcef7
Test om Podmeter te laten werken, deze versie negeren maar vanaf vorige werken.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MAHCSnijders | 0:1e216b50d323 | 1 | #include "mbed.h" |
MAHCSnijders | 1:67b19c59b8c9 | 2 | #include "FastPWM.h" |
MAHCSnijders | 1:67b19c59b8c9 | 3 | #include "MODSERIAL.h" |
MAHCSnijders | 2:6d3f3d1bcef7 | 4 | MODSERIAL pc(USBTX, USBRX); |
MAHCSnijders | 1:67b19c59b8c9 | 5 | |
MAHCSnijders | 1:67b19c59b8c9 | 6 | Ticker motor; // ticker function |
MAHCSnijders | 2:6d3f3d1bcef7 | 7 | FastPWM pwmpin1(D5); // SPECIFIC PIN (hoeft niet aangesloten te worden) Tells you how fast the motor has to go (later: pwmpin.write will tell you the duty cycle, aka how much voltage the motor gets) |
MAHCSnijders | 2:6d3f3d1bcef7 | 8 | FastPWM pwmpin2(D6); // SPECIFIC PIN (hoeft niet aangesloten te worden) Tells you how fast the motor has to go (later: pwmpin.write will tell you the duty cycle, aka how much voltage the motor gets) |
MAHCSnijders | 1:67b19c59b8c9 | 9 | DigitalOut directionpin1(D4); // SPECIFIC PIN (hoeft niet aangesloten te worden) Direction value (0-1) that the mbed will give the motor: in which direction the motor must rotate |
MAHCSnijders | 1:67b19c59b8c9 | 10 | DigitalOut directionpin2(D7); // SPECIFIC PIN (hoeft niet aangesloten te worden) Direction value (0-1) that the mbed will give the motor: in which direction the motor must rotate |
MAHCSnijders | 1:67b19c59b8c9 | 11 | AnalogIn potmeter1(A0); // Analoge input van potmeter 1 |
MAHCSnijders | 1:67b19c59b8c9 | 12 | AnalogIn potmeter2(A1); // Analoge input van potmeter 2 |
MAHCSnijders | 0:1e216b50d323 | 13 | |
MAHCSnijders | 2:6d3f3d1bcef7 | 14 | volatile float pot1; |
MAHCSnijders | 2:6d3f3d1bcef7 | 15 | volatile float pot2; |
MAHCSnijders | 2:6d3f3d1bcef7 | 16 | volatile float pot1_scale; |
MAHCSnijders | 2:6d3f3d1bcef7 | 17 | volatile float pot2_scale; |
MAHCSnijders | 2:6d3f3d1bcef7 | 18 | volatile float u1; |
MAHCSnijders | 2:6d3f3d1bcef7 | 19 | volatile float u2; |
MAHCSnijders | 2:6d3f3d1bcef7 | 20 | |
MAHCSnijders | 1:67b19c59b8c9 | 21 | void motorfunction() |
MAHCSnijders | 2:6d3f3d1bcef7 | 22 | { pot1 = potmeter1.read(); // Reads out value potmeter 1 between 0-1 |
MAHCSnijders | 2:6d3f3d1bcef7 | 23 | pot1_scale = pot1*2 -1; // Scales value potmeter from 0-1 to -1 - 1. |
MAHCSnijders | 2:6d3f3d1bcef7 | 24 | pot2 = potmeter2.read(); |
MAHCSnijders | 2:6d3f3d1bcef7 | 25 | pot2_scale = pot2*2 -1; // Scales value potmeter from 0-1 to -1 - 1. |
MAHCSnijders | 2:6d3f3d1bcef7 | 26 | u1 = pot1_scale; // motor control signal |
MAHCSnijders | 2:6d3f3d1bcef7 | 27 | u2 = pot2_scale; // motor control signal |
MAHCSnijders | 2:6d3f3d1bcef7 | 28 | directionpin1 = u1 > 0.0f; //either true or false, determines direction (0 or 1) |
MAHCSnijders | 2:6d3f3d1bcef7 | 29 | directionpin2 = u2 > 0.0f; //either true or false |
MAHCSnijders | 2:6d3f3d1bcef7 | 30 | pwmpin1 = fabs(u1); //pwm duty cycle can only be positive, floating point absolute value (if value is >0, the there still will be a positive value). |
MAHCSnijders | 2:6d3f3d1bcef7 | 31 | pwmpin2 = fabs(u2); //pwm duty cycle can only be positive, floating point absolute value (if value is >0, the there still will be a positive value). |
MAHCSnijders | 1:67b19c59b8c9 | 32 | } |
MAHCSnijders | 0:1e216b50d323 | 33 | |
MAHCSnijders | 0:1e216b50d323 | 34 | int main() |
MAHCSnijders | 0:1e216b50d323 | 35 | { |
MAHCSnijders | 2:6d3f3d1bcef7 | 36 | pwmpin1.period_us(60.0); //60 microseconds PWM period, 16.7 kHz, defines all PWM pins (only needs to be done once) |
MAHCSnijders | 2:6d3f3d1bcef7 | 37 | pc.baud(115200); |
MAHCSnijders | 3:cb0a931ff019 | 38 | //motor.attach(motorfunction,0.5); |
MAHCSnijders | 3:cb0a931ff019 | 39 | |
MAHCSnijders | 3:cb0a931ff019 | 40 | pwmpin1=(0); |
MAHCSnijders | 3:cb0a931ff019 | 41 | pwmpin2=(0); |
MAHCSnijders | 3:cb0a931ff019 | 42 | directionpin2 = false; |
MAHCSnijders | 3:cb0a931ff019 | 43 | directionpin1 = true; |
MAHCSnijders | 0:1e216b50d323 | 44 | } |