欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > windows >内容正文

windows

arduino智能风扇系统

发布时间:2025/3/12 windows 58 豆豆
生活随笔 收集整理的这篇文章主要介绍了 arduino智能风扇系统 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

研究方法与思路:

我们小组一开始找的是一个别人做好的项目,按键控制风扇挡位,不同挡位对应不同LED灯。但是实现过程中存在bug。而且仅仅通过按键控制风扇着实有局限性,因此我觉定用串口控制风扇开关的模式,输入1,风扇变为光敏自动调节,输入2,变为按钮人工控制调节。
我们的思路首先是拆开,把每个功能单独列出来实现,最后再进行合并

按键控制风扇开关:

我在这里遇到了问题,就是按钮按一下它关闭一会又自动开始转。最后找到了徐大佬,才解决了问题。
猛地关闭风扇,电流会回流,然后把相应的下限变高(我也没听太明白)这个大概就是(buttonValue = analogRead(buttonpin)) > 15而不是大于0的原因。
一开始我用的数字信号,最后用了模拟信号才调出来。。

const int IB = 6; const int IA = 5; int buttonpin = A1; boolean state = false;void setup() {Serial.begin(9600);pinMode(IA, OUTPUT);pinMode(IB, OUTPUT);pinMode(buttonpin, INPUT_PULLUP); }void loop() {int buttonValue = 0;while ((buttonValue = analogRead(buttonpin)) > 15){Serial.println(buttonValue);}Serial.print("a");if (state == true){analogWrite(IA, 0);analogWrite(IB, 0);}else{analogWrite(IA, 105);analogWrite(IB, 0);}state = !state;delay(600); }

串口控制风扇挡位:

const int IB=6; const int IA=5; void setup(){Serial.begin(9600);pinMode(IA,OUTPUT);pinMode(IB,OUTPUT);}void loop(){if(Serial.available()>0){char ch=Serial.read();Serial.println(ch);if(ch == 'l'){analogWrite(6,0); analogWrite(5,0); //Serial.println("l");}else if(ch == 'm'){analogWrite(6,0); analogWrite(5,150);// Serial.println("m");} else if(ch =='h'){analogWrite(6,0); analogWrite(5,250);// Serial.println("h"); } }}

光敏电阻控制风扇挡位:

const int IB=6; const int IA=5; void setup(){Serial.begin(9600);pinMode(IA,OUTPUT);pinMode(IB,OUTPUT);}void loop(){int sv=analogRead(A0);Serial.println(sv);//光越大sv越小analogWrite(IB,0);analogWrite(IA,(600-sv)*0.425 );}

串口控制风扇模式:

主要是用了一些条件语句把上面的模块拼到一块,应该能看明白,我就不多说了

const int IB = 6; const int IA = 5; int buttonpin = A1; boolean state = false;void setup() {Serial.begin(9600);pinMode(IA, OUTPUT);pinMode(IB, OUTPUT);pinMode(buttonpin, INPUT_PULLUP); }void loop() {if (Serial.available() > 0) {char ch = Serial.read();if (ch == '4'){Serial.println("你想要智能风扇的哪个功能");Serial.println("1.按键控制风扇") ;Serial.println("3.光敏传感器控制风扇");Serial.println("4.从新选择");}else{while (1) {if (ch == '1'){int buttonValue = 0;if (Serial.available() > 0){char bb = Serial.read();if (bb == '4'){analogWrite(IA, 0);analogWrite(IB, 0);break;}}else {while ((buttonValue = analogRead(buttonpin)) > 15){// Serial.println(buttonValue);}// Serial.print("a");if (state == true){analogWrite(IA, 0);analogWrite(IB, 0);}else{analogWrite(IA, 105);analogWrite(IB, 0);}state = !state;delay(600);}}else if (ch == '3'){int sv = analogRead(A0);// Serial.println(sv);//光越大sv越小analogWrite(IB, 0);analogWrite(IA, (600 - sv) * 0.425 );if (Serial.available() > 0){char ch = Serial.read();if (ch == '4'){analogWrite(IA, 0);analogWrite(IB, 0);break;}else {Serial.println("如果想要切换功能请输入4");}}}}}} } 创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖

总结

以上是生活随笔为你收集整理的arduino智能风扇系统的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。