STM32输出PWM波控制电机转速,红外循迹避障智能车+L298N的详细使用手册、接线方法及工作原理,有代码

L298N介绍 及PWM调速原理 阅读详情

智能循迹红外避障小车

本设计的完整的系统主要包括STM32单片机最小系统、L298n电机驱动,超声波 ,舵机 ,红外模块等。寻迹小车相信大家都已经耳熟能祥了。
我们在这里主要讲一下L298N驱动电机和单片机输出PWM控制电机转速。

本设计软件系统采用模块设计思想,采用C语言作为程序设计语言,通过KEI MDK完成程序设计,使用仿真器下载软件完成程序的烧录和在线调试。

1.采用C8T6开发板,这个板子我只能说性价比无敌。
在这里插入图片描述
STM32F103C8T6是一个中密度性能线,配有ARM Cortex-M3 32位微控制器,48路LQFP封装.它结合了高性能的RISC内核,运行频率可达72MHz,以及高速内嵌存储器,增强范围的强化输入/输出和外部连接至两个APB总线.STM32F103C8T6具有12位模数转换器,4个计时器,3个串口等等。
2.电机驱动模块,当时看有人用这个 我也买了。后来很多人反映以及我在使用过程中,发现L298N不算是那么好用。
在这里插入图片描述
L298N我也只是在这个简单的小车上用一下这个模块,做别的一般不推荐这个,推荐TB6612等。对于L298N的讲解此网站上有很多 我只能说讲的好的每一个,我初次找L298N的资料时,真的被搞的迷迷糊糊,怎么说的都有,服了。我再次为大家讲解明白。
L298N双通道输出,输出A与输出B
供电方式 :12V供电,左下角三个接口,最左边为12V输入,中间为GND引脚,右边是5v输出(要将上面跳线帽连接)
如果输入大于12v要将上面跳线帽拔掉!!!
通道输出:
1.不考虑电机调速:使能ENA、ENB置于高电平,直接对N1、N2、N3、N4接入高低电平
(电机以最快速度转动)---------------------------------没办法调整左右轮速度
2.考虑电机调速:ENA和ENB接单片机的PWM波输出引脚!别被其他文章搞混了。
IN1,IN2,IN3,IN4按章上面的接法控制方向。就这么简单。别好多人讲的迷迷糊糊。
在这里插入图片描述
在这里插入图片描述
这里采用这种简单的减速小马达减速比好像是1:48,童年回忆哈哈哈哈。
bsp_pwm.c

#include "bsp_pwm.h"
//PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数
//TIM1_PWM_Init(7199,0);//PWM频率=72000/(7199+1)=10Khz
void TIM1_PWM_Init(u16 arr,u16 psc)
{
   
     
	GPIO_InitTypeDef GPIO_InitStructure;
	TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure; //时基单元配置
	TIM_OCInitTypeDef  TIM_OCInitStructure;    //tim定时器输出模式结构体
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);// 
 	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);  //使能GPIO外设时钟使能
   //设置该引脚为复用输出功能,输出TIM1 CH1 CH4的PWM脉冲波形
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_11; //TIM_CH1 //TIM_CH4
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	
	TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值	 
	TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值  不分频
	TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim
	TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式
	TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参
循迹小车项目 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、选用的硬件二、程序电机控制代码循迹方案5路数字量循迹方案5路数字量循迹原理5路数字量循迹检测2路模拟量循迹检测:一2路灰度循迹检测2路模拟量循迹方案:二处理获取值PID算法控制速度算法中断函数处理数据中断函数处理程序总结 前言 Arduino程序简单,很多函数都封装好了,IDE设计也足够合理,非常适合新手入门Arduino,下面就用一个Arduino实现循迹小车。内容包括两路模拟量循迹小车,数字量循迹小车,PID控制。 阅读详情

相关推荐

从零到一:智能车循迹避障项目全流程解析与PID调试实战

