【嵌入式设计开发】基于STM32 HD01双H桥高功率C车模车驱动板 程序设计
生活随笔
收集整理的這篇文章主要介紹了
【嵌入式设计开发】基于STM32 HD01双H桥高功率C车模车驱动板 程序设计
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
HD01高功率驅(qū)動(dòng)高速小車
- HD01雙H橋高功率賽車驅(qū)動(dòng)板
- 驅(qū)動(dòng)參數(shù)
- 引腳分配
- 引腳性能
- STM32驅(qū)動(dòng)代碼
- 初始化代碼
- 電機(jī)控制代碼
- 控制頻率參數(shù)
HD01雙H橋高功率賽車驅(qū)動(dòng)板
HD01高功率驅(qū)動(dòng)高速小車
- 高功率驅(qū)動(dòng)板主要提供車的速度
- 雖然方向上有些偏差,但后續(xù)可以通過 硬件加編碼器 軟件PID算法解決小車差速問題
驅(qū)動(dòng)參數(shù)
先看看我們驅(qū)動(dòng)的參數(shù)
一般情況下驅(qū)動(dòng)電流決定了小車的速度
驅(qū)動(dòng)17A 完全碾壓L298N
這里推薦新手如果不是缺錢的話 最好買一個(gè)好點(diǎn)車模 和驅(qū)動(dòng)
引腳分配
然后我們看他的操作引腳
引腳性能
-
VM GND M+ M- 這個(gè)沒什么好說的
-
DIR控制方向
-
SLP控制開關(guān)
-
PWM控制速度
-
而FLP CS 作為檢測(cè)
-
可以用讀取IO口作為FLP的狀態(tài)讀取 就和按鍵差不多
-
用ADC采集樣本
-
首先我們分配引腳
STM32驅(qū)動(dòng)代碼
- 然后我們根據(jù)我們要寫的功能寫一個(gè)基本控制的初始化
初始化代碼
#include "motor_control.h" #include "led.h"uint16_t PrescalerValue = 0; //20msvoid 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 ?áè?1ê?? PB5GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB ,&GPIO_InitStructure); GPIO_ResetBits(GPIOB,GPIO_Pin_7); //PB7 CS μ??12a?ùGPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_SetBits(GPIOB,GPIO_Pin_3); //PB3 SLP ??μ???′ò?a GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_SetBits(GPIOC,GPIO_Pin_10); //PC10 DIR ??μ???′ó?yμ??oêy /* System Clocks Configuration *//* TIM3 clock enable */RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);/* GPIOA and GPIOB clock enable */RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);/* GPIOA and GPIOB clock enable */RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);/* GPIO Configuration *//*GPIOB Configuration: TIM3 channel1, 2, 3 and 4 */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure); }電機(jī)控制代碼
然后再編寫一下PWM模塊 PWM有兩組 一組是舵機(jī)控制
采用的20ms 周期
一種是電機(jī)控制 他們推薦我們使用的20KHZ
控制頻率參數(shù)
代碼如下
總結(jié)
以上是生活随笔為你收集整理的【嵌入式设计开发】基于STM32 HD01双H桥高功率C车模车驱动板 程序设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 很简单的在Ubuntu系统下安装字体和切
- 下一篇: umi 路由