本帖最后由 贺章逸 于 2021-11-25 16:08 编辑
当寒冷的冬天离我们越来越近时,春天也会悄然来临,那炎热的夏天离我们还会远吗?春回大地,万物复苏,夏日炎炎,睡意绵绵。
这肯定是我有史以来第一次diy制作了吧,对于我这样的手残党之一,想想小时候,我只会折纸飞机 然后。。。。后来我还是只会折纸飞机。夏季初期,柔和的太阳使人懒散,使人泛起困意。到了夏季最炎热的时候,就连躺着床上,也会冒汗。有的时候,就在想,要是风扇能自己吹,这样就只需床上一躺,拿着手机追剧,再来一杯肥宅快乐汽水,享受生活,可谓真是美滋滋。
基于这样的想法,我就提前为自己做起来了温控小风扇。(当然后面也会逐步的修改一下)
实验原理:由温度传感器来检测室内温度值,当室内温度大于25度时,1602显示屏显示出温度当前值并呈现颜色为黄色,风扇以150的速度转动,当室内温度大于30°时,1602显示屏显示出温度当前值并呈现颜色为红色,风扇以255的速度转动。当室内温度降下来时,风扇转动的速度也会随着降下来,直到室内温度小于25度时,显示屏的颜色为绿色,风扇便停止转动。
材料清单:
制作过程:
首先我先废物利用了一波,找到家里准备丢掉的硬纸板做成了一个有点小丑的外壳(它有点小丑但是它很温柔)。
然后便开始组装
拿出舵机,风扇模块以及家里不要钱的两根小钢丝
然后用钢丝把舵机和风扇模块绑起来
然后就可以连线啦,
接线图:
再然后就可以进行安装并放置到壳子里去
最后给它通电,把程序烧录进去,弄好就是这样的。虽然它有点小丑,但是也阻止不了它外表的威风凛凛,英姿飒爽的形态。小小的风扇,具备着大大的能力,它可以是风扇,还可以是散热器。
代码:
- #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);
- }
复制代码
|