Skip to content

Latest commit

 

History

History
149 lines (69 loc) · 4.56 KB

bu-jin-dian-ji-bi-huan-qu-dong.md

File metadata and controls

149 lines (69 loc) · 4.56 KB

步进电机闭环驱动

硬件基础

续流二极管

继电器中开关断开的瞬间,波形会出现一个尖峰。

继电器里面有线圈,线圈属于感性元器件,感性元器件的特性是电流不会突变,有着这样的记忆特性。输入端在断电的时候,输入端的电路没有电流了,而线圈仍然保留刚才的电流值,在断电瞬间它会产生一个比较大的反向电动势,如果反向电动势比较大的话可能会破坏电路(击穿三极管)。

如果在回路中添加一个二极管,它可以帮我们把这个电流消耗掉,这种二极管一般叫做续流二极管。

整流二极管

两个探头红色是二极管正级,黄色二极管负极后即整流后。证明了二极管的正向导通反向截止特性。

上图单个二极管整流效果也叫半波整流。

肖特基二极管(Schottky diode)

优势之一:vf产生的热量低于普通二极管(硅材质),产生的热量少。

蓝色是肖特基,绿色是普通二极管。可以看到肖特基波形比绿色的好,蓝色最大的电压5.4v比绿色的4.9v更好。

如果提高频率,从60hz到300hz的话是下面的波形。绿色的整流效果非常差。

它的反应速度快,所以经常用在中高频应用中!!二极管的恢复的概念用这个图很好理解。

disadvantage

反向漏电流(reverse current gets blocked)

普通二极管测反向电流,小到很难测试。

下面是肖特基二极管,在19v情况下有20uA的反向电流!

如果用二极管做反向电压保护的话,这20uA没什么大不了。但是如果这作为峰值检测器电路的一部分,这20uA可能非常重要。

不同温度下影响会升到毫安级别,所以不能盲目地到处使用肖特基!!

注意

在选购二极管的时候,往往会想去选用最高额定电压的二极管,因为这样会提供更高的安全性。但是这样会牺牲效率。一般选用超过额定电压10v就行了!

稳压二极管(zener diode)

保护电路免受突然的尖峰影响。

普通二极管单向导通,稳压二极管可以让电流双向流动。

Vf和Vz。

可以限制其他设备接收的电压。

2v通过10k电阻输出到二极管。如果不接电阻的话,电流过大会把二极管烧毁

如果通过的电流增加的话,那么稳出来的电压会跟设想的不同,电流越大稳出来的电压越低于设想值。

终端电阻

后面用到can总线协议的时候,需要涉及到终端电阻。可以避免信号的反射和回波。

不考虑线阻的情况下,默认是120欧。

低通滤波(RC low pass filter)

问题

这边的pwm信号出来怎么接电阻和并联电容。

这边一个肖特基二极管正向导通。两个vcc并起来后面接一个稳压二极管什么作用?

闭环控制程序解析

Signal/button_base

创建了一个ButtonBase基类,explicit来修饰构造函数这样能够防止隐式转换。只有显示调用才行。

      //Test1 没有声明explicit,Test2 构造声明了explicit
      Test1 t1=12;//隐式调用其构造函数,成功
      Test2 t2=12;//编译错误,不能隐式调用其构造函数
      Test2 t2(12);//显式调用成功

利用重载,来增加按钮处理最长时间的功能。按钮的构造通过参数id来设置多个按钮。

用回调函数来处理按钮的事件。回调的参数用enum创建了4种。

virtual bool ReadButtonPinIO(uint8_t _id) = 0;
//在button_stm32中进行重载
bool ReadButtonPinIO(uint8_t _id) override;

这边用override关键字显示重载,是一个好的习惯。详情看条款12。

这个基类的虚函数,可以让这个函数在不同的地方使用,不仅是hal库,标准库也可以!!这样子设计很不错。并且重载的虚函数被设置成private,这样子只有类的成员函数可以调用,隐藏了细节。

{% embed url="https://gitmind.com/app/doc/7e3682d2f49a486154f9b6274e5e2a82" %}