Basic DC motor control test, rpm feedback by simple impulse signal, PID speed control.

Dependencies:   FastPWM mbed FastIO MODSERIAL

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?

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