嵌入式系统通过集成微控制器、传感器与执行器,实现对物理世界的感知与控制,其核心价值在于构建自主运行的智能设备。闭环控制是确保系统稳定、精准执行任务的关键原理,其中PID算法因其结构简单、鲁棒性强,成为工业与机器人领域广泛采用的核心控制技术。在智能车、无人机等移动机器人应用场景中,PID算法通过实时计算传感器反馈与目标值的偏差,动态调整电机输出,从而实现精准的循迹、定速或姿态平衡。本文聚焦于智能车项目,详细阐述了如何基于STM32单片机,结合红外与超声波传感器,并运用PID控制算法,实现小车的自动循迹与避障功

weixin_33747129的博客 371

STM32循迹避障小车实战(上):从架构规划到硬件组装调试

嵌入式系统开发中,感知、决策与执行是机器人项目的核心链路。循迹避障小车作为经典工程实践,融合了传感器数据采集、电机驱动控制和嵌入式主控调度等多类技术。理解红外反射式传感器TCRT5000和超声波测距模块HC-SR04的工作原理,掌握TB6612电机驱动的电平匹配与PWM调速机制,对于构建稳定的小车运动控制系统至关重要。通过合理规划STM32F103C8T6的GPIO资源和供电架构,可以有效避免电平不稳、引脚冲突等常见问题。这类硬件选型与底层架构设计能力,不仅适用于智能车竞赛,也为后续拓展蓝牙遥控、OLED显

weixin_34178244的博客 327

STM32控制编码器电机的L298N电机驱动

它们提供了高精度的位置和速度反馈,使得电机能够实现精确的运动控制。L298N还具有电流检测功能,可以监测电机的电流消耗,以便实现过载保护。通过以上的代码和连接方式,我们可以使用STM32和L298N电机驱动器来控制编码器电机。根据实际需求,你可以根据代码进行修改和扩展,以实现更复杂的运动控制功能。函数中,我们首先进行STM32的初始化和电机的引脚初始化。然后,我们设置电机的方向为正向,并设置速度为50%。最后,进入主循环,可以在循环中添加其他控制逻辑。表示方向,1和2表示正向,3和4表示反向。

QoyOle的博客 1226

STM32红外循迹避障小车实战:从硬件选型到代码调参全攻略

在嵌入式系统开发中,GPIO控制、PWM调速、传感器采样与状态机设计是构成智能控制应用的基础能力。STM32作为广泛应用的32位单片机平台,凭借丰富的外设资源和成熟的HAL库生态,成为学习电机驱动、数字信号输入输出以及实时控制逻辑的理想载体。以智能小车为实践对象,通过红外循迹模块检测路径信息,利用超声波传感器感知前方障碍,结合PWM精确调节左右轮速差,能够实现稳定的自主循迹与动态避障功能。这类项目不仅覆盖了嵌入式开发的核心技术链路,还能有效训练从硬件接线、CubeMX工程配置到代码调试的完整工程能力。本文从

weixin_29172963的博客 265

STM32智能小车四合一功能实现:红外避障/循迹/跟随/超声波避障

嵌入式系统开发中,STM32以高性能和丰富外设成为智能小车等移动机器人的首选主控。针对红外避障、循迹、跟随与超声波避障四种常见功能,开发者常面临代码混乱、调参困难等挑战。红外传感器利用反射信号的有无实现数字电平检测,适用于避障与循迹;超声波模块通过声波往返时间计算距离,可实现更精细的运动决策。基于库函数的模块化设计,既能降低寄存器操作的开发门槛,又便于功能扩展与维护。从GPIO电平采集到定时器PWM调速,再到状态机与滞回控制策略,以STM32F103为例,系统讲解四种功能的硬件接线、源码架构及实测调试经验,

weixin_33910191的博客 246

STM32循迹避障小车从零实战:硬件选型、电机驱动与调试避坑

