Remarks

MotorWing
Status Status badge: working
Source code GitHub
Datasheet(s) GitHub
NuGet package NuGet Gallery for Meadow.Foundation.FeatherWings.MotorWing

Code Example

MotorWing motorWing;

public override Task Initialize()
{
    Console.WriteLine("Initializing ...");

    var i2CBus = Device.CreateI2cBus(I2cBusSpeed.FastPlus);
    motorWing = new MotorWing(i2CBus, new Frequency(100, Frequency.UnitType.Hertz), 0x61);
    motorWing.Initialize();

    return Task.CompletedTask;
}

public override async Task Run()
{
    //Get DC motor 1
    var dcMotor1 = motorWing.GetMotor(1);

    //Get DC motor 2
    var dcMotor2 = motorWing.GetMotor(2);

    //Get Stepper motor number 2
    var stepper = motorWing.GetStepper(2, 200);

    dcMotor1.Run(Commmand.FORWARD);
    dcMotor2.Run(Commmand.BACKWARD);

    while (true)
    {
        Console.WriteLine("Speed up");
        for (short i = 0; i <= 255; i++)
        {
            dcMotor1.SetSpeed(i);
            dcMotor2.SetSpeed(i);
            await Task.Delay(10);
        }

        stepper.Step(50);

        await Task.Delay(500);

        Console.WriteLine("Slow down");
        for (short i = 255; i >= 0; i--)
        {
            dcMotor1.SetSpeed(i);
            dcMotor2.SetSpeed(i);
            await Task.Delay(10);
        }

        stepper.Step(-50);

        await Task.Delay(500);
    }
}

Sample project(s) available on GitHub

Characteristic Locus
Inheritance System.Object > MotorWing
Namespace Meadow.Foundation.FeatherWings
Assembly MotorWing.dll

Syntax

public class MotorWing : object

Constructors

MotorWing(II2cBus, Units.Frequency, Byte)

Creates a MotorWing driver

Declaration
public MotorWing(II2cBus i2cBus, Units.Frequency frequency, byte address = null)

Parameters

Type Name Description
II2cBus i2cBus

The I2C bus connected to the device

Units.Frequency frequency

The PWM frequency for the PCA9685 IC

System.Byte address

The address of the i2c Peripheral

Methods

GetMotor(Int16)

Returns a instance of a DC Motor object

Declaration
public DCMotor GetMotor(short dcMotorIndex)

Parameters

Type Name Description
System.Int16 dcMotorIndex

The motor port we want to use: 1 thru 4 are valid

Returns

Type Description
DCMotor

DCMotor

GetStepper(Int16, Int32)

Returns a instance of a Stepper Motor object

Declaration
public StepperMotor GetStepper(short stepperMotorIndex, int steps)

Parameters

Type Name Description
System.Int16 stepperMotorIndex

The stepper motor port we want to use: only 0 or 1 are valid

System.Int32 steps

The number of steps the motor has

Returns

Type Description
StepperMotor

StepperMotor

Initialize()

Initialize the MotorWings

Declaration
public void Initialize()