upm  1.7.1
Sensor/Actuator repository for libmraa (v2.0.0)
Data Structures | Functions | Typedefs
Include dependency graph for uln200xa.h:

API Description

/*
* Author: Jon Trulson <jtrulson@ics.com>
* Copyright (c) 2016 Intel Corporation.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <unistd.h>
#include <stdio.h>
#include <upm_utilities.h>
#include "uln200xa.h"
int main ()
{
// Instantiate a Stepper motor on a ULN200XA Darlington controller.
// This was tested with the Grove Gear Stepper Motor with Driver
// Wire the pins so that I1 is pin D8, I2 is pin D9, I3 is pin D10 and
// I4 is pin D11
uln200xa_context motor = uln200xa_init(4096, 8, 9, 10, 11);
if (!motor)
{
printf("uln200xa_init() failed\n");
return 1;
}
uln200xa_set_speed(motor, 5);
uln200xa_set_direction(motor, ULN200XA_DIR_CW);
printf("Rotating 1 revolution clockwise.\n");
uln200xa_stepper_steps(motor, 4096);
printf("Sleeping for 2 seconds...\n");
upm_delay(2);
printf("Rotating 1/2 revolution counter clockwise.\n");
uln200xa_set_direction(motor, ULN200XA_DIR_CCW);
uln200xa_stepper_steps(motor, 2048);
// turn off the power
printf("Exiting...\n");
return 0;
}

Go to the source code of this file.

Data Structures

struct  _uln200xa_context
 

Functions

uln200xa_context uln200xa_init (int stepsPerRev, unsigned int i1, unsigned int i2, unsigned int i3, unsigned int i4)
 
void uln200xa_close (uln200xa_context dev)
 
void uln200xa_set_speed (const uln200xa_context dev, unsigned int speed)
 
void uln200xa_set_direction (const uln200xa_context dev, ULN200XA_DIRECTION_T dir)
 
void uln200xa_stepper_steps (const uln200xa_context dev, unsigned int steps)
 
void uln200xa_release (const uln200xa_context dev)
 

Typedefs

typedef struct _uln200xa_contextuln200xa_context
 

Function Documentation

uln200xa_context uln200xa_init ( int  stepsPerRev,
unsigned int  i1,
unsigned int  i2,
unsigned int  i3,
unsigned int  i4 
)

ULN200XA constructor

Parameters
stepsPerRevNumber of steps per full revolution
i1Digital pin to use for stepper input 1
i2Digital pin to use for stepper input 2
i3Digital pin to use for stepper input 3
i4Digital pin to use for stepper input 4
Returns
Device context

Here is the call graph for this function:

void uln200xa_close ( uln200xa_context  dev)

ULN200XA destructor

Here is the call graph for this function:

Here is the caller graph for this function:

void uln200xa_set_speed ( const uln200xa_context  dev,
unsigned int  speed 
)

Sets the speed of the stepper motor in revolutions per minute (RPM)

Parameters
devDevice context
speedSpeed to set the motor to, in RPM

Here is the caller graph for this function:

void uln200xa_set_direction ( const uln200xa_context  dev,
ULN200XA_DIRECTION_T  dir 
)

Sets the direction of the motor, clockwise or counterclockwise

Parameters
devDevice context
dirDirection to set the motor to

Here is the caller graph for this function:

void uln200xa_stepper_steps ( const uln200xa_context  dev,
unsigned int  steps 
)

Steps the stepper motor a specified number of steps

Parameters
devDevice context
stepsNumber of steps to move the stepper motor

Here is the caller graph for this function:

void uln200xa_release ( const uln200xa_context  dev)

Releases the stepper motor by removing power

Parameters
devDevice context

Here is the caller graph for this function:

Typedef Documentation

Device context