极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 弘毅

OCROBOT入门教程027--改变PWM频率

[复制链接]
 楼主| 发表于 2015-4-3 09:17:23 | 显示全部楼层
xiaoxiaosaonian 发表于 2015-3-15 18:40
弘毅大哥,请问怎样可以将pwm波的调节精度调到更小,你的例程里是0-255,我要控制无刷电机,只能在5%-10%的 ...

这个需要修改库文件了。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-3 09:18:16 | 显示全部楼层
1573782356 发表于 2015-3-30 10:45
弘毅大哥,你好。请问PWM输出引脚的频率能往上调吗?比如频率调到4900HZ

4M这么高速度貌似到不了~~~
回复 支持 反对

使用道具 举报

发表于 2015-8-6 23:58:08 | 显示全部楼层
弘毅 发表于 2015-4-3 09:18
4M这么高速度貌似到不了~~~

这个最高是多少,好多的要求20KHz
回复 支持 反对

使用道具 举报

发表于 2015-8-19 09:09:30 | 显示全部楼层
Arduino:1.5.5-r2 (Windows 8), 板:"Arduino Uno"

sketch_aug16a.ino: In function 'void setup()':
                              sketch_aug16a:16: error: 'InitTimersSafe' was not declared in this scope
sketch_aug16a:18: error: 'SetPinFrequencySafe' was not declared in this scope
sketch_aug16a.ino: In function 'void loop()':
sketch_aug16a:26: error: 'pwmWrite' was not declared in this scope

  报告将会包含更多的信息
  "Show verbose output during compilation"
  在 文件>首选项 中启用


这是什么意思为什么说 InitTimersSafe(); 没有声明

回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-20 11:50:04 | 显示全部楼层
奥斯丁 发表于 2015-8-19 09:09
Arduino:1.5.5-r2 (Windows 8), 板:"Arduino Uno"

sketch_aug16a.ino: In function 'void setup()':

用ocrobot的IDE~~Arduino这个IDE版本估计有兼容问题
回复 支持 反对

使用道具 举报

发表于 2015-9-20 18:40:43 | 显示全部楼层
看大家的使用都是在不同引脚输出同频PWM波,可是我需要在两个管脚输出不同频的PWM波,结果出来的都乱了,不知道怎么解决,愁死了,不知道楼主有没有遇到过这种问题,能不能给点建议。
回复 支持 反对

使用道具 举报

发表于 2015-10-19 19:55:35 | 显示全部楼层
弘毅哥,怎么才能让9、10引脚输出不同频率呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-20 09:48:03 | 显示全部楼层
Z-Maker 发表于 2015-10-19 19:55
弘毅哥,怎么才能让9、10引脚输出不同频率呢

9,10我记得是一个定时器。。最好是不同定时器的PWM管脚。
回复 支持 反对

使用道具 举报

发表于 2015-10-20 16:44:20 | 显示全部楼层
弘毅 发表于 2015-10-20 09:48
9,10我记得是一个定时器。。最好是不同定时器的PWM管脚。

啊   是。你写的这个库为啥没有加定时器0呢,我现在是想输出三路不同频率的PWM,要求是25K,就是控制轴流风机。但是对AVR的底层不熟,不知道怎么改一下。弘毅哥求助
回复 支持 反对

使用道具 举报

发表于 2015-12-15 10:39:45 | 显示全部楼层
弘毅大哥 PWM输出的最大是多少 用来驱动电机 很多板子都是10K以上了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-15 11:46:34 | 显示全部楼层
慕雅流芳 发表于 2015-12-15 10:39
弘毅大哥 PWM输出的最大是多少 用来驱动电机 很多板子都是10K以上了

328核心的大概490赫兹
回复 支持 反对

使用道具 举报

发表于 2015-12-15 14:48:42 | 显示全部楼层
弘毅 发表于 2015-12-15 11:46
328核心的大概490赫兹

这个看了您以前的帖子后晓得了
我现在想要12K的PWM波的话 是不是只需把下面的100改成12000即可
int32_t frequency = 100; // 频率 (单位是Hz)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-15 16:34:57 | 显示全部楼层
慕雅流芳 发表于 2015-12-15 14:48
这个看了您以前的帖子后晓得了
我现在想要12K的PWM波的话 是不是只需把下面的100改成12000即可
int32_ ...

恩。。。不过你这里改了,会影响这个定时器所影响的其他地方。。。。改了这个最好把其他部分也都检查一次,确保正常工作。
回复 支持 反对

使用道具 举报

发表于 2015-12-22 10:27:20 | 显示全部楼层
楼主,我现在想要5K的频率,占空比精度只要100,PWM是不是只需语句改成
int32_t frequency = 5000; // 频率 (单位是Hz)
但怎么降低占空比的精度呢?
是不是相应的降低占空比的精度,就可以对应的提高频率呢?
我如果是5000Hz的在您的例题中是需要降占空比精度的吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-25 19:46:50 | 显示全部楼层
xiongkw 发表于 2015-12-22 10:27
楼主,我现在想要5K的频率,占空比精度只要100,PWM是不是只需语句改成
int32_t frequency = 5000; // 频率 ...

这个里面0-255是调解占空比。。。不是调节占空比精度的。5000这里是频率
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2019-3-23 23:32 , Processed in 0.047830 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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