王正尧 发表于 2017-6-25 18:56:16

自制风扇

(由于本作者是第一次发帖,如有错误,敬请谅解!)
    这次我们做一个小风扇,由于现在是夏天,所以电风扇比较受欢迎。首先,我们准备一些材料:
1. 220欧电阻 x2
2. 5mmLED灯 x1
3.继电器HRS1H-S-DC5V x1
4.按钮 x1
5.130小马达 x1
第一步:材料连接
按下图进行连线,按钮最右边的引脚连接到数字2,并用一个220欧电阻作为下拉电阻,以防引脚悬空干扰。继电器有6个引脚图中标有序号。1,2引脚为继电器的输入信号,3,4,5,6为继电器输出的控制引脚,这里只使用4,6两个引脚。我们把继电器想成一个开关,开关也只要用到两个引脚。


第二步:编写代码
我们拼完了硬件,改变写代码了。

[*]int buttonPin = 2;                        // button连接到数字2
[*]int relayPin = 3;                           // 继电器连接到数字3
[*]int relayState = HIGH;                      // 继电器初始状态为HIGH
[*]int buttonState;                            // 记录button当前状态值
[*]int lastButtonState = LOW;                  // 记录button前一个状态值
[*]long lastDebounceTime = 0;
[*]long debounceDelay = 50;                  //去除抖动时间
[*]
[*]void setup() {
[*]       pinMode(buttonPin, INPUT);
[*]       pinMode(relayPin, OUTPUT);
[*]
[*]       digitalWrite(relayPin, relayState);       // 设置继电器的初始状态
[*]}
[*]
[*]void loop() {
[*]       int reading = digitalRead(buttonPin);   //reading用来存储buttonPin的数据
[*]
[*]       // 一旦检测到数据发生变化,记录当前时间
[*]       if (reading != lastButtonState) {
[*]                   lastDebounceTime = millis();
[*]      }
[*]
[*]       // 等待50ms,再进行一次判断,是否和当前button状态相同
[*]       // 如果和当前状态不相同,改变button状态
[*]       // 同时,如果button状态为高(也就是被按下),那么就改变继电器的状态
[*]       if ((millis() - lastDebounceTime) > debounceDelay) {
[*]            if (reading != buttonState) {
[*]                      buttonState = reading;
[*]
[*]                     if (buttonState == HIGH) {
[*]                                 relayState = !relayState;
[*]                     }
[*]               }
[*]         }
[*]         digitalWrite(relayPin, relayState);
[*]
[*]         // 改变button前一个状态值
[*]         lastButtonState = reading;
[*]}

完成之后,插上USB连接线,就可以惬意的吹自制风扇啰!


nicho 发表于 2017-6-27 11:06:43

按键实现多种功能会不会很好玩呀快速按两下就是定时吹十秒,长按调速,(继电器不知道能不能做到调速)

pATAq 发表于 2017-6-28 16:19:53

nicho 发表于 2017-6-27 11:06
按键实现多种功能会不会很好玩呀快速按两下就是定时吹十秒,长按调速,(继电器不知道能不能做到调速) ...

不错的想法,我回头试试

王正尧 发表于 2018-1-25 21:01:52

nicho 发表于 2017-6-27 11:06
按键实现多种功能会不会很好玩呀快速按两下就是定时吹十秒,长按调速,(继电器不知道能不能做到调速) ...

继电器可能做得了也可能做不了,我回头试试。。。。。。。
页: [1]
查看完整版本: 自制风扇