完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位大侠,诚心请教一个问题:
用单片机的I/O口怎实现检测出外部输入到该I/O口的PWM方波的占空比,PWM方波用来控制三相直流电机调速的,根据输入的PWM方波占空比的大小响应的改变电机的速度。在网上看到其他人也有提到此问题,输入到带AD功能的I/O口能实现,个人觉得这个应该不能实现,求一个比较好使的算法! |
|
相关推荐
4个回答
|
|
云汉达人 邀请回答
你好,STC官方是有这么一个例程的: /************* 功能说明 ************** 使用PCA0从P3.5输出8位的PWM, 输出的PWM经过RC滤波成直流电压送P1.5做ADC并用数码管显示出来. 串口1配置为115200bps, 8,n, 1, 切换到P3.0 P3.1, 下载后就可以直接测试. 主时钟为22.1184MHZ, 通过串口1设置占空比. 串口命令使用ASCII码的数字,比如: 10,就是设置占空比为10/256, 100: 就是设置占空比为100/256。 可以设置的值为0~256, 0为连续低电平, 256为连续高电平. 左边4位数码管显示PWM的占空比值,右边4位数码管显示ADC值。 ******************************************/ 直接可以参考这个例程来实现你想要的功能: http://download.bbs.icxbk.com/201611/4726574b7129160961b7c93d996ebe89.rar |
|
|
|
|
|
|
|
邀请回答
ADC是最穩最快的方法,也較易Debug 純軟作法,有兩種 1. Polling方式,就一直監聽查詢該I/O口然後當值變化(上升/下降)時候停止計數,將值指派給變數 2. 用中斷方式(也稱ISR),配合定時器,每次上升/下降沿時候就計算兩時刻定時器的差值並指派給變數 以上希望對您有用 |
|
|
|
你这个好像是和变频器一样,可以接受PWM调制,检测PWM方波其实很简单,但是你怎么改变三项电机的转数是关键,单片机本身不好实现控制三项电机,如果是你想用单片机控制电机的转数,那么你肯定要有一个驱动电路的,还需要反馈实际的转数,你可以查一下变频器是怎么接收PWM来控制电机频率的,不过不带反馈,要想精确控制,就需要反馈,可以用计数器当反馈,这样可以按占空比求得实际需要的转数,然后根据反馈来改变实际的转数了!
|
|
|
|
只有小组成员才能发言,加入小组>>
791 浏览 0 评论
1151 浏览 1 评论
2527 浏览 5 评论
2860 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2710 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1070浏览 3评论
193浏览 2评论
455浏览 2评论
368浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
453浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 14:44 , Processed in 0.972999 second(s), Total 55, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号