嵌入式开发中,GPIO、PWM和外部中断是控制外设的基础技术。通过定时器产生PWM波实现电机调速,利用GPIO读取红外传感器状态进行循迹,结合超声波模块测距完成避障,是典型的闭环控制应用。这类技术广泛用于智能小车、机器人运动控制等场景。本文以STM32C8T6最小系统板为例,详细讲解循迹避障小车的硬件选型、TB6612电机驱动、PWM调速、传感器状态机及常见调试问题,帮助初学者快速掌握嵌入式系统综合设计。

weixin_29189363的博客 200

STM32循迹小车制作全解析:从选型到调试的实战经验

在嵌入式控制入门与智能车竞赛中,循迹小车是一个极佳的综合实践项目。其核心原理是通过红外传感器阵列采集赛道上的黑白灰度信息,交由主控芯片判断车辆偏移量,再利用PWM脉宽调制技术控制左右电机差速,从而实现自主循迹。STM32F103系列芯片凭借丰富的外设资源与成熟的开发生态,成为该场景的主流选择。掌握GPIO配置、定时器PWM输出、传感器校准与电机驱动调试,不仅能够搭建一辆稳定的小车,更可深入理解实时控制系统的软硬件协同逻辑。从基础的阈值判断到比例-微分控制,从小车底盘搭建到蓝牙与避障功能扩展,这类项目覆盖了从

weixin_34026276的博客 326

STM32F103ZET6循迹小车实战:从PWM调速到PID闭环的完整避坑指南

在嵌入式入门与智能车竞赛中,STM32凭借Cortex-M3内核、丰富定时器与多路通信接口,成为替代51单片机进行工程实践的主流选择。本文从红外反射原理切入,讲解TCRT5000循迹模块如何通过比较器输出数字电平,并深入剖析定时器PWM调速机制及TIM3引脚重映射的配置细节。同时结合L298N电机驱动与独立供电系统,说明硬件接线与地线处理对系统稳定性的关键影响。在此基础上,通过对查表法与PID闭环控制策略的对比,展示从阈值分区到连续偏差调节的技术演进路径。文章以STM32F103ZET6循迹小车为载体,涵盖

weixin_34081595的博客 538

STM32F103C8T6智能小车实战:HAL库手工建工程与PWM控制

嵌入式开发中,微控制器(MCU)是系统核心,而STM32系列凭借丰富的外设资源和成熟的生态,成为入门学习的主流选择。理解定时器、PWM、中断等底层机制,是掌握嵌入式控制技术的基石。通过实际项目驱动学习,能有效串联传感器采集、数据处理与执行器控制的完整链路。本文以STM32F103C8T6最小系统板搭建智能小车为例,基于HAL库手工创建工程,详细讲解TIM1输出PWM驱动电机、循迹避障逻辑、OLED显示以及调试技巧。从硬件选型到软件架构,完整呈现一个嵌入式小项目的落地过程,适合希望深入理解底层原理的开发者参考

weixin_31858171的博客 253

STM32智能小车仿真:从Proteus建模到PID控制全流程解析

嵌入式系统开发中,仿真技术是验证硬件设计与控制算法的关键环节,它能有效降低开发成本与风险。其核心原理在于通过软件模拟微控制器、传感器、执行器等硬件行为,构建一个虚拟的闭环测试环境。在工程实践中,仿真技术对于PID控制算法调试、传感器模型验证具有极高价值,尤其适用于智能小车、机器人等移动平台的早期开发。本文以STM32循迹避障小车为例,详细阐述如何在Proteus中搭建包含五路循迹传感器、超声波避障及电机驱动的完整仿真模型,并重点解析PID调速算法的参数整定与可视化调试方法,为从仿真平滑迁移至实物部署提供了一

weixin_29190573的博客 241

51单片机循迹小车实战:从硬件选型到PWM调速与调试指南

在嵌入式系统入门与机器人实践项目中,单片机作为核心控制单元,承担着感知输入、逻辑决策与执行输出的关键角色。红外传感器通过检测地面反射差异识别路径信息,电机驱动模块则将控制信号转化为机械运动,这一过程构成了典型的闭环反馈系统。PWM调速技术用于精细控制电机转速,是保证小车稳定循迹的重要基础。从GPIO读写、定时器中断到差速转向算法,整个项目覆盖了单片机开发的多个核心知识点。此类综合实践广泛应用于电子竞赛、毕业设计及智能车入门教学,帮助学习者建立从原理图到实物的完整工程思维。通过合理选择主控芯片、优化传感器布局

