StepperUNO Library 1.4

From lechacal
Jump to: navigation, search

under construction...


Download the zip file from Stepper_UNO_v1.0#Files.
Copy the StepperUNO folder in the sketchbook/library directory.


StepperUNO Library v1.4


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


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 RELEASED_NONE   6
#define RELEASED_UP     8
#define RELEASED_DOWN   9
#define RELEASED_LEFT   10

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

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. Holds torque on the motor.

void disable();

Disable the motor. Allows the motor to spin freely.

void step();

Perform one single step.

void start();

Stop 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

Inform 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

Inform if acceleration is On or off.