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

[复制链接]
351|7
 楼主 | 2020-1-29 23:43 | 显示全部楼层 |阅读模式
本帖最后由 打广告看考场 于 2020-2-7 16:52 编辑

刚才想使用下面的语句控制直流电机的转速:
  1. void control_motor(float tempC)
  2.   {
  3.     if (15 < tempC < 19)
  4.       {
  5.         analogWrite(ULN2003, 90);  
  6.       }
  7.     else if (19 <= tempC < 23)
  8.       {
  9.         analogWrite(ULN2003, 125);  
  10.       }
  11.     else if (23 <= tempC < 30)
  12.       {
  13.         analogWrite(ULN2003, 180);  
  14.       }
  15.     else
  16.       {
  17.         analogWrite(ULN2003, 180);
  18.       }
  19.   }
复制代码

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

使用特权

评论回复
| 2020-1-31 20:00 | 显示全部楼层
analogWrite 这个函数做啥动作?
电机驱动电路呢?

使用特权

评论回复
 楼主 | 2020-2-1 13:07 | 显示全部楼层
xch 发表于 2020-1-31 20:00
analogWrite 这个函数做啥动作?
电机驱动电路呢?

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

使用特权

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

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

使用特权

评论回复
 楼主 | 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函数把得到的值送给一个管脚来实现?

使用特权

评论回复
| 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输出口 还有一个普通的直流电机 
 楼主 | 2020-2-3 23:26 | 显示全部楼层
xch 发表于 2020-2-2 22:12
你的硬件支持PWM吗?啥规格
电机?

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

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /4 下一条

在线客服 快速回复 返回顶部 返回列表