private void ConfigureChannels(StepperMotorIndex motorIndex) { switch (motorIndex) { case StepperMotorIndex.SM1: channels.AIn1 = 10; channels.AIn2 = 9; channels.BIn1 = 11; channels.BIn2 = 12; channels.PwmA = 8; channels.PwmB = 13; break; case StepperMotorIndex.SM2: channels.AIn1 = 4; channels.AIn2 = 3; channels.BIn1 = 5; channels.BIn2 = 6; channels.PwmA = 2; channels.PwmB = 7; break; } }
public void MakeStep(StepperMotorIndex motorIndex, MotorDirection direction, SteppingMode steppingMode = SteppingMode.FullSteps) { ConfigureChannels(motorIndex); UpdateCurrentStep(direction); UpdateChannels(steppingMode); }
public void Move(StepperMotorIndex motorIndex, MotorDirection direction, uint steps, SteppingMode steppingMode = SteppingMode.FullSteps) { var msDelay = RpmToMsDelay(Rpm, steppingMode); steps = GetTotalStepCount(steppingMode, steps); for (uint i = 0; i < steps; i++) { MakeStep(motorIndex, direction, steppingMode); Task.Delay(msDelay).Wait(); } }
public void MoveWithSpeedAdjustment(StepperMotorIndex motorIndex, MotorDirection direction, uint steps, SteppingMode steppingMode = SteppingMode.FullSteps) { steps = GetTotalStepCount(steppingMode, steps); var speedRamp = SpeedRampHelper.GenerateTrapezoidalRamp(steps); for (uint i = 0; i < steps; i++) { MakeStep(motorIndex, direction, steppingMode); var msAutoDelay = RpmToMsDelay(speedRamp[i], steppingMode); Task.Delay(msAutoDelay).Wait(); } }
private void StepperMotorTest(StepperMotorIndex motorIndex, SteppingMode steppingMode = SteppingMode.FullSteps) { if (stepperMotor.IsInitialized) { // Configure steps, and RPM const uint steps = 200; const byte rpm = 20; // Set speed stepperMotor.SetSpeed(rpm); // Move motor forward stepperMotor.Move(motorIndex, MotorDirection.Forward, steps, steppingMode); //stepperMotor.MoveWithSpeedAdjustment(motorIndex, MotorDirection.Forward, steps, steppingMode); // ... and go back to initial position stepperMotor.Move(motorIndex, MotorDirection.Backward, steps, steppingMode); //stepperMotor.MoveWithSpeedAdjustment(motorIndex, MotorDirection.Backward, steps, steppingMode); } }