打印
[UNO]

如何使用温度控制直流电机的转速(已解决)

[复制链接]
2450|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 打广告看考场 于 2020-2-7 16:52 编辑

刚才想使用下面的语句控制直流电机的转速:
void control_motor(float tempC)
  {
    if (15 < tempC < 19)
      {
        analogWrite(ULN2003, 90);  
      }
    else if (19 <= tempC < 23)
      {
        analogWrite(ULN2003, 125);  
      }
    else if (23 <= tempC < 30)
      {
        analogWrite(ULN2003, 180);  
      }
    else
      {
        analogWrite(ULN2003, 180);
      }
  }

经过接线测试,开始的温度在15-19范围内,电机转速比较小,但是随着温度增大,电机的转速并没有提升,各位老哥有什么好的办法吗?

使用特权

评论回复

相关帖子

沙发
xch| | 2020-1-31 20:00 | 只看该作者
analogWrite 这个函数做啥动作?
电机驱动电路呢?

使用特权

评论回复
板凳
打广告看考场|  楼主 | 2020-2-1 13:07 | 只看该作者
xch 发表于 2020-1-31 20:00
analogWrite 这个函数做啥动作?
电机驱动电路呢?

analogWrite函数直接给电机模拟量,电机就转起来了。
我使用的是ULN2003芯片,在程序中好像体现不出来它的作用。。

使用特权

评论回复
地板
xch| | 2020-2-1 14:28 | 只看该作者
打广告看考场 发表于 2020-2-1 13:07
analogWrite函数直接给电机模拟量,电机就转起来了。
我使用的是ULN2003芯片,在程序中好像体现不出来它 ...

ULN2003 只是驱动。调速使用PWM 方式?

使用特权

评论回复
5
打广告看考场|  楼主 | 2020-2-2 21:22 | 只看该作者
xch 发表于 2020-2-1 14:28
ULN2003 只是驱动。调速使用PWM 方式?

是的,但是这个PWM该怎么写呢?
之前使用过电位器调节LED的亮暗,先用map(val,0,1023,0,255)得到PWM值,然后通过analogWrite函数把得到的值送给一个管脚就可以办到。
在这个例子中,能否将温度的值从温度范围映射到0-255,然后通过analogWrite函数把得到的值送给一个管脚来实现?

使用特权

评论回复
6
xch| | 2020-2-2 22:12 | 只看该作者
打广告看考场 发表于 2020-2-2 21:22
是的,但是这个PWM该怎么写呢?
之前使用过电位器调节LED的亮暗,先用map(val,0,1023,0,255)得到PWM值, ...

你的硬件支持PWM吗?啥规格
电机?

使用特权

评论回复
评论
打广告看考场 2020-2-3 16:07 回复TA
arduino uno r3的板子,这个有专门的PWM输出口 还有一个普通的直流电机 
7
打广告看考场|  楼主 | 2020-2-3 23:26 | 只看该作者
xch 发表于 2020-2-2 22:12
你的硬件支持PWM吗?啥规格
电机?

arduino uno r3的板子,这个有专门的PWM输出口 还有一个普通的直流电机

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

7

帖子

0

粉丝