Basic DC motor control test, rpm feedback by simple impulse signal, PID speed control.
Dependencies: FastPWM mbed FastIO MODSERIAL
main.cpp@3:f6c30ada5370, 2018-03-23 (annotated)
- Committer:
- dzoni
- Date:
- Fri Mar 23 12:35:12 2018 +0000
- Revision:
- 3:f6c30ada5370
- Parent:
- 2:70918f7f8451
- Child:
- 4:7cb8986200a7
Compiles. Ready for integration test.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dzoni | 0:bd186184ef2a | 1 | #include "mbed.h" |
dzoni | 1:70c514e10598 | 2 | #include "FastPWM.h" |
dzoni | 2:70918f7f8451 | 3 | #include "FastIO.h" |
dzoni | 0:bd186184ef2a | 4 | |
dzoni | 1:70c514e10598 | 5 | FastPWM mypwm(PWM_OUT); |
dzoni | 0:bd186184ef2a | 6 | |
dzoni | 0:bd186184ef2a | 7 | DigitalOut myled(LED1); |
dzoni | 0:bd186184ef2a | 8 | |
dzoni | 3:f6c30ada5370 | 9 | //------------------------------------ |
dzoni | 3:f6c30ada5370 | 10 | // Hyperterminal configuration |
dzoni | 3:f6c30ada5370 | 11 | // 9600 bauds, 8-bit data, no parity |
dzoni | 3:f6c30ada5370 | 12 | //------------------------------------ |
dzoni | 2:70918f7f8451 | 13 | Serial pcLink(SERIAL_TX, SERIAL_RX); |
dzoni | 2:70918f7f8451 | 14 | |
dzoni | 0:bd186184ef2a | 15 | int main() { |
dzoni | 1:70c514e10598 | 16 | mypwm.period_us(100); |
dzoni | 1:70c514e10598 | 17 | mypwm.write(0.0); |
dzoni | 0:bd186184ef2a | 18 | |
dzoni | 2:70918f7f8451 | 19 | pcLink.printf("pwm set to %.2f %%\n", mypwm.read() * 100); |
dzoni | 0:bd186184ef2a | 20 | |
dzoni | 0:bd186184ef2a | 21 | while(1) { |
dzoni | 1:70c514e10598 | 22 | int iCnt = 0; |
dzoni | 1:70c514e10598 | 23 | double dPwmDuty = 0.0; |
dzoni | 1:70c514e10598 | 24 | |
dzoni | 1:70c514e10598 | 25 | mypwm.write(dPwmDuty); |
dzoni | 2:70918f7f8451 | 26 | pcLink.printf("pwm set to %.2f %%\n", mypwm.read() * 100); |
dzoni | 1:70c514e10598 | 27 | |
dzoni | 1:70c514e10598 | 28 | if (10 < iCnt++) { |
dzoni | 1:70c514e10598 | 29 | iCnt = 0; |
dzoni | 1:70c514e10598 | 30 | |
dzoni | 1:70c514e10598 | 31 | dPwmDuty += 0.1; |
dzoni | 1:70c514e10598 | 32 | |
dzoni | 1:70c514e10598 | 33 | if (1.0 < dPwmDuty) { |
dzoni | 1:70c514e10598 | 34 | dPwmDuty = 0.0; |
dzoni | 1:70c514e10598 | 35 | } |
dzoni | 1:70c514e10598 | 36 | } |
dzoni | 1:70c514e10598 | 37 | |
dzoni | 0:bd186184ef2a | 38 | myled = !myled; |
dzoni | 1:70c514e10598 | 39 | |
dzoni | 0:bd186184ef2a | 40 | wait(1); |
dzoni | 0:bd186184ef2a | 41 | } |
dzoni | 0:bd186184ef2a | 42 | } |