HD01双H桥高功率赛车驱动板
HD01高功率驱动高速小车
高功率驱动板主要提供车的速度
虽然方向上有些偏差,但后续可以通过 硬件加编码器 软件PID算法解决小车差速问题
驱动参数
先看看我们驱动的参数
一般情况下驱动电流决定了小车的速度
驱动17A 完全碾压L298N
这里推荐新手如果不是缺钱的话 最好买一个好点车模 和驱动
引脚分配
然后我们看他的操作引脚
引脚性能
-
VM GND M+ M- 这个没什么好说的
-
DIR控制方向
-
SLP控制开关
-
PWM控制速度
-
而FLP CS 作为检测
-
可以用读取IO口作为FLP的状态读取 就和按键差不多
-
用ADC采集样本
-
首先我们分配引脚
STM32驱动代码
- 然后我们根据我们要写的功能写一个基本控制的初始化
初始化代码
#include "motor_control.h"
#include "led.h"
uint16_t PrescalerValue = 0; //20ms
void Montor_Init(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
/* GPIOA and GPIOB clock enable */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_5)==0)LED_warning(); //ELT ¶ÁÈ¡¹ÊÕÏ PB5
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;