StepperUNO Library 1.4
under construction...
Installation
Download the zip file from Stepper_UNO_v1.0#Files.
Copy the StepperUNO folder in the sketchbook/library directory.
Download
Configuration
Open the config.h file in the library/stepperUNO folder.
Change the KEYPAD_VERSION value as needed. Value should be 0 1 or 2. If you do not know just try one or the other and see how the button reacts.
Function list
Keypad
If the keypad does not reply correctly on the left/right/up/down/select button then a calibration should be performed. Values should be changed in the .h file of the library.
uint8_t ReadKey()
This function should be called as often as possible. Typically inside the main loop. This will update the Keypad.state variable with one of the defined event below.
#define PRESSED_NONE 0 #define PRESSED_RIGHT 1 #define PRESSED_UP 2 #define PRESSED_DOWN 3 #define PRESSED_LEFT 4 #define PRESSED_SELECT 5 #define RELEASED_NONE 6 #define RELEASED_RIGHT 7 #define RELEASED_UP 8 #define RELEASED_DOWN 9 #define RELEASED_LEFT 10 #define RELEASED_SELECT 11
Note this function does not manage the RST button. Use RstReadKey instead.
bool RstReadKey()
Same as above but for the RST button only.
The RST button is a special case. It has its own pin to the arduino mcu.
#define PRESSED_RST 12 #define RELEASED_RST 13 #define LONG_PRESSED_RST 14 #define LONG_RELEASED_RST 15
On a conventional Arduino UNO these LCD keypad will connect the RST button directly to the reset of the arduino. This is a waste in our opinion and we have re-routed this button for using it on something more useful.
uint8_t state
Event state. Will be equal to one of the define listed above once an event has occurred.
uint8_t rst_state
Same as state but for the RST button only.
void closeEvent()
Must be called once all action have been executed for a given event.
void rst_closeEvent()
Must be called once all action have been executed for a given event on the RST button.
Motor Control
void set_speed(uint16_t step_delay)
Set the motor speed.
step_delay is the delay between steps in microseconds.
uint8_t set_speed_rpm(float rpm)
Set the motor speed.
rpm is the rotation speed.
This function will check for minimum speed to avoid a step_delay larger than 65535. Returns 0 is successful. 1 otherwise.
void setDirection(bool dir);
Set the direction.
void enable();
Enable the motor driver. Holds torque on the motor.
void disable();
Disable the motor. Allows the motor to spin freely.
void step();
Perform one single step.
void start();
Start the motor.
void stop()
Stop the motor. Will slow down and stop if acceleration is on.
void brute_stop()
Stop the motor immediately regardless of acceleration.
void begin(uint8_t _address, uint16_t n_step)
Initialiser to be used in Setup section of Arduino. address parameter is the i2c address of the motor controller. Usually 0x04 or 0x05.
n_step is the number of steps per revolution the motor executes. See relevant datasheet. This should be modified accordingly if microstepping.
void goto_position(int32_t goto_position)
Move motor to the given position. 'goto_position' is the position in terms of step number.
void set_position(int32_t new_position)
Modify set position. This is similar as setting the tare.
int32_t get_position()
Returns current motor position.
void set_acceleration(int16_t Acc)
Set the acceleration level. Default is 1000step/s/s.
void acceleration_on()
Set acceleration on.
void acceleration_off()
Set acceleration off.
bool running
Indicates if the motor is running.
bool direction
Indicates the motor direction.
float min_rpm
Returns the smallest rpm that can be used. Calculated when begin() is called.
float rpm
Current speed in rpm. This is only valid if the set_speed_rpm function is used.
uint16_t step_delay
Step delay currently used. This is updated when calling set_speed() and set_speed_rpm().
bool acceleration
Returns true if acceleration is enabled. false otherwise.