first commit

This commit is contained in:
pandacraft 2025-03-21 16:04:17 +01:00
commit a5a0434432
1126 changed files with 439481 additions and 0 deletions

View file

@ -0,0 +1,61 @@
using System;
using Windows.Devices.I2c;
namespace GrovePi.I2CDevices
{
public interface IMiniMotorDriver
{
IMiniMotorDriver drive1(int Speed);
IMiniMotorDriver drive2(int Speed);
//IMiniMotorDriver getFault();
}
internal sealed class MiniMotorDriver : IMiniMotorDriver
{
internal MiniMotorDriver(I2cDevice Motor1Device, I2cDevice Motor2Device)
{
if (Motor1Device == null) throw new ArgumentNullException(nameof(Motor1Device));
motor1DirectAccess = Motor1Device;
if (Motor2Device == null) throw new ArgumentNullException(nameof(Motor2Device));
motor2DirectAccess = Motor2Device;
}
~MiniMotorDriver()
{
this.drive1(0);
this.drive2(0);
}
internal I2cDevice motor1DirectAccess { get; }
internal I2cDevice motor2DirectAccess { get; }
public IMiniMotorDriver drive1(int Speed)
{
byte regValue = 0x80;
motor1DirectAccess.Write(new byte[] { 0x1, regValue });
regValue = (byte)Math.Abs(Speed);
if (regValue > 63) regValue = 63;
regValue = (byte)(regValue * 4);
if (Speed < 0) regValue |= 0x01;
else regValue |= 0x02;
motor1DirectAccess.Write(new byte[] { 0x00, regValue});
return this;
}
public IMiniMotorDriver drive2(int Speed)
{
byte regValue = 0x80;
motor2DirectAccess.Write(new byte[] { 0x1, regValue });
regValue = (byte)Math.Abs(Speed);
if (regValue > 63) regValue = 63;
regValue = (byte)(regValue * 4);
if (Speed < 0) regValue |= 0x01;
else regValue |= 0x02;
motor2DirectAccess.Write(new byte[] { 0x00, regValue });
return this;
}
}
}