357浏览
查看: 357|回复: 0

[入门教程] Arduino入门教程23--换挡风扇「DFR0100」

[复制链接]
本帖最后由 zoey不种土豆 于 2024-11-22 08:43 编辑

在这个教程中,我们将学习如何使用Arduino和电位器来控制一个风扇的转速。电位器是一种可变电阻器,它可以输出一个模拟信号,这个信号的电压随着电位器旋钮的旋转而改变。

元件清单
Arduino入门教程23--换挡风扇「DFR0100」图1

硬件连接
Arduino入门教程23--换挡风扇「DFR0100」图2

1 换挡风扇连线图
示例代码
样例代码:
  1. //项目 - 换挡风扇
  2. // 定义引脚编号  
  3. const int switchin = 0;
  4. const int fanout = 3;   
  5. int switchval = 0;        // 存储从电位器读取的模拟值  
  6. int outputValue = 0;      // 存储映射后的值,用于控制风扇转速  
  7.   
  8. void setup() {  
  9.   Serial.begin(9600);   // 初始化串行通信  
  10. }  
  11.   
  12. void loop() {  
  13.   switchval = analogRead(switchin);    // 读取电位器的模拟值  
  14.   Serial.println(switchval);    // 通过串行监视器输出读取的值
  15.    
  16.   outputValue = map(switchval, 0, 1023, 0, 255);   
  17. // 将模拟值映射到0-255的范围内
  18.   analogWrite(fanout, outputValue);     // 使用PWM控制风扇转速  
  19. }
复制代码
代码上传成功后,转动电位器,感受小马达的转速的变化。
代码回顾
使用电位器控制风扇转速是一个典型的输入-计算-输出的过程控制流程。
输入:先从电位器连接的模拟引脚读取模拟值:
  1. analogRead(switchin)
复制代码
计算:将读取的模拟值(0-1023)映射到一个新的范围(0-255),这个范围适合analogWrite()函数使用。
  1. outputValue = map(switchval, 0, 1023, 0, 255)
复制代码
输出:通过PWM信号控制连接到fanout引脚的风扇的转速。outputValue决定了PWM信号的占空比,从而控制风扇的转速。
  1. analogWrite(fanout, outputValue)
复制代码
示例代码简明易懂,其他请结合注释自行理解。

硬件回顾
在之前的项目中,我们学习过使用电位器控制舵机的转动以及蜂鸣器的音调,在项目【可控舵机】和【DJ调音台】中的硬件连接中,舵机和蜂鸣器的电路中并没有连入多余的电子元件。但在本项目中,小马达电路中还连入了NPN三极管和二极管(如下图)。为什么不能像蜂鸣器一样直接连入电路呢?接着会详细介绍NPN三极管和二极管在小马达电路中的作用。
Arduino入门教程23--换挡风扇「DFR0100」图4
图 2 130小马达驱动方式
NPN三极管的作用
Arduino UNO R3的主控板中,其每路输入/输出引脚的直流电流最大约为20mA,而130小马达的空载电流最少需要100mA。因此Arduino若想控制直流电机,只能采取放大电路驱动的方式。于是我们采用NPN三极管来驱动它(NPN三极管相关知识见项目【指尖开关】)。
续流二极管
续流二极管,保护电路免受由电机等感性负载引起的电压尖峰和反向电压的影响。当电流突然被中断时,感性负载会产生感应电动势,这会导致反向电压的产生,这可能会损坏其他电路元件(比如三极管)。续流二极管并联连接在线圈(小马达)两端,当流过线圈中的电流突然中断时,线圈中产生的感应电动势会驱动电流通过二极管回流,从而防止电流冲击其他电路元件并消耗掉感应能量,以此防止潜在的损坏。起这种作用的二极管叫续流二极管。它本质上还是二极管,但在这里主要起续流作用。

在本项目的电路中,当130小马达电机断电时,线圈会产生感应电动势并产生反向电压,该电压可能造成电路中元件(如三极管)的损坏。为防止这一风险,需在电机两端并联二极管以吸收此反向电压,保护电路。
如何区分电子元件的正负极呢?在本项目中,使用的二极管示意图如下,其中灰色环标注的一端为负极,另一端则为正极。
Arduino入门教程23--换挡风扇「DFR0100」图3
图 3 二极管正负极

示例代码

下一课:

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail