Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@0:0347fe0d0f32, 2016-02-12 (annotated)
- Committer:
- mfajaradityo
- Date:
- Fri Feb 12 10:02:09 2016 +0000
- Revision:
- 0:0347fe0d0f32
Control the speed of motor, connected to Servo Controller ESCON 36/2, through PWM and read the current drawn by the motor
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| mfajaradityo | 0:0347fe0d0f32 | 1 | #include "mbed.h" |
| mfajaradityo | 0:0347fe0d0f32 | 2 | |
| mfajaradityo | 0:0347fe0d0f32 | 3 | Serial pc(USBTX, USBRX); // tx, rx |
| mfajaradityo | 0:0347fe0d0f32 | 4 | |
| mfajaradityo | 0:0347fe0d0f32 | 5 | float dcPWM = 0; |
| mfajaradityo | 0:0347fe0d0f32 | 6 | float iGRP = 0; |
| mfajaradityo | 0:0347fe0d0f32 | 7 | |
| mfajaradityo | 0:0347fe0d0f32 | 8 | AnalogIn grpControl(p15); //Analog Input to control Gripper-Motor's PWM |
| mfajaradityo | 0:0347fe0d0f32 | 9 | AnalogIn grpCurrent(p16); //Analog Input to read Gripper-Motor's current |
| mfajaradityo | 0:0347fe0d0f32 | 10 | InterruptIn check(p17); //Interrupt event to check Gripper-Motor's current |
| mfajaradityo | 0:0347fe0d0f32 | 11 | |
| mfajaradityo | 0:0347fe0d0f32 | 12 | PwmOut grpPWM(p30); //PWM Out for Gripper Motor |
| mfajaradityo | 0:0347fe0d0f32 | 13 | |
| mfajaradityo | 0:0347fe0d0f32 | 14 | //Check potensiometer voltage (GrpControl) |
| mfajaradityo | 0:0347fe0d0f32 | 15 | //GrpControl analog read range [0.0f - 1.0f] |
| mfajaradityo | 0:0347fe0d0f32 | 16 | //GrpPWM pwm out duty cycle range [0.1f - 0.9f] |
| mfajaradityo | 0:0347fe0d0f32 | 17 | void updatePwmOut(AnalogIn analogPin, PwmOut *pwmPin) { |
| mfajaradityo | 0:0347fe0d0f32 | 18 | float dCycle = 0.1; |
| mfajaradityo | 0:0347fe0d0f32 | 19 | |
| mfajaradityo | 0:0347fe0d0f32 | 20 | dCycle += 0.8 * analogPin.read(); |
| mfajaradityo | 0:0347fe0d0f32 | 21 | (*pwmPin).write(dCycle); |
| mfajaradityo | 0:0347fe0d0f32 | 22 | |
| mfajaradityo | 0:0347fe0d0f32 | 23 | //End of updateGrpPWM() |
| mfajaradityo | 0:0347fe0d0f32 | 24 | } |
| mfajaradityo | 0:0347fe0d0f32 | 25 | |
| mfajaradityo | 0:0347fe0d0f32 | 26 | //Read the current of Brushed Motor RE-25 DC through Motor Controller ESCON 36/2 |
| mfajaradityo | 0:0347fe0d0f32 | 27 | //the current of Brushed Motor RE-25 DC range [(-3.0A) - (3.0A)] |
| mfajaradityo | 0:0347fe0d0f32 | 28 | //GrpCurrent analog read range [0.0f - 0.1f] |
| mfajaradityo | 0:0347fe0d0f32 | 29 | float readGrpCurrent(AnalogIn analogPin) { |
| mfajaradityo | 0:0347fe0d0f32 | 30 | float iReadOut = 0; |
| mfajaradityo | 0:0347fe0d0f32 | 31 | |
| mfajaradityo | 0:0347fe0d0f32 | 32 | iReadOut = (6 * analogPin.read()) - 3; |
| mfajaradityo | 0:0347fe0d0f32 | 33 | return iReadOut; |
| mfajaradityo | 0:0347fe0d0f32 | 34 | |
| mfajaradityo | 0:0347fe0d0f32 | 35 | //End of readGrpCurrent |
| mfajaradityo | 0:0347fe0d0f32 | 36 | } |
| mfajaradityo | 0:0347fe0d0f32 | 37 | |
| mfajaradityo | 0:0347fe0d0f32 | 38 | void checkGrpCurrent() { |
| mfajaradityo | 0:0347fe0d0f32 | 39 | iGRP = readGrpCurrent(grpCurrent); |
| mfajaradityo | 0:0347fe0d0f32 | 40 | pc.printf("Gripper-Motor's current : '%f'\n", iGRP); |
| mfajaradityo | 0:0347fe0d0f32 | 41 | } |
| mfajaradityo | 0:0347fe0d0f32 | 42 | |
| mfajaradityo | 0:0347fe0d0f32 | 43 | int main() { |
| mfajaradityo | 0:0347fe0d0f32 | 44 | while(1) { |
| mfajaradityo | 0:0347fe0d0f32 | 45 | check.fall(&checkGrpCurrent); |
| mfajaradityo | 0:0347fe0d0f32 | 46 | updatePwmOut(grpControl, &grpPWM); |
| mfajaradityo | 0:0347fe0d0f32 | 47 | wait_ms(1); |
| mfajaradityo | 0:0347fe0d0f32 | 48 | } |
| mfajaradityo | 0:0347fe0d0f32 | 49 | //End of main() |
| mfajaradityo | 0:0347fe0d0f32 | 50 | } |