pwm调速流程图小车_智能循迹小车

本文介绍了智能循迹小车的制作过程,重点讲解了PWM调速和红外传感器在小车中的应用。通过80C51单片机控制L298N电机驱动模块,结合红外循迹探头和超声波测距模块,实现小车的自动循迹和避障功能。详细阐述了各个组件的工作原理,包括单片机主控、红外传感器、超声波测距和电机驱动,并提供了PWM调速的基本概念和程序设计思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

834eadd1d7f55d6155fedd2584740980.gif

今天我们来学习制作智能循迹小车

那么什么是智能小车呢?

智能小车作为现代的新发明,是以后的发展方向,它可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。智能小车能够实时显示时间、速度、里程,具有自动寻迹、寻光、避障功能,可程控行驶速度、准确定位停车,远程传输图像等功能。

a39f2eeadd2bf88d63d3de561b4b9438.png b8794c3a7d7006f4b99e16633ce50446.png 0302cad4e53cbc5f15780a974a5beadf.png ad55bd55d99fbf8de3cd8b87397039f9.gif

我们本次智能小车制作

主要是让小车实现根据黑线的路径进行循迹的功能

(避障功能可自由完成)

智能小车可以分成三个部分——传感器部分、控制器部分、执行器部分

    •  控制器部分:接收传感器部分传递过来的信号,并根据事前写入的决策系统(软件程序),来决定机器人对外部信号的反应,将控制信号发给执行器部分。好比人的大脑。

• 执行器部分:驱动机器人做出各种行为,包括发出各种信号(点亮发光二极管、发出声音)的部分,并且可以根据控制器部分的信号调整自己的状态。对机器人小车来说,最基本的就是轮子。这部分就好比人的四肢一样。

• 传感器部分:机器人用来读取各种外部信号的传感器,以及控制机器人行动的各种开关。好比人的眼睛、耳朵等感觉器官。

一智能循迹小车简介 ❂ 小车工作原理

本系统采用较为简单的设计方案,通过红外传感器循迹模块判断黑线的路径,然后由80C51单片机通过IO口控制L298N电机驱动模块改变两个直流电机的工作状态,最后实现循迹功能。

c63f156701123e4bd1eafab0b7662d5e.gif ❂ 系统构成——系统框图

57c3223dab06383ce51f0a056eabaf25.png

c63f156701123e4bd1eafab0b7662d5e.gif ❂系统构成——工作流程

第一阶段:接通电源,系统初始化,红外传感器收集路径信息,传输给单片机主控模块。

第二阶段:单片机主控模块对采集的信号进行处理和逻辑判断发出控制信号,传输给电机模块 

第三阶段:电机驱动模块执行单片机主控模块发来的指令,驱动电机运转。

第四阶段:智能小车自动循迹,根据黑线前进、左转、右转、后退 。                                     

二组件说明

1、单片机主控电路

本次小车制作用89C51单片机作为其主要控制器部分,接受由传感器传输来的信息,进行判断后将控制信号发送给执行部分。

控制器部分的制作即是制作一个51单片机最小系统。通过传感器部分和执行部分的连接,编写程序来判断接收到的信息然后做出响应。

a3a03ff635bc42bc1beafe9c0c77d96d.png

2、红外传感器模块

采用的是TCRT5000红外循迹探头传感器,检测发射距离:1mm~25mm适用。所以安装红外传感模块要尽量在此检测距离内。其上有三个引脚,分别是VCC、GND、OUT。VCC:连接电源正极;GND:连接电源负极;OUT:输出信号端口,与单片机IO口相连。

工作原理:传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,光敏三极管一直处于关断状态,此时模块的输出端为低电平(即输出0),指示二极管一直处于熄灭状态;被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,光敏三极管饱和,此时模块的输出端为高电平(即输出1),指示二极管被点亮

注意:由于各个厂家生产的红外传感器模块原理图不尽相同,高低电平逻辑也不相同。例如模块发射的光线被反射回并被模块识别到,即输出高电平信号,但是,不同厂家生产的可能输出低电平信号。因此红外传感器的工作模式需要自己甄别。

f23a3fb37198b0667fccf1f11a7ac8bc.png

3、超声波测距模块

采用HC-SR04,有四个引脚分别是VCC、GND、TRIG(控制开始测距)、ECHO(响应输出)

工作原理:

(1)通过TRIG触发测距,给至少10us的高电平信号;

