A library to control a linear actuator box
linearActuatorControl.h
- Committer:
- crussell21
- Date:
- 2020-02-23
- Revision:
- 0:1a5f4c492b1a
File content as of revision 0:1a5f4c492b1a:
#ifndef LINEAR_ACTUATOR_CONTROL_H #define LINEAR_ACTUATOR_CONTROL_H #include "mbed.h" class LinearActuatorControl { private: DigitalIn _controlMode; DigitalIn _runMode; PwmOut _linAct1; PwmOut _linAct2; PwmOut _linAct3; PwmOut _linAct4; DigitalIn _actBtn1; DigitalIn _actBtn2; DigitalIn _actBtn3; DigitalIn _actBtn4; float _idlePositions[4]; //stores values of idle positions, deafult all 0, user defined with setIdlePositions float _actPositions[4]; //stores current positions of the actuators, updated by move() float _manualPositionsDown[4]; //positions of actuators when switch is down float _manualPositionsUp[4]; //positions of actuators when switch is up float _convertToPulseWidth_us(float); //takes in value from 0 to 1 for actuator extention percentage, and converts this to the appropriate pulse width in us public: LinearActuatorControl(); //user function to command actuators to move, takes any float value from 0 to 1 for the percent extension of the actuator (0.45 = 45% extended) //changes _actPositions array void move(float pos1, float pos2, float pos3, float pos4); //similar to move, but sets the idle positions for the actuators void setIdlePositions(float pos1, float pos2, float pos3, float pos4); void setManualPositionsDown(float pos1, float pos2, float pos3, float pos4); void setManualPositionsUp(float pos1, float pos2, float pos3, float pos4); //used to check the state of the machine, will return true if in auto+run mode bool inUserSequence(); void refresh(); //should be called refresh or update? }; #endif