nanoFramework.Iot.Device.DCMotor
1.2.696
Prefix Reserved
dotnet add package nanoFramework.Iot.Device.DCMotor --version 1.2.696
NuGet\Install-Package nanoFramework.Iot.Device.DCMotor -Version 1.2.696
<PackageReference Include="nanoFramework.Iot.Device.DCMotor" Version="1.2.696" />
paket add nanoFramework.Iot.Device.DCMotor --version 1.2.696
#r "nuget: nanoFramework.Iot.Device.DCMotor, 1.2.696"
// Install nanoFramework.Iot.Device.DCMotor as a Cake Addin #addin nuget:?package=nanoFramework.Iot.Device.DCMotor&version=1.2.696 // Install nanoFramework.Iot.Device.DCMotor as a Cake Tool #tool nuget:?package=nanoFramework.Iot.Device.DCMotor&version=1.2.696
DC Motor Controller
This is a generic class to control any DC motor.
DC motors are controlled by simply providing voltage on the inputs (inverted voltage inverts the direction).
DC motors can be controlled with 1, 2 or 3 pins. Please refer to the sample to see how to connect it.
Never connect DC motor directly to your board, instead use i.e. H-bridge
3- vs 1/2-pin mode
2/1-pin mode should be used only if H-bridge allows the inputs to be changed frequently otherwise excessive heat or damage may occur which may reduce life-time of the H-bridge. It may also cause increased energy consumption due to energy being converted into heat.
Usage
See full sample for more details.
static void Main(string[] args)
{
const double Period = 10.0;
Stopwatch sw = Stopwatch.StartNew();
// 1 pin mode
// using (DCMotor motor = DCMotor.Create(6))
// using (DCMotor motor = DCMotor.Create(PwmChannel.Create(0, 0, frequency: 50)))
// 2 pin mode
// using (DCMotor motor = DCMotor.Create(27, 22))
// using (DCMotor motor = DCMotor.Create(new SoftwarePwmChannel(27, frequency: 50), 22))
// 2 pin mode with BiDirectional Pin
// using (DCMotor motor = DCMotor.Create(19, 26, null, true, true))
// using (DCMotor motor = DCMotor.Create(PwmChannel.Create(0, 1, 100, 0.0), 26, null, true, true))
// 3 pin mode
// using (DCMotor motor = DCMotor.Create(PwmChannel.Create(0, 0, frequency: 50), 23, 24))
// Start Stop mode - wrapper with additional methods to disable/enable output regardless of the Speed value
// using (DCMotorWithStartStop motor = new DCMotorWithStartStop(DCMotor.Create( _any version above_ )))
using (DCMotor motor = DCMotor.Create(6, 27, 22))
{
bool done = false;
string lastSpeedDisp = null;
while (!done)
{
double time = sw.ElapsedMilliseconds / 1000.0;
// Note: range is from -1 .. 1 (for 1 pin setup 0 .. 1)
motor.Speed = Math.Sin(2.0 * Math.PI * time / Period);
string disp = $"Speed = {motor.Speed:0.00}";
if (disp != lastSpeedDisp)
{
lastSpeedDisp = disp;
Debug.WriteLine(disp);
}
Thread.Sleep(1);
}
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net is compatible. |
-
- nanoFramework.CoreLibrary (>= 1.15.5)
- nanoFramework.Runtime.Events (>= 1.11.18)
- nanoFramework.System.Device.Gpio (>= 1.1.41)
- nanoFramework.System.Device.Pwm (>= 1.1.10)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on nanoFramework.Iot.Device.DCMotor:
Package | Downloads |
---|---|
nanoFramework.MagicBit
This package includes nanoFramework.MagicBit, a board package library for MagicBit in .NET nanoFramework C# projects. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.2.696 | 117 | 12/16/2024 |
1.2.673 | 162 | 10/23/2024 |
1.2.631 | 338 | 8/28/2024 |
1.2.570 | 463 | 6/14/2024 |
1.2.560 | 188 | 5/29/2024 |
1.2.548 | 220 | 5/15/2024 |
1.2.436 | 653 | 11/10/2023 |
1.2.329 | 1,234 | 5/26/2023 |
1.2.313 | 358 | 5/12/2023 |
1.2.297 | 313 | 5/3/2023 |
1.2.203 | 2,039 | 12/28/2022 |
1.2.141 | 2,635 | 10/25/2022 |
1.2.122 | 1,878 | 10/12/2022 |
1.2.114 | 985 | 10/8/2022 |
1.2.95 | 748 | 9/22/2022 |
1.2.87 | 1,110 | 9/15/2022 |
1.2.73 | 1,064 | 9/8/2022 |
1.1.113.2032 | 7,067 | 6/23/2022 |
1.1.58.10097 | 1,729 | 5/23/2022 |
1.1.3 | 559 | 4/15/2022 |
1.1.1 | 468 | 4/14/2022 |
1.0.300 | 484 | 3/31/2022 |
1.0.288-preview.114 | 140 | 3/25/2022 |
1.0.288-preview.113 | 122 | 3/25/2022 |
1.0.288-preview.100 | 139 | 3/19/2022 |
1.0.288-preview.99 | 131 | 3/18/2022 |
1.0.288-preview.98 | 121 | 3/18/2022 |
1.0.288-preview.94 | 150 | 3/15/2022 |
1.0.288-preview.93 | 123 | 3/15/2022 |
1.0.288-preview.86 | 146 | 3/8/2022 |
1.0.288-preview.65 | 158 | 2/18/2022 |
1.0.288-preview.48 | 181 | 2/4/2022 |
1.0.288-preview.42 | 147 | 1/31/2022 |
1.0.288-preview.41 | 140 | 1/31/2022 |
1.0.288-preview.29 | 144 | 1/28/2022 |
1.0.288-preview.22 | 143 | 1/27/2022 |
1.0.288-preview.20 | 136 | 1/27/2022 |
1.0.288-preview.19 | 148 | 1/27/2022 |
1.0.288-preview.18 | 138 | 1/27/2022 |
1.0.288-preview.5 | 151 | 1/24/2022 |
1.0.288-preview.3 | 134 | 1/21/2022 |
1.0.288-preview.1 | 132 | 1/21/2022 |
1.0.272 | 211 | 1/10/2022 |
1.0.263 | 305 | 12/24/2021 |
1.0.260 | 176 | 12/10/2021 |
1.0.259 | 182 | 12/9/2021 |
1.0.218 | 227 | 10/18/2021 |
1.0.183 | 200 | 9/22/2021 |