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.1 For STM32

stm32f103c8t6

1. Preparation

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

stm32f103c8t6接线图

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
#include "stm32f10x.h"
#include "delay.h"
#include "gpio.h"
#include "moto.h"
#include "pwm.h"
#include "adc.h"
#include "usart.h"
#include "encoder.h"
 
int main(void)
 {  
     u16 encoder_A,encoder_B;
     int Velocity_PWM1,Velocity_PWM2;
     u16 adcx;
     float vcc;
   SystemInit(); //Configure the system clock as 72Mhz
   delay_init();    //Delay function initialization
   uart_init(9600);     //Serial port initialization
     
   adc_Init();              //ADC1 initialization 
     
   PWM_Int(7199,0);      //Initialize pwm output72000 000 /7199+1=10000 
   Encoder_Init_Tim2();
   Encoder_Init_Tim4();
  while(1)
    {
//      moto(0);                //moto=0Forward rotation
//      moto(1);                //moto=1Reversal rotation

        adcx=Get_adc_Average(ADC_Channel_2,10);  //Get the value of ADC
        vcc=(float)adcx*(3.3*11/4096);           //Find the current voltage
        encoder_A=Read_Encoder(2);
        encoder_B=Read_Encoder(4);               //Read encoder value
        Velocity_PWM1=Velocity_A(encoder_A);
        Velocity_PWM2=Velocity_B(encoder_B);
        Set_PWM(Velocity_PWM1,Velocity_PWM2);
        printf("µ±Ç°µçѹ=%6.2f V  Encoder_A = %d  Encoder_B=%d\r\n",vcc,encoder_A,encoder_B);//Print the current working voltage and speed  
    }
 }


3.Experimental result

Write the code into the stm32 core board, the motor starts start to rotate.

Open the serial port software such as the serial port debugging assistant, set the baud rate to 9600, and you can see the current voltage value of the serial port output, and the speed of the encoded value of motor.

Introduction
For Arduino

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/中文