找回密码
 立即注册
楼主: qepuemc

用单片机控制伺服电机实现简单的启停

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:440
  • 最近打卡:2025-05-02 01:28:16
已绑定手机

40

主题

371

回帖

843

积分

高级会员

积分
843
发表于 2024-4-11 09:26:22 | 显示全部楼层
百分之50的占空比,PWM发送脉冲,不断记录发送出去的脉冲数量,达到某个脉冲数修改对应的频率。
纸上得到终觉浅,绝知此事要躬行。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:378
  • 最近打卡:2025-05-01 07:48:27

43

主题

336

回帖

591

积分

高级会员

积分
591
发表于 2024-4-11 15:51:36 来自手机 | 显示全部楼层
飞捷 发表于 2024-4-11 09:26
百分之50的占空比,PWM发送脉冲,不断记录发送出去的脉冲数量,达到某个脉冲数修改对应的频率。 ...

这样用的话。一个p WM资源就只能给到伺服电机了。实际上我是用的一个pwm。资源给到任务调度。还有一个给到ao输出。所以就没有空余的这样做了。采用中断还行。{:5_270:}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:440
  • 最近打卡:2025-05-02 01:28:16
已绑定手机

40

主题

371

回帖

843

积分

高级会员

积分
843
发表于 2024-4-12 00:12:53 | 显示全部楼层
qepu*** 发表于 2024-4-11 15:51
这样用的话。一个p WM资源就只能给到伺服电机了。实际上我是用的一个pwm。资源给到任务调度。还有一个给 ...

普通定时器就能做了
纸上得到终觉浅,绝知此事要躬行。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:378
  • 最近打卡:2025-05-01 07:48:27

43

主题

336

回帖

591

积分

高级会员

积分
591
发表于 2024-4-12 09:22:58 来自手机 | 显示全部楼层
飞捷 发表于 2024-4-12 00:12
普通定时器就能做了

求教普通定时器再哪里,
是不是定义一个1ms的定时器,然后再循环里进行累加如果到了100ms的倍数就去执行100需要执行的程序。到了500就执行500ms才执行一次的程序。然后到了2000就归 0就可以了。是这样吗?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:338
  • 最近打卡:2025-04-25 16:31:21
已绑定手机

14

主题

600

回帖

2199

积分

荣誉版主

积分
2199
发表于 2024-4-12 09:46:24 | 显示全部楼层
飞*** 发表于 2024-4-12 00:12
普通定时器就能做了

我给的指数表就是一个定时器来搞的,我所有的产品都是这样来的,不管几个电机同时运动,就一个定时器搞定,当然都是直线插补关系.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:440
  • 最近打卡:2025-05-02 01:28:16
已绑定手机

40

主题

371

回帖

843

积分

高级会员

积分
843
发表于 2024-4-12 15:32:51 | 显示全部楼层
qepu*** 发表于 2024-4-12 09:22
求教普通定时器再哪里,
是不是定义一个1ms的定时器,然后再循环里进行累加如果到了100ms的倍数就去执行1 ...

可能你们是走系统的,我不熟,我的意思是用定时器做PWM就好
纸上得到终觉浅,绝知此事要躬行。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:440
  • 最近打卡:2025-05-02 01:28:16
已绑定手机

40

主题

371

回帖

843

积分

高级会员

积分
843
发表于 2024-4-12 15:33:34 | 显示全部楼层
xiangz*** 发表于 2024-4-12 09:46
我给的指数表就是一个定时器来搞的,我所有的产品都是这样来的,不管几个电机同时运动,就一个定时器搞定,当 ...

一个定时器搞定的话,这个定时器得细分到什么程序啊,微秒级?
纸上得到终觉浅,绝知此事要躬行。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:338
  • 最近打卡:2025-04-25 16:31:21
已绑定手机

14

主题

600

回帖

2199

积分

荣誉版主

积分
2199
发表于 2024-4-12 17:02:15 | 显示全部楼层
本帖最后由 xiangzichen 于 2024-4-12 17:05 编辑
飞*** 发表于 2024-4-12 15:33
一个定时器搞定的话,这个定时器得细分到什么程序啊,微秒级?

STC能做到100K,那就是10us,STM32的话200K,5us.所有的多轴插补运算就在这5-10us内,不对,应该在2-3us内完成的,这样才能电平才能翻转一次.否则频率就二分频了.我签名的 STC8C单轴控制器就是这样的,不过这个只控制一个电机,频率只有60K,但没有外扩任何资源,全部用的STC8C本身这些,包括刷8个数码管.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:378
  • 最近打卡:2025-05-01 07:48:27

43

主题

336

回帖

591

积分

高级会员

积分
591
发表于 2024-4-12 21:43:35 | 显示全部楼层
飞*** 发表于 2024-4-12 15:32
可能你们是走系统的,我不熟,我的意思是用定时器做PWM就好

我不用系统,都是自己消化代码的。你的意思是用比如定时器4  做时间定时器,然后时间设置为1MS或者0.1MS,然后系统也可以每达到时间就自己进行中断处理,然后在这个定时器中断里设置各种任务周期也是可以了。比哪1000MS显示一次数码管。 0.1MS的话就可以10K频率,0.1MS看一次设置比哪50000个脉冲,如果有转动信息就开始对50000进行操作,前5000和后5000升降速反转IO口,中间40000匀速,然后归零停止。对吧?
这时就可以这样设置多个定时器仿PLC操作如果信号触发后开启某个IO 6666MS就可以这样定时了。
谢谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:378
  • 最近打卡:2025-05-01 07:48:27

43

主题

336

回帖

591

积分

高级会员

积分
591
发表于 2024-4-12 21:52:20 | 显示全部楼层
xiangz*** 发表于 2024-4-12 09:46
我给的指数表就是一个定时器来搞的,我所有的产品都是这样来的,不管几个电机同时运动,就一个定时器搞定,当 ...

竟然把定时器给忘记了。STC上给的例子用的是PWMA B做任务调度定时系统。我用了一个现在看来确实是太浪费子。 应该用定时器更为合理。谢谢
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 06:49 , Processed in 0.185938 second(s), 111 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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