-
Notifications
You must be signed in to change notification settings - Fork 1
Class: ServoPi
This class contains methods for use with the Servo PWM Pi from
https://www.abelectronics.co.uk/p/72/servo-pwm-pi
Connect()
Connect to the I2C device
Parameters: none
Returns: null
IsConnected()
Check if the device is connected
Parameters: none
Returns: boolean
Dispose()
Dispose of the active I2C device
Parameters: none
Returns: null
SetPWMFreqency(freq)
Set the output frequency of all PWM channels.
The output frequency is programmable from a typical 40Hz to 1000Hz.
Parameters: freq - Integer frequency value
Returns: null
SetPWM(byte channel, short on, short off)
Set the PWM output on a single channel
Parameters: channel - 1 to 16, on - time period 0 to 4095, off - time period 0 to 4095
Returns: null
SetPWMOnTime(byte channel, short on)
Set the output on time on a single channel
Parameters: channel - 1 to 16, on - time period 0 to 4095
Returns: null
SetPWMOnTime(byte channel, short off)
Set the output off time on a single channel
Parameters: channel - 1 to 16, off - time period 0 to 4095
Returns: null
SetAllPwm( on, off)
Set the output on all channels
Parameters: on - time period, off - time period
Returns: null
OutputEnable()
Enable the output via OE pin. Only used when the OE jumper is joined.
Parameters: null
Returns: null
OutputDisable()
Disable the output via OE pin. Only used when the OE jumper is joined.
Parameters: null
Returns: null
SetAllCallAddress(byte address)
The All Call Address allows all Servo Pi devices on the I2C bus to be controlled at the same time.
Parameters: address - 0x03 to 0x77
Returns: null
EnableAllCallAddress()
Enable the I2C address for the All Call function.
Returns: null
DisableAllCallAddress()
Disable the I2C address for the All Call function.
Returns: null
byte Address { get; set; }
I2C address for the Servo Pi bus.
bool InvertOutput { get; set; }
Invert the PWM output on all channels.
true = invert, false = normal.
byte OutputEnablePin { get; set; }
Set the GPIO pin for the output enable function.
The default GPIO pin 4 is not supported in .net Core so the OE pad will need to be connected to a different GPIO pin.
bool Sleep { get; set; }
Sets or gets the sleep status for the Servo Pi.
Set true to put the device into a sleep state or false to wake the device.
Get true = sleeping, false = awake.
To use the ServoPi Pi library in your code you must first import the library dll:
using ABElectronicsUK;
Next you must initialise the ServoPi class:
ABElectronicsUK.ServoPi servo = new ABElectronicsUK.ServoPi(0x40);
The argument is the I2C addresses of the Servo Pi chip.
Next we need to connect to the device and wait for the connection
servo.Connect();
while (!servo.IsConnected){}
Set PWM frequency to 60 Hz and enable the output
servo.SetPWMFreqency(60);
Optional You can set the enable pin to use the output enable functions and the enable and disable the output. The default GPIO pin 4 is not supported in Windows 10 IOT and so the OE pad will need to be connected to a different GPIO pin to use this functionality.
servo.OutputEnablePin = 17; // set to GPIO pin 17
servo.OutputEnable();
Move the servo to a position and exit the application.
servo.SetPWM(1, 0, 300);