Skip to content

Commit 98563ab

Browse files
authored
Merge pull request #24 from siddacious/master
Revert "Merge pull request #23 from plamponi/pwm_freq"
2 parents a889448 + 1b438c9 commit 98563ab

File tree

3 files changed

+29
-56
lines changed

3 files changed

+29
-56
lines changed

adafruit_motor/stepper.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,17 +69,14 @@ class StepperMotor:
6969
:param ~pulseio.PWMOut bin2: `pulseio.PWMOut`-compatible output connected to the driver for
7070
the fourth coil (unipolar) or second input to second coil (bipolar).
7171
:param int microsteps: Number of microsteps between full steps. Must be at least 2 and even.
72-
73-
.. note:: The ``StepperMotor`` class requires PWM frequencies > 1500. Specify
74-
``frequency=1500`` or higher when instantiating the above ``PWMOut`` objects.
7572
"""
7673
def __init__(self, ain1, ain2, bin1, bin2, *, microsteps=16):
7774
self._coil = (ain2, bin1, ain1, bin2)
7875

79-
# reject unsafe (low) pwm freq
76+
# set a safe pwm freq for each output
8077
for i in range(4):
8178
if self._coil[i].frequency < 1500:
82-
raise ValueError("PWMOut: 'frequency' must be at least 1500")
79+
self._coil[i].frequency = 2000
8380

8481
self._current_microstep = 0
8582
if microsteps < 2:

examples/stepper_motor.py

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,39 @@
1-
# Run a Stepper Motor. Tested on ItsyBitsy M4 Express + DRV8833.
2-
# https://www.adafruit.com/product/3800
3-
# https://www.adafruit.com/product/3297
1+
# This example uses an Adafruit Stepper and DC Motor FeatherWing to run a Stepper Motor.
2+
# https://www.adafruit.com/product/2927
43

54
import time
65

7-
import board
8-
import pulseio
6+
from board import SCL, SDA
7+
import busio
8+
9+
# Import the PCA9685 module. Available in the bundle and here:
10+
# https://github.com/adafruit/Adafruit_CircuitPython_PCA9685
11+
from adafruit_pca9685 import PCA9685
12+
913
from adafruit_motor import stepper
1014

11-
AIn1 = pulseio.PWMOut(board.D9, frequency=1600)
12-
AIn2 = pulseio.PWMOut(board.D10, frequency=1600)
13-
BIn1 = pulseio.PWMOut(board.D11, frequency=1600)
14-
BIn2 = pulseio.PWMOut(board.D12, frequency=1600)
15+
i2c = busio.I2C(SCL, SDA)
16+
17+
# Create a simple PCA9685 class instance for the Motor FeatherWing's default address.
18+
pca = PCA9685(i2c, address=0x60)
19+
pca.frequency = 1600
1520

16-
stepper_motor = stepper.StepperMotor(AIn1, AIn2, BIn1, BIn2)
21+
# Motor 1 is channels 9 and 10 with 8 held high.
22+
# Motor 2 is channels 11 and 12 with 13 held high.
23+
# Motor 3 is channels 3 and 4 with 2 held high.
24+
# Motor 4 is channels 5 and 6 with 7 held high.
1725

18-
for i in range(1000):
26+
pca.channels[7].duty_cycle = 0xffff
27+
pca.channels[2].duty_cycle = 0xffff
28+
stepper_motor = stepper.StepperMotor(pca.channels[4], pca.channels[3], # Motor 3
29+
pca.channels[5], pca.channels[6]) # Motor 4
30+
31+
for i in range(100):
1932
stepper_motor.onestep()
2033
time.sleep(0.01)
2134

22-
for i in range(1000):
35+
for i in range(100):
2336
stepper_motor.onestep(direction=stepper.BACKWARD)
2437
time.sleep(0.01)
38+
39+
pca.deinit()

examples/stepper_motor_pca9685.py

Lines changed: 0 additions & 39 deletions
This file was deleted.

0 commit comments

Comments
 (0)