(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;

(3)有信号返回,通过ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;

本模块使用方法:一个控制口(TRIG)发一个10US以上的高电平,就可以在接收口(ECHO)等待高电平输出。一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离。如此不断的周期测,即可以达到你移动测量的值。

554e6a08df49aeb3dbff9ca8a1dbff09.png

4、L298N电机驱动模块

采用光电耦合器件隔离单片机与L298N的控制电路,工艺精度高,性能可靠。L298N模块内部通过H桥电路实现直流电机的正转,反转,还可以通过单片机输出PWM控制使能端进而控制直流电机的转速,实现前进、后退、转弯。

主要参数:

电流-输出\通道:2A

电流-峰值输出:3A

电源电压:4.5~46V(一般采用12V供电)

工作温度:-25℃~130℃

工作原理及实物图:

通过改变逻辑输入端,输入高\低电平使直流电机工作状态发生改变。

105efcb36591eefa869f719f60f7c8b9.png

6bd222e90734e9a6c3f5aa7ffecb72cd.png

5、直流电机

电机有正负极,把电机的+和-分别接到电源的正极和负极,电机即可转动,如果要改变电机的转动方向,改变正负极即可。电机的转速我们可以理解为和外接的电压是正相关的。电源电压一般是已经确定了,因此如果我们要对电机进行调速,就需要用PWM波对电机进行调速。

4163f4021a5b538f5e4b70abbeb26aed.png

6、电源模块

电源建议采用两个18650电池给L298N电机模块供电,再通过L298N上的5V输出端口给单片机和传感器供电。

589ae281a705f3c9f468ab4e3525af3a.png

三PWM简介

什么是PWM:

PWM是脉冲宽度调制的简称,脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。

PWM产生过程:

利用51单片机的T0定时计数器,工作在预装载模式下。设置定时器定时中断时间(本次设计采用0.1ms)中断一次从而产生占空比可调的方波信号,即PWM信号。

(占空比是指在一个脉冲循环内,通电时间相对于总时间所占的比例。)

PWM调速原理:

通过输出PWM调节驱动电压脉冲宽度的方式,并与电路中一些相应的储能元件配合,改变了输送到电枢电压的幅值,从而达到改变直流电机转速的目的

PWM产生流程图

09d1408817a3456692e2dc751c591b83.gif

f2127824540eec0c476b50fc4a388e33.png

那么如何编写程序使51单片机产生PWM信号呢?

你们可以参考以下例程

PWM调速例程

void time0(void)interrupt 1   //中断程序
{
  i++;                        //调速在中断中执行
  j++;
  if(i<=Duty_left)
     ENA=1;
  else ENA=0; 
  if(i>100)
     {ENA=1;i=0;}
  if(j<=Duty_right)
     ENB=1;
  else ENB=0;
  if(j>100)
     {ENB=1;j=0;}
TH0=(65536-66)/256;       //取约150HZ,12M晶振,每次定时66us,分100次,这样开头定义的变量
TL0=(65536-66)%256;        //正好直接表示占空比的数值

四程序设计思路

我们组装好小车后,关键的是如何编写小车的程序

程序决定了小车能否根据黑线的路径

正确平稳地运行

以下是程序设计的思路框图

93450cad09d715ae7e2b54c76fa970ba.png

除此之外,我们还需要了解小车循迹的流程

021c4dcdf5d9ed144cd75d26b63f83a0.png

以三路循迹为例,当中间的红外传感器检测到黑线,则小车在轨道中间,直流电机正转,两个轮子保持前进;当左边的红外传感器检测到黑线,则说明小车要进行左拐弯,左边的电机停止转动,右边的电机保持转动,实现左转弯;当右边的红外传感器检测到黑线,则说明小车要进行右拐弯,右边的电机停止转动,左边的电机保持转动,实现右转弯。

根据以上的分析,我们就可以动手编写小车的循迹程序了

90964f46a0c55322b749186cb3ff0c10.gifEND

审核:凯勇哥

图文编辑:周周

eaaf0a7eafa8c42af834afdaa2898d5e.gif ffdf1e6db36b235965971f3e036a2cad.png 3c82af3ec5077492ee0bc2a21d868b5e.gif
### 关于智能小车 PID 调速流程 对于智能小车而言,PID控制器用于调整电机转速以保持期望的速度。具体到基于STM32的爬坡循迹智能小车上,其通过PID算法实时对速度进行调节,可以使小车在不同场景下拥有更为稳定且精确的表现[^1]。 #### PID调速基本原理 PID控制是一种线性反馈控制方法,它依据给定值与实际输出间的偏差来计算误差信号,并利用比例(P)、积分(I)和微分(D)三个参数对该误差进行处理,从而得到合适的控制量去调整执行机构的动作幅度。对于智能小车来说,则是用来动态修正轮子转动速率,确保车辆能够按照预设轨迹平稳行驶。 #### PID调速流程概述 以下是简化版的PID调速逻辑框架: 1. **初始化阶段** - 设置目标速度作为输入变量。 - 初始化当前测量速度为零或其他初始状态。 2. **数据采集环节** - 使用编码器或者其他形式的位置/速度检测装置获取即时运动信息。 - 将这些读数转换成可用于后续运算的形式。 3. **计算差值部分** - 计算设定的目标速度同实测所得之间存在的差异。 - 此处即形成了所谓的“误差”。 4. **应用PID公式** - 根据上述提到的比例、积分以及微分类别分别乘以其对应的系数kp, ki 和 kd ,再求得总和形成最终输出u(t)= kp*e(t)+ki*∫e(τ)dτ +kd*(de/dt),其中 e 表示误差函数。 5. **发送指令至马达驱动电路** - 把经过PID运算后的结果传递给负责驱动电动机工作的硬件组件。 - 这样就能让后者根据新的需求改变工作模式,比如加速或者减速等操作。 6. **循环往复直至达到预期效果** ```mermaid graph TD; A[开始] --> B{设置目标速度}; B --> C[初始化]; C --> D[采样实际速度]; D --> E[计算误差]; E --> F[PID运算]; F --> G[更新PWM占空比]; G --> H[驱动电机]; H --> I{是否满足精度?}; I -- 是 --> J[结束]; I -- 否 --> D; ``` 此图表展示了从启动直到完成一次完整的闭环控制周期内的各个步骤之间的关系。值得注意的是,在实际开发过程中可能还需要考虑更多细节因素,如防止过冲现象的发生或是优化响应时间等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值