极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20975|回复: 4

用arduino通过pwm调速

[复制链接]
发表于 2013-9-13 23:00:58 | 显示全部楼层 |阅读模式
参照论坛上的帖子用自带的pwm口调速12V的风扇没问题,但在速度较低的情况下出现啸叫,希望通过提高pwm频率解决这个问题,测试了几个方法都不成功。从DFRobot找来这个段代码,无法调节空占比,无法调速,请高手指点下,另外求高手给出更完美的解决方案,谢谢。
  1. /**************************************************************************************************
  2. *
  3. *   PWM_Timer2_31kHz_00
  4. *
  5. *   Version:      00 - Mai 2010
  6. *   Author:       Tom Pawlofsky www.caad.arch.ethz.ch tom-DOT-pawlofsky-AT-arch-DOT-ethz-DOT-ch
  7. *
  8. *   Desc:         change prescaler of Timer 2 to have 31kHz Frequency at pin 3 and 11
  9. *
  10. ***************************************************************************************************/


  11. int pinA = 3; // pin 3 and 11 are PWM output controled by Timer2
  12. int pinB = 11; // connect pinA/B to H-Bridge

  13. void setup(){
  14.         //__________________________________TIMER2_for_Motor_PWM_________________________________
  15.         // set TIMER2 for PWM 32 Hz
  16.         //
  17.         // clear all prescaler bits in TCCR2B = the last 3 Bits
  18.         // leave other bits as set by arduino init() in wiring.c
  19.         byte mask = B11111000;
  20.         TCCR2B &= mask; // TCCR2B is now xxxxx000
  21.         //
  22.         // set CS22:20 in TCCR2B see p 156 of datasheet
  23.         TCCR2B |= (0<<CS22) | (0<<CS21) | (1<<CS20); // same as TCCR2B |= B00000001; TCCR2B is now xxxxx001

  24.         //__pinmode
  25.         pinMode(pinA,OUTPUT);
  26.         pinMode(pinB,OUTPUT);

  27.         //
  28.      
  29. }

  30. void loop(){

  31.        analogWrite(pinA,128); // 50% Duty
  32.         analogWrite(pinB,32); //12.5 % Duty
  33. }
复制代码
回复

使用道具 举报

发表于 2013-9-14 08:43:53 | 显示全部楼层
你可以借鉴一下 电位器PWM控制LED亮度 http://www.geek-workshop.com/thread-1113-1-1.html 原理是差不多。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-14 19:01:12 | 显示全部楼层
谢谢 楼上,我现在是可以实现风扇的pwm调速,但arduino的默认pwm频率太低,在风扇调速中出现啸叫声,求提高pwm频率的方法。
回复 支持 反对

使用道具 举报

发表于 2013-9-14 21:29:51 | 显示全部楼层
用TLC5940之类的pwm芯片不知道行不行
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-10 12:50 , Processed in 0.035668 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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