本章图片文字内容也为重要知识,请马住!
输出比较简介
- OC(Output Compare)输出比较
- 输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形
- 每个高级定时器和通用定时器都拥有4个输出比较通道,4个输出比较通道各自有捕获/比较寄存器但是它们共用一个CNT计数器
- 高级定时器的前3个通道额外拥有死区生成和互补输出的功能,用于驱动三相无刷电机
CNT与CCR寄存器:
常见名称简写:
- OC(Output Compare)输出比较
- IC(Input Capture)输入捕获
- CNT:计数器
- CCR(Capture Compar Register)捕获/比较寄存器,是输入捕获和输出比较公用
- REF(refreference):参考信号
- ETR 引脚:通常是外部触发输入引脚
CCR是输入捕获和输出比较共用。当使用输入捕获时,它就是捕获寄存器;当使用输出比较时,它就是比较寄存器;在输出比较这里,上面大红圈这块电路会比较CNT和CCR的值,CNT计数自增,CCR是我们给定的值,当CNT大于CCR,小于CCR或者等于CCR的值时,这里输出就会对应的置1,置0,置1,置0,这样就可以输出一个电平不断跳变的PWM波形,这就是输出比较的基本功能。
PWM简介
- PWM(Pulse Width Modulation)脉冲宽度调制,也是数字输出信号,高低电平组成
- 在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速等领域
- PWM参数:频率 = 1 / TS 占空比 = TON / TS 分辨率 = 占空比变化步距
频率 = 1 / TS:PWM的频率越快,它的等效模拟信号就越平稳。不过同时性能开销就越大,一般来说,PWM的频率在几k到几十KHz,这个频率就足够快了。
占空比 = TON / TS : TON是高电平的时间,TS是一个周期的时间,那么TON/TS就是高电平时间相对于整个周期时间的比例, 一般用百分比表示,比如占空比为50%,那就是高低电平时间相等的方波;占空比为20%,那就是高电平占20%,低电平占80%;占空比为100%,那就是高电平不变;占空比0%,那就直接是低电平。占空比决定了PWM等效出来的模拟电压的大小,占空比越大,那等效的模拟电压越趋近于高电平,占空比越小,那等效的模拟电压越趋近于低电平。这个等效关系一般来说都是线性的,比如高电平时5V,低电平时0V,那50%的占空比就等效于中间电压,就是2.5V;20%的占空比就等效于1/5处的电压,就是1V。
分辨率 = 占空比变化步距 :比如有的占空比只能是1%, 2%,3%,等等这样以1%的步距跳变,那它的分辨率就是1%,如果可以1.1%, 1.2%,1.3%这样以0.1%的步距跳变,那它的分辨率就是0.1%。,所以这个分辨率就是占空比变化的精细程度。要求不高的,1%的分辨率也够用了。
使用PWM波形,就可以在数字系统等效输出模拟量。 就能实现LED控制亮度,电机调速等功能。
如何实现LED连续地调控亮度?
这就使用到这个PWM波形,用来有效的实现一个模拟信号的输出。通过PWM波形就可以实现,让LED不断地点亮、熄灭、点亮、熄灭。当点亮熄灭的频率足够大时,LED就不会闪烁了,而是呈现出一个中等亮度。当我们调控这个点亮熄灭的时间比例时,就能让LED呈现出不同的亮度级别。对于电机调速也是一样,我们以一个很快的频率,给电机通电、断电、通电、断电,那么电机的速度就能维持在一个中等速度,这就是PWM的基本思想。当然PWM的应用场景必须要是一个惯性统,就是说LED在熄灭的时候,由于余晖和人眼的视觉暂留现象,LED不会立马熄灭,而是有一定的惯性,过一段时间才会熄灭。相同,电机也是一样,不会立马停止。这样具有惯性的系统才可以使用PWM。
输出比较通道(通用)
接下来看看定时器的输出比较模块是如何输出PWM波形的?
两图对应通道1 (下图干货,认值吸收)
输出比较模式
输出模拟控制器具体工作方式,什么时候给ref高电平,什么时候给ref低电平?那就看看输出比较模式,也就这个输出模式控制器里面的执行逻辑,输入是CNT和CCR的大小关系,输出是ref的高低电平,里面可以选择多种模式来更加灵活地控制ref输出,这个模式可以通过寄存器配置。
冻结:CNT=CCR时,REF保持为原状态。可以理解为CNT和CCR无效,REF保持原状态,这个模式也比较简单,它根本不管CNT谁大谁小,直接REF保持不变,维持上一个状态就好了。这有什么用呢?比如你正在输入PWM波,突然想暂停一会输出,就可以设置成这个模式,一旦切换成冻结模式后,输出就停止了,并且高低电平也维持为暂停时刻的状态,保持不变。
匹配时置有效/无效/电平、电平翻转: 为了方便理解,可以直接认为,置有效电平就是高电平,无效电平就是低电平。这些模式可以用做波形输出,比如相等时电平翻转这个模式,这个可以方便的输出一个频率可调,占空比时钟为50%的PWM波形。比如你设置CCR为0,那CNT每次更新清0时,就会产生一次CNT=CCR的事件,这就会导致输出电平翻转一次,每更新两次,输出为一个周期,并且高电平与低电平的时间始终相等,也就是占空比始终为50%,当你改变定时器的更新频率时,输出波形的频率也会随之改变。它俩的的关系是输出波形的频率=更新频率/2,因为更新两次才为一个周期。
PWM模式1与PWM模式2: 它们可用于输出频率和占空比都可调的PWM波形,也是我们主要使用的模式。一般使用向上计数,PWM模式2实际就是PWM模式1输出的取反,改变PWM模式1和PWM模式2,就只是改变了REF电平的极性而已。所以使用的话,我们可以只使用PWM模式1的向上计数,这一种模式就行了。
PWM基本结构 (重点)
PWM模式1的向上计数模式是如何输出频率和占空比都可调的PWM波形的?
图片文字全是干货,好好看看吸收
参数计算
问题:如果要求输出一个频率为1KHz,占空比可任意调节,分辨率为1%的PWM波形,请用上面公式确认合适的参数。欢迎评论区讨论。
舵机简介
- 舵机是一种根据输入PWM信号占空比来控制输出角度的装置
- 输入PWM信号要求:周期为20ms,高电平宽度为0.5ms~2.5ms
舵机有三根输入线,两根电源线,一根信号线,PWM就是通过输入信号线来控制舵机的。
棕色电源负极接GND,红色电源正接VCC,橙色信号线。
把PWM当作通信协议也是一个比较常见的应用,很多控制器都有PWM输出功能,而且PWM只需要一根信号线就可以了。
舵机是一种电子元件,用于控制机械装置的角度和位置。舵机的工作原理是通过接收控制信号,并将这个信号转换成机械运动。舵机内部包含了电机、控制电路和反馈装置。
当一个控制信号发送给舵机时,舵机的控制电路会对这个信号进行解码,然后根据信号的大小和方向控制内部电机的运转。内部电机的运转会使得舵机的输出轴旋转到特定的位置,从而改变机械装置的角度和位置。舵机还会通过反馈装置实时检测输出轴的位置,并将这个信息发送回控制电路,从而确保输出轴达到预期的位置。
总的来说,舵机的工作原理就是接收控制信号、转换成机械运动,并通过反馈机制来确认和调整输出位置。舵机广泛应用于遥控模型、机器人等领域。
舵机的硬件电路
直流电机及驱动简介
- 直流电机是一种将电能转换为机械能的装置,有两个电极,当电极正接时,电机正转,当电极反接时,电机反转
- 直流电机属于大功率器件,GPIO口无法直接驱动,需要配合电机驱动电路来操作
- TB6612是一款双路H桥型的直流电机驱动芯片,可以驱动两个直流电机并且控制其转速和方向
直流电机是一种将电能转变为机械能的电动机。它的工作原理基于洛伦兹力和电磁感应定律。
直流电机通常由一个定子和一个转子组成。定子上有一组绕组,通常称为电枢,通过这些绕组流过电流。转子由永磁体或电磁铁组成,它围绕在定子的中心。
当电流通过电枢绕组时,产生的磁场和转子的磁场相互作用,导致转子发生转动。这是基于洛伦兹力的原理,即流过导体的电流在磁场中会受到力的作用。根据右手定则,电流方向和磁场方向可以确定受力的方向,从而导致转子转动。
在转动过程中,电枢绕组的电流方向会随着转子的旋转而不断改变,这导致了反向的力矩,使得转子能够持续转动。
总的来说,直流电机的工作原理是通过在定子和转子之间建立磁场和通过电流的相互作用,实现将电能转换为机械能,驱动机械装置工作。
直流电机硬件电路
活动发起人@小虚竹 想对你说:
这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你参加为期14天的创作挑战赛!
提醒:在发布作品前,请将不需要的内容删除。