yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
AT8236 2-Channel Motor Driver Module📖
1.Introduction
  • Introduction
2.Tutorials
  • 2.1 For STM32
  • 2.2 For Arduino
  • 2.3 For RaspberryPi
  • 2.4 For RaspberryPi Pico
  • 2.5 For jetson nano
  • 2.6.1 For RDK X3-Lite Version
  • 2.6.2 For RDK X3-Standard Version
  • 2.7.For MSPM0G3507
  • 2.8.For MSPM0G3519new
Download
  • Code
  • SCH_Model
Download ZIP

Welcome to AT8236 2-Channel Motor Driver Module repository

2.3 For RaspberryPi

RaspberryPi

RaspberryPi

1. Preparation

Connect the motor drive board and Raspberry Pi according to the wiring diagram, connect the battery to the power input interface on motor drive module.

树莓派接线图

树莓派接线图

Note: The motor interface wire sequence of the dual motor drive board should correspond to the motor pin! Otherwise, the motor drive plate will be damaged.

Note: The motor interface wire sequence of the dual motor drive board.

image-20230215160150782

 

2. Code
​x
import RPi.GPIO as GPIO   #Import Library
import time

GPIO.setmode(GPIO.BCM)    #Set pin
AIN1 = 17
AIN2 = 18
BIN1 = 22
BIN2 = 23

GPIO.setwarnings(False)     #Remove warning
GPIO.setup(AIN1, GPIO.OUT)   #Pin set to output
p1 = GPIO.PWM(AIN1, 50)  #50 is the frequency of 50 Hz
p1.start(0)

GPIO.setup(AIN2, GPIO.OUT)
p2 = GPIO.PWM(AIN2, 50)
p2.start(0)

GPIO.setup(BIN1, GPIO.OUT)
p3 = GPIO.PWM(BIN1, 50)
p3.start(0)

GPIO.setup(BIN2, GPIO.OUT)
p4 = GPIO.PWM(BIN2, 50)
p4.start(0)

# The rotation speed of the motor can be changed by changing the value in the brackets. The value range is 0~100
def forward(time_sleep):   #Forward for a few seconds
    p1.start(0)
    p2.start(50)
    p3.start(0)
    p4.start(50)
    time.sleep(time_sleep)
    
def stop():  #Stop it
    p1.start(0)
    p2.start(0)
    p3.start(0)
    p4.start(0)    

spin_count = 0
spin_count2 = 0
E1A = 20     #Set pin
E1B = 21
E2A=26
E2B=27
GPIO.setmode(GPIO.BCM)
GPIO.setup(E1B, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(E1A, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(E2B, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(E2A, GPIO.IN, pull_up_down=GPIO.PUD_UP)


def my_callback(channel): #Callback function
    global spin_count
    if GPIO.input(E1A):
        if not GPIO.input(E1B):
            spin_count += 1
        elif GPIO.input(E1B):
            spin_count -= 1
    print(spin_count)
    
def my_callback2(channel):
    global spin_count2
    if GPIO.input(E2A):
   &
For Arduino
For RaspberryPi Pico

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文