|
| 1 | +# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries |
| 2 | +# SPDX-License-Identifier: MIT |
| 3 | + |
| 4 | +# This example uses an L9110 H-bridge driver to run a DC Motor using two PWM pins. |
| 5 | +# https://www.adafruit.com/product/4489 |
| 6 | + |
| 7 | +# Hardware setup: |
| 8 | +# DC motor via L9110 H-bridge driver on two PWM pins that are on their own channels |
| 9 | +# e.g., RP2040 Pico pins GP28, GP27 |
| 10 | + |
| 11 | +import time |
| 12 | +import board |
| 13 | +import pwmio |
| 14 | +from adafruit_motor import motor |
| 15 | + |
| 16 | +PWM_PIN_A = board.GP28 # pick any pwm pins on their own channels |
| 17 | +PWM_PIN_B = board.GP27 |
| 18 | + |
| 19 | +# DC motor setup |
| 20 | +# DC Motors generate electrical noise when running that can reset the microcontroller in extreme |
| 21 | +# cases. A capacitor can be used to help prevent this. |
| 22 | +pwm_a = pwmio.PWMOut(PWM_PIN_A, frequency=50) |
| 23 | +pwm_b = pwmio.PWMOut(PWM_PIN_B, frequency=50) |
| 24 | +motor1 = motor.DCMotor(pwm_a, pwm_b) |
| 25 | + |
| 26 | +print("***DC motor test***") |
| 27 | + |
| 28 | +print("\nForwards slow") |
| 29 | +motor1.throttle = 0.5 |
| 30 | +print(" throttle:", motor1.throttle) |
| 31 | +time.sleep(1) |
| 32 | + |
| 33 | +print("\nStop") |
| 34 | +motor1.throttle = 0 |
| 35 | +print(" throttle:", motor1.throttle) |
| 36 | +time.sleep(1) |
| 37 | + |
| 38 | +print("\nForwards") |
| 39 | +motor1.throttle = 1.0 |
| 40 | +print(" throttle:", motor1.throttle) |
| 41 | +time.sleep(1) |
| 42 | + |
| 43 | +print("\nStop") |
| 44 | +motor1.throttle = 0 |
| 45 | +print("throttle:", motor1.throttle) |
| 46 | +time.sleep(1) |
| 47 | + |
| 48 | +print("\nBackwards") |
| 49 | +motor1.throttle = -1.0 |
| 50 | +print(" throttle:", motor1.throttle) |
| 51 | +time.sleep(1) |
| 52 | + |
| 53 | +print("\nStop") |
| 54 | +motor1.throttle = 0 |
| 55 | +print("throttle:", motor1.throttle) |
| 56 | +time.sleep(1) |
| 57 | + |
| 58 | +print("\nBackwards slow") |
| 59 | +motor1.throttle = -0.5 |
| 60 | +print(" throttle:", motor1.throttle) |
| 61 | +time.sleep(1) |
| 62 | + |
| 63 | +print("\nStop") |
| 64 | +motor1.throttle = 0 |
| 65 | +print(" throttle:", motor1.throttle) |
| 66 | +time.sleep(1) |
| 67 | + |
| 68 | +print("\nSpin freely") |
| 69 | +motor1.throttle = None |
| 70 | +print(" throttle:", motor1.throttle) |
| 71 | + |
| 72 | +print("\n***Motor test is complete***") |
0 commit comments