STM32CubeIDE自平衡小车教程5.直流电机转速开环控制

本文主要是介绍STM32CubeIDE自平衡小车教程5.直流电机转速开环控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.打开上一节的文件,进入我们上一小节修改过的文件夹,找到并打开.cproject 文件,双击.ioc 文件,双击打开工程。

2.在左侧 Pinout&Configuration 界面中的 Timers 下拉中点击TIM2,然后在TIM2 Mode and Configuration Mode中将Channel3 选择为 PWM Generation CH3;将Channel4 选择为 PWM Generation CH4

3.在下方的参数设置选项卡中将 Prescaler 设为 72,即预分频系数(TIMx_PSC)设为 72Counter Period 设为 100,即计数周期(自动加载值 TIMx_ARR)设为 100Pulse 设为 100,即占空比设置为 100%

4.在右侧界面的芯片中分别点击 PB12PB13PB14PB15,并将其配置为 GPIO_Output

5. System Core 下拉菜单中选择 GPIO,然后在左侧的System Core 下拉菜单中选择 GPIO,然后在 GPIO Mode and Configuration 中对 PB12PB13PB14PB15 引脚进行配置。

 

6. GPIO output level代表 GPIO 默认输出电平,在这里设置为低电平;GPIO mode 代表 GPIO 引脚模式,在这里设置为推挽输出;GPIO Pull-up/Pull-down GPIO 上拉或下拉,在这里设置为既不上拉也不下拉;Maximum output speed 最大输出速度,在这里设置为低速。(默认设置即可)

User Label 即用户标签,在这里将PB12 改为 BIN2PB13 改为 BIN1; PB14 改为 AIN1PB15 改成AIN2

7.点击生成代码,打开工程左侧 gpio.c 源文件,双击打开,可以看到HAL_GPIO_Init() 函数里面已经有BIN1_Pin|BIN2_Pin 的相关初始化代码。

8.在  /* USER CODE BEGIN 2 */ 和   /* USER CODE END 2 */ 中加入以下代码

  HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_3);//开启 TIM2_CH3 的 PWM 输出HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_4);//开启 TIM2_CH4 的 PWM 输出HAL_GPIO_WritePin(BIN1_GPIO_Port, BIN1_Pin, GPIO_PIN_SET);//初始化BIN1引脚为低电平(左 轮)HAL_GPIO_WritePin(BIN2_GPIO_Port, BIN2_Pin, GPIO_PIN_RESET);//初始化 BIN2 引脚为高电平(左轮)HAL_GPIO_WritePin(AIN1_GPIO_Port, AIN1_Pin, GPIO_PIN_SET);//初始化 AIN1 引脚为低电平(右轮)HAL_GPIO_WritePin(AIN2_GPIO_Port, AIN2_Pin, GPIO_PIN_RESET);//初始化 AIN2 引脚为高电平(右轮)__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_3, 100);//控制小车转速(右轮)__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 100);//控制小车转速(左轮)

其中 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 100)里的100是用来控制PWM占空比的大小的。在配置IOC文件时,我们设置的最大PWM值为100,如果需要调整转速,可以设置0~100的PWM数值来控制车轮转速。

 9.点击编译烧录,开启小车电源开关,完成转速的开环控制。

STM32CubeIDE直流电机转速开环控制效果展示

这篇关于STM32CubeIDE自平衡小车教程5.直流电机转速开环控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/178131

相关文章

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.