Rhino Reimburse / Mbed 2 deprecated ESCON_36_2_Control

Dependencies:   mbed

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?

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