OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2159|回复: 2

关于PWM波输出控制小车

[复制链接]

4

主题

8

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2018-6-13
在线时间
6 小时
发表于 2018-6-13 16:22:16 | 显示全部楼层 |阅读模式
1金钱
1. 在学了正点原子的PWM输出实验后,发现他的PWM输出引脚正好是LED的引脚,因此可以使LED暂明暂暗。但是,我这里有份PWM控制小车的代码,配置如下:
[mw_shl_code=c,true]        motor_RR = new motor_driver(htim5, -1, htim1, TIM_CHANNEL_3, 999, GPIOC, GPIO_PIN_3, GPIO_PIN_5);
        motor_RL = new motor_driver(htim4, 1, htim1, TIM_CHANNEL_4, 999, GPIOC, GPIO_PIN_1, GPIO_PIN_13);
        motor_FR = new motor_driver(htim2, -1, htim1, TIM_CHANNEL_2, 999, GPIOB, GPIO_PIN_0, GPIO_PIN_2);
        motor_FL = new motor_driver(htim3, 1, htim1, TIM_CHANNEL_1, 999, GPIOB, GPIO_PIN_1, GPIO_PIN_12); [/mw_shl_code]

上面的GPIOX是小车的四个轮子的八种状态对应的一个引脚(一个轮子有两个状态正转反转)。但是,timx的channel也就是PWM的输出引脚和GPIOX的引脚(连接小车的八个引脚)没有连接关系,那么这个PWM波怎么输出到小车的?


我暂且认为的答案是:tim的channel也就是PWM的输出引脚连接到小车的另外四个接线,那么小车就有八个GPIOX引脚接线+PWM引脚接线=一共12个引脚接线。不知道这么理解对不对?



2. 还有一个问题是:计算小车当前的rpm,代码如下:
[mw_shl_code=c,true]tick_cur = get_tick_inc();
        cur_milli_time = Millisecond();
        delta_mins_time = (cur_milli_time - last_milli_time)/60000.0;
        rpm_cur = (tick_cur / _ticks_per_rev) / delta_mins_time;[/mw_shl_code]

可以看到,他是通过tim的tick数来计算的,这里面的_ticks_per_rev(每转一圈的tick数)是常量。但是,PWM波不是控制小车的车速吗?小车的车速是变化的,那么_ticks_per_rev应该也是变化的吧!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10569
金钱
10569
注册时间
2017-2-18
在线时间
1913 小时
发表于 2018-6-13 18:39:38 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-6-14 01:18:11 | 显示全部楼层
你得跟踪进去看具体的代码,光看这个,看个球。。。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 10:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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