4799浏览
查看: 4799|回复: 3

[入门] DIY基于Arduino的摇头温控小风扇

[复制链接]
本帖最后由 贺章逸 于 2021-11-25 16:08 编辑

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


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

材料清单:




制作过程:

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



然后用钢丝把舵机和风扇模块绑起来
DIY基于Arduino的摇头温控小风扇图2     DIY基于Arduino的摇头温控小风扇图3      

     然后就可以连线啦,
接线图:
DIY基于Arduino的摇头温控小风扇图4


再然后就可以进行安装并放置到壳子里去
DIY基于Arduino的摇头温控小风扇图5




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

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


代码:
  1. #include <Servo.h>
  2. #include "DFRobot_LCD.h"   
  3. #define Fan 11 //定义风扇接口 PWM管脚
  4. DFRobot_LCD lcd(16,2);//表示可用两行十六个字节
  5. Servo myservo;  
  6. double dat;//浮点单精度
  7. uint8_t val;//设置变量,取值为0~255
  8. uint8_t pin=A0;//设置模拟引脚号A0
  9. int pos = 0; //表舵机的状态
  10. void setup() {
  11.    Serial.begin(9600);//初始化串口
  12.    myservo.attach(9);// 舵机引脚号为9
  13. }
  14. void loop() {
  15.    val=analogRead(A0);//温度传感器的模拟引脚号为A0
  16.    dat =  val * (5/10.24);
  17.    lcd.init(); //初始化lcd屏幕显示
  18.    lcd.setCursor(2, 0);//表示显示的数据将在第一行的第二个字节开始显示
  19.    lcd.print("temperature:");//在lcd屏幕上面打印temperature
  20.    lcd.setCursor(5, 2);//表示显示的数据将在第二行的第五个字节开始显示
  21.    lcd.print(dat,0);//表示在lcd屏幕里打印获得的温度值并获得整数
  22.    lcd.print("C"); //表示在lcd屏幕里打印C   
  23.   if(dat >= 30){
  24.    lcd.setRGB(255,0,0);//当温度大于30度时,变为红色
  25.    analogWrite(Fan, 255);//风扇以255的速度转动  
  26.   for (pos = 0; pos <= 180; pos += 1) {
  27.    myservo.write(pos);            
  28.    delay(10);                       
  29.       }
  30.   for (pos = 180; pos >= 0; pos -= 1) {
  31.    myservo.write(pos);            
  32.    delay(10);                       
  33.       }
  34. }
  35.   else if(dat>25 and dat<30){
  36.    lcd.setRGB(255,255,0);//当温度大于25度时,变为黄色
  37.    analogWrite(Fan, 150);//风扇以150的速度转动  
  38.   for (pos = 0; pos <= 180; pos += 1) {
  39.    myservo.write(pos);            
  40.    delay(10);   
  41.       }                    
  42.    for (pos = 180; pos >= 0; pos -= 1) {
  43.    myservo.write(pos);            
  44.    delay(10);                  
  45.       }
复制代码




奥特曼同学  学徒

发表于 2021-12-2 08:58:45

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

使用道具 举报

奥特曼同学  学徒

发表于 2021-12-2 09:04:18

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

使用道具 举报

 初级技匠

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

外形可以在精致一些……
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail