文章目录
前言
已经实际使用过了,嘎嘎好使!
利用D触发器做正交编码器鉴相
我们做电机的闭环控制时,一般会利用正交编码器做电机的速度和位置反馈。正交编码器会输出A、B两相方波信号,我们可以直接测单位时间内任一相方波信号的上升沿或下降沿的个数来等效出一个速度,但是要测电机的转向,还需要看A、B两相的相位差。
在Stm32中,定时器有专门的编码器测速模式来实现硬件测速和鉴相(需要占用一整个定时器),但是在实际应用中,我们的定时器资源是很有限的,而且有些MCU是不带编码器测速模式的。为了节省定时器资源,我们就需要通过外部搭建专用的D触发器来实现鉴相功能。
下图使用的是常用的双D触发器(74HC74D)
通过上面的电路,我们就可以实现两路编码器鉴相。在AC2、AC1分别接入A、B两相方波信号,然后在使用时用单片机读取OUT1的电平,即可判断当前电机转向(实际的电机转向和高低电平的对应关系需要具体判断)。