找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

51单片机编码器编程问题请教

查看数: 3378 | 评论数: 9 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-4-23 16:20

正文摘要:

我用51单片机连接直流电机的编码器(带码盘385直流电机 AB相编码器,96线码盘,A相和B相输出可直接单片机IO口识别,我只接了A相),用二个四段共阴数码管的后五位显示编码器输出了多少次脉冲,用手工转动电机,当转 ...

回复

ID:883242 发表于 2023-5-5 15:23
不光是要外部中断,还要判断方向,比如用A相做外部中断,进入后要立刻读取B相的电平,才能知道电机往哪个方向旋转。
ID:1074495 发表于 2023-5-4 12:39
如果中断没有其他外设的话,用中断的话会比较好吧!!!
ID:1005338 发表于 2022-4-24 09:45
dazhige 发表于 2022-4-23 21:13
建议用中断或者捕捉啊,用软的方法后期肯定会受到其他程序的影响,不过测试下原理是可以的。

这个建议非常好,我再用中断调试一下
ID:1005338 发表于 2022-4-24 09:44
wulin 发表于 2022-4-23 21:11
用定时器外部计数功能可以做到准确计数。由于机械惯性不可能以此精确控制电机转动的圈数。需要改用步进电 ...

位置精度要求不是特别高,加上减速比有50,惯性造成一点点误差可以接受,直流电机体积小,步时电机体积大成本高
ID:514254 发表于 2022-4-23 21:13
建议用中断或者捕捉啊,用软的方法后期肯定会受到其他程序的影响,不过测试下原理是可以的。
ID:213173 发表于 2022-4-23 21:11
niejiangong 发表于 2022-4-23 16:31
补充一下,我只测其中一相A或者B,本来的目的是:想通过编码器的输出的脉冲数除以96,计算出来电机转动的圈 ...

用定时器外部计数功能可以做到准确计数。由于机械惯性不可能以此精确控制电机转动的圈数。需要改用步进电机。
ID:688692 发表于 2022-4-23 18:28
在主循环里面监测编码器信号,采样率不够。
要将编码器的信号接到外部中断上,当中断发生时,进行加减计数,可支持到1MHz。
如果使用软采样,采样频率必须高于信号频率2倍以上,也就是编码器如果最高输出脉冲频率1kHz,那采样率至少要2kHz才不会丢脉冲。
你的主循环跑一圈多长时间知道吗?
建议还是用中断来做。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

ID:1005338 发表于 2022-4-23 16:31
本帖最后由 niejiangong 于 2022-4-23 16:34 编辑

补充一下,我只测其中一相A或者B,本来的目的是:想通过编码器的输出的脉冲数除以96,计算出来电机转动的圈数,当圈数达到预定值后,表明电机带的齿轮在齿条上走到设定位置,然后给电机断电。但读数总不正常就没法继续操作了

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表