Stepper for Nacelle Swivel

Raspberry Pi Library for stepper motors based on Arduino library.

Stepper Object

Stepper Library header file.

class Stepper
#include <Stepper.h>

Stepper Library Interface.

Public Functions

Stepper()

Construct a new Stepper object.

Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2, int motor_pin_3, int motor_pin_4, bool gpio_initialized)

Construct a new Stepper object.

Parameters:
  • number_of_steps – Number of steps per revolution

  • motor_pin_1 – GPIO Pin 1

  • motor_pin_2 – GPIO Pin 2

  • motor_pin_3 – GPIO Pin 3

  • motor_pin_4 – GPIO Pin 4

  • gpio_initialized – Boolean indicating if GPIO has been initialized yet

void initialize(int number_of_steps, int motor_pin_1, int motor_pin_2, int motor_pin_3, int motor_pin_4, bool gpio_initialized)

Initializes Stepper motor.

Parameters:
  • number_of_steps – Number of steps per revolution

  • motor_pin_1 – GPIO Pin 1

  • motor_pin_2 – GPIO Pin 2

  • motor_pin_3 – GPIO Pin 3

  • motor_pin_4 – GPIO Pin 4

  • gpio_initialized – Boolean indicating if GPIO has been initialized yet

double getCurrentTime()

Get the current time in ms.

Returns:

double representing the time in ms

void setSpeed(double whatSpeed)

Set the stepper motor speed.

Parameters:

whatSpeedStepper speed

void step(int number_of_steps)

Perform step for stepper.

Parameters:

number_of_steps – The number of steps the motor must rotate

int version(void)

Returns stepper library version.

Returns:

int representing library version

Private Functions

void stepMotor(int this_step)

Individual motor step.

Parameters:

this_step – The individual step

Private Members

int direction_

Direction of rotation.

double step_delay_

Delay between steps in us based on speed.

int number_of_steps_

Total number of steps the motor can rotate.

int pin_count_

Number of GPIO pins used for stepper motor.

int step_number_

Which step the motor is on.

int motor_pin_1_

GPIO Pin 1.

int motor_pin_2_

GPIO Pin 2.

int motor_pin_3_

GPIO Pin 3.

int motor_pin_4_

GPIO Pin 4.

int motor_pin_5_

GPIO Pin 5 (only for 5 phase motor)

double last_step_time_

Timestamp in us of when last step was taken.

StepperRunner

Tests stepper motor.

Functions

double getCurrentTime()

Get the current time in ms.

Returns:

double representing the current time

int main()

Main Method to test individual stepper motor.

Returns:

int representing exit status