贺章逸 发表于 2021-11-25 16:00:08

DIY基于Arduino的摇头温控小风扇

本帖最后由 贺章逸 于 2021-11-25 16:08 编辑

       当寒冷的冬天离我们越来越近时,春天也会悄然来临,那炎热的夏天离我们还会远吗?春回大地,万物复苏,夏日炎炎,睡意绵绵。
这肯定是我有史以来第一次diy制作了吧,对于我这样的手残党之一,想想小时候,我只会折纸飞机   然后。。。。后来我还是只会折纸飞机。夏季初期,柔和的太阳使人懒散,使人泛起困意。到了夏季最炎热的时候,就连躺着床上,也会冒汗。有的时候,就在想,要是风扇能自己吹,这样就只需床上一躺,拿着手机追剧,再来一杯肥宅快乐汽水,享受生活,可谓真是美滋滋。
基于这样的想法,我就提前为自己做起来了温控小风扇。(当然后面也会逐步的修改一下)


实验原理:由温度传感器来检测室内温度值,当室内温度大于25度时,1602显示屏显示出温度当前值并呈现颜色为黄色,风扇以150的速度转动,当室内温度大于30°时,1602显示屏显示出温度当前值并呈现颜色为红色,风扇以255的速度转动。当室内温度降下来时,风扇转动的速度也会随着降下来,直到室内温度小于25度时,显示屏的颜色为绿色,风扇便停止转动。

材料清单:


[*]Gravity: 风扇模块
[*]Gravity: I2CLCD1602
[*]DFRobot DF9GMS 180° 微型舵机
[*]Gravity: 模拟LM35线性温度传感器(Arduino兼容)
[*]Arduino UNO控制板以及IO扩展板



制作过程:

首先我先废物利用了一波,找到家里准备丢掉的硬纸板做成了一个有点小丑的外壳(它有点小丑但是它很温柔)。
      
         
然后便开始组装
拿出舵机,风扇模块以及家里不要钱的两根小钢丝




然后用钢丝把舵机和风扇模块绑起来
            

   然后就可以连线啦,
接线图:



再然后就可以进行安装并放置到壳子里去





最后给它通电,把程序烧录进去,弄好就是这样的。虽然它有点小丑,但是也阻止不了它外表的威风凛凛,英姿飒爽的形态。小小的风扇,具备着大大的能力,它可以是风扇,还可以是散热器。




代码:
#include <Servo.h>
#include "DFRobot_LCD.h"   
#define Fan 11 //定义风扇接口 PWM管脚

DFRobot_LCD lcd(16,2);//表示可用两行十六个字节
Servo myservo;

double dat;//浮点单精度
uint8_t val;//设置变量,取值为0~255
uint8_t pin=A0;//设置模拟引脚号A0
int pos = 0; //表舵机的状态

void setup() {
   Serial.begin(9600);//初始化串口
   myservo.attach(9);// 舵机引脚号为9
}
void loop() {
   val=analogRead(A0);//温度传感器的模拟引脚号为A0
   dat =val * (5/10.24);
   lcd.init(); //初始化lcd屏幕显示
   lcd.setCursor(2, 0);//表示显示的数据将在第一行的第二个字节开始显示
   lcd.print("temperature:");//在lcd屏幕上面打印temperature
   lcd.setCursor(5, 2);//表示显示的数据将在第二行的第五个字节开始显示
   lcd.print(dat,0);//表示在lcd屏幕里打印获得的温度值并获得整数
   lcd.print("C"); //表示在lcd屏幕里打印C   
if(dat >= 30){
   lcd.setRGB(255,0,0);//当温度大于30度时,变为红色
   analogWrite(Fan, 255);//风扇以255的速度转动
for (pos = 0; pos <= 180; pos += 1) {
   myservo.write(pos);            
   delay(10);                     
      }
for (pos = 180; pos >= 0; pos -= 1) {
   myservo.write(pos);            
   delay(10);                     
      }
}
else if(dat>25 and dat<30){
   lcd.setRGB(255,255,0);//当温度大于25度时,变为黄色
   analogWrite(Fan, 150);//风扇以150的速度转动
for (pos = 0; pos <= 180; pos += 1) {
   myservo.write(pos);            
   delay(10);   
      }                  
   for (pos = 180; pos >= 0; pos -= 1) {
   myservo.write(pos);            
   delay(10);                  
      }
C:\Users\admin\Desktop\温控小风扇\VID_20211124_162500.mp4


奥特曼同学 发表于 2021-12-2 08:58:45

你好 代码显示有错误该怎么解决

奥特曼同学 发表于 2021-12-2 09:04:18

第二行代码显示有错误 无法解决

发表于 2022-2-26 19:36:16

外形可以在精致一些……
页: [1]
查看完整版本: DIY基于Arduino的摇头温控小风扇