Arduino输出PWM整理 可改变频率和占空比

//
ATmega168/328 有3个硬件定时器对应引脚
//
时钟输出 | Arduino输出Pin编号 | 芯片Pin | Pin name
OC0A 6 12 PD6
OC0B 5 11 PD5
OC1A 9 15 PB1
OC1B 10 16 PB2
OC2A 11 17 PB3
OC2B 3 5 PD3

//
库文件下载
//
ArduinoPWMFrequencyLibraryv_05 库文件 下载地址
http://www.geek-workshop.com/forum.php?mod=viewthread&tid=9595&highlight=PWM%C6%B5%C2%CA
//
库文件原始说明地址
//
https://forum.arduino.cc/index.php?topic=117425.0
//
PWM频率库【库文件原始说明地址中文翻译版本】
//
https://www.arduino.cn/thread-3012-1-1.html

在下面找到PWM压缩包下载,里面有两个例子。好好调试例子就可以了。

//
//例子1
//
允许16位定时器的频率范围为1Hz - 2MHz,8位定时器的频率范围为31Hz - 2MHz

调用SetPinFrequency()/ SetPinFrequencySafe(),返回一个bool,可以对其进行测试以验证频率实际上已改变。

相关论坛文章整理:
//
Arduino系列教程之 – PWM的秘密(上)(转)
//
http://www.geek-workshop.com/forum.php?mod=viewthread&tid=119&highlight=Arduino%CF%B5%C1%D0%BD%CC%B3%CC%D6%AE%2B%A8C%2BPWM%B5%C4%C3%D8%C3%DC
//
Arduino系列教程之 – PWM的秘密(下)(转)
//
http://www.geek-workshop.com/forum.php?mod=viewthread&tid=120&highlight=PWM
//
OCROBOT入门教程027–改变PWM频率
//
http://www.geek-workshop.com/forum.php?mod=viewthread&tid=9595&highlight=PWM%C6%B5%C2%CA

  • 12
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以通过串口屏幕与Arduino Uno通信,然后通过Arduino编程来控制PWM占空比频率。下面是一个简单的示例代码: 首先,你需要在Arduino上安装一个支持串口通信的库,比如SoftwareSerial库。在Arduino IDE中,你可以通过"Sketch -> Include Library -> SoftwareSerial"来安装该库。 然后,使用以下代码作为基础来实现你的需求: ```c #include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); // RX, TX int pwmPin = 9; void setup() { mySerial.begin(9600); // 设置串口波特率为9600 pinMode(pwmPin, OUTPUT); // 设置PWM引脚为输出模式 } void loop() { if (mySerial.available()) { int value = mySerial.parseInt(); // 读取串口屏幕发送的整数值 analogWrite(pwmPin, value); // 设置PWM占空比 } } ``` 在上述代码中,我们使用了SoftwareSerial库来创建一个虚拟串口mySerial,并将其连接到Arduino的引脚10和11上。你可以根据实际连接情况进行调整。 在setup函数中,我们初始化了串口通信,并将PWM引脚设置为输出模式。 在loop函数中,我们检查串口是否有数据可用。如果有数据可用,我们使用`mySerial.parseInt()`函数读取串口屏幕发送的整数值。然后,我们使用`analogWrite()`函数将该值设置为PWM引脚的占空比。 你可以通过串口屏幕发送不同的整数值来控制PWM占空比。注意,PWM占空比的范围是0到255,其中0表示0%占空比,255表示100%占空比。 至于频率的控制,Arduino Uno的PWM频率是固定的。对于引脚9和10(也是你连接PWM信号的引脚),默认的PWM频率是490Hz。如果你需要更高或更低的频率,你可以使用`Timer1`库来进行更高级的PWM控制。 希望这可以帮助到你!如有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值