weixin_29168813的博客 239

基于stm32库3.5的小车红外避障程序

基于stm32库3.5的小车红外避障程序

stm32f103c8t6智能小车测速、按键调速、红外避障实验程序源代码.rar

该程序源代码用于stm32f103c8t6智能小车测速+按键调速+红外避障实验。 1、源代码开发软件:KEIL4; 2、程序对应处理器是:STM32F103C8T6; 3、智能小车电机驱动芯片是:L293D; 4、智能小车电机为:TT直流减速电机; 5、需要用到测速模块; 6、需要用到OLED液晶; 7、需要用到红外避障模块; 该程序源代码在本人stm32f103c8t6智能小车上亲测可用。

智能车实战——从ADC采集到PWM控制,让电磁车精准循迹

本文详细介绍了电磁循迹智能车的实现原理与实战技巧,涵盖从ADC信号采集、PWM控制到PID算法整定的全流程。通过STM32代码示例解析电感信号处理、差比和偏差计算及电机驱动等关键技术,帮助开发者快速掌握智能车精准循迹的核心方法,提升电磁车竞赛项目的开发效率。

weixin_29192211的博客 301

Cisco Packet Tracer 9.0 工业网络模拟:3步配置OT协议与Purdue模型实战

本文详细介绍了如何使用Cisco Packet Tracer 9.0进行工业网络模拟,包括Purdue模型构建、三大OT协议(Modbus TCP/IP、CIP、PROFINET IO)配置及工业网络安全防护。通过实战演练,读者可掌握工业网络设计、配置与安全防护的核心技能,适用于智能制造和能源管理等场景。

weixin_28691741的博客 351

携程旅行网景区,评论数据爬虫项目数据库保存附源码

这是一个专门用于爬取某旅行网景区评论数据的Python爬虫项目。项目采用模块化设计,支持MySQL数据库存储,具备完整的异常处理机制和反爬虫策略。

ymqzhy的博客 2568

【Excel VBA 编程】批量核对两张表格数据,行和列显示顺序均被打乱

利用数据字典在 Excel 中进行表格数据的核对,该表格含有多行多列,并且行和列顺序是打乱的,批量核对数据后将差异输出

wei1019的专栏 1291

VS Code + Codex 在 WSL 中使用的正确姿势

Codex 登录只能在本地完成。文件仍可通过 UNC 路径访问 WSL → 本地 Codex 就能照常工作。避免在 WSL 内重复安装/登录 Codex 扩展。

yangguangwuyue的博客 9816

【AI智能体】Codex 生成高质量电商套图实战操作详解

Codex 生成高质量电商套图实战操作详解

congge 4511

单片机:实现MPU6050的卡尔曼滤波算法(附完整源码)

单片机:实现MPU6050的卡尔曼滤波算法(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 796

【入门AUTOSAR网络管理测试】RSS-PBM状态转换

随着智能电动汽车行业的快速发展,目前AUTOSAR网络管理也得到了广泛应用,AUTOSAR网络管理测试也是汽车网络测试中非常重要的环节,NM问题导致的汽车ECU不能唤醒、电瓶亏电等问题,对于新入门AUTOSAR网络管理测试的同学不清楚如何开展测试,那么本章节就主要给大家介绍网络管理中RSS-PBM状态转换如何测试。【入门AUTOSAR网络管理测试】AUTOSAR网络管理规范需求解读。

测试领域技术分享 869

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: STM32使用ST-Link下载器下载正确操作方式以及ST-LINK下载失败“target dll has been cancelled”等错误
下一篇: STM32外设之TIM定时器使用及输出比较模式PWM生成,PWM频率和占空比计算,文末有固件库TIM驱动文件的函数讲解
Execution_
博客等级 码龄5年 1605粉丝 47原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值