Remarks

Sw18AB
Status Status badge: working
Source code GitHub
NuGet package NuGet Gallery for Meadow.Foundation.ICs.IOExpanders.SerialWombat

Code Example

private Sw18AB serialWombat;
private IDigitalOutputPort digitalOutputPort;
private IDigitalInputPort digitalInputPort;
public override Task Initialize()
{
    Resolver.Log.Info("Initialize...");

    try
    {
        serialWombat = new Sw18AB(Device.CreateI2cBus());
        digitalOutputPort = serialWombat.CreateDigitalOutputPort(serialWombat.Pins.WP0);
        digitalInputPort = serialWombat.CreateDigitalInputPort(serialWombat.Pins.WP1);
    }
    catch (Exception ex)
    {
        Resolver.Log.Error($"error: {ex.Message}");
    }

    return Task.CompletedTask;
}

public override async Task Run()
{
    Resolver.Log.Info("Running...");

    bool state = false;

    while (true)
    {
        Resolver.Log.Info($"WP0 = {(state ? "high" : "low")}");
        digitalOutputPort.State = state;
        Resolver.Log.Info($"WP1 = {(digitalInputPort.State ? "high" : "low")}");
        state = !state;

        await Task.Delay(1000);
    }
}

Sample project(s) available on GitHub

Wiring Example

To wire a Ds3502 to your Meadow board, connect the following:

Ds3502 Meadow Pin
GND GND
VCC 3V3
SCL D08 (SCL Pin)
SDA D07 (SDA Pin)
Characteristic Locus
Inheritance System.Object SerialWombatBase > Sw18AB
Implements IPwmOutputController IAnalogInputController
Inherited Members SerialWombatBase._address SerialWombatBase.SyncRoot SerialWombatBase.Logger SerialWombatBase.Pins SerialWombatBase.SendPacket(Span<Byte>, Span<Byte>) SerialWombatBase.Version SerialWombatBase.Info SerialWombatBase.Uuid SerialWombatBase.SendCommand(Span<Byte>) SerialWombatBase.ReadPublicData(SerialWombatBase.SwPin) SerialWombatBase.ReadPublicData(IPin) SerialWombatBase.ReadPublicData(Byte) SerialWombatBase.WritePublicData(SerialWombatBase.SwPin, UInt16) SerialWombatBase.WritePublicData(Byte, UInt16) SerialWombatBase.ReadFlash(SerialWombatBase.FlashRegister18) SerialWombatBase.ReadFlash(UInt32) SerialWombatBase.ConfigureOutputPin(Byte, Boolean, OutputType) SerialWombatBase.ConfigureInputPin(Byte, ResistorMode) SerialWombatBase.ConfigurePwm(Byte, Single, Boolean) SerialWombatBase.ConfigurePwmDutyCycle(Byte, Single) SerialWombatBase.ConfigurePwm(Byte, Frequency) SerialWombatBase.ConfigurePwm(Byte, UInt32) SerialWombatBase.ConfigureAnalogInput(Byte, UInt16, UInt16) SerialWombatBase.ConfigureUltrasonicSensor(IPin, IPin, Boolean) SerialWombatBase.ReadUltrasonicSensorPulses(IPin) SerialWombatBase.ManualTriggerUltrasonicSensor(IPin) SerialWombatBase.GetSupplyVoltage() SerialWombatBase.GetTemperature() SerialWombatBase.CreateDigitalOutputPort(IPin, Boolean, OutputType) SerialWombatBase.CreateDigitalInputPort(IPin, InterruptMode, ResistorMode) SerialWombatBase.CreateDigitalInputPort(IPin, InterruptMode, ResistorMode, TimeSpan, TimeSpan) SerialWombatBase.CreatePwmPort(IPin, Frequency, Single, Boolean) SerialWombatBase.CreateAnalogInputPort(IPin, Int32) SerialWombatBase.CreateAnalogInputPort(IPin, Int32, TimeSpan, Voltage) SerialWombatBase.CreateDistanceSensor(IPin, IPin) SerialWombatBase.CreateDistanceSensor(IPin, IPin, TimeSpan) SerialWombatBase.CreateServo(IPin)
Namespace Meadow.Foundation.ICs.IOExpanders
Assembly SerialWombat.dll

Syntax

public class Sw18AB : SerialWombatBase, IPwmOutputController, IAnalogInputController

Constructors

Sw18AB(II2cBus, SerialWombatBase.Address, Nullable<Logger>)

Creates a new Serial Wombat object

Declaration
public Sw18AB(II2cBus i2cBus, SerialWombatBase.Address address = default(SerialWombatBase.Address), Logger? logger = null)

Parameters

Type Name Description
II2cBus i2cBus

The I2C bus connected to the wombat

SerialWombatBase.Address address

The I2C address

System.Nullable<Logger> logger

Meadow logger (optional)