所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开

#创意#懒人神器:自动风扇

野生钢铁侠 野生钢铁侠 2020-05-24 14:07:12

【项目介绍】


     天气越来越热,心中越来越来越躁。这个时候来把小扇子再合适不过。一脸疑问,那为什么不开空调?不开电风扇?不用手持电风扇呢?是的,上面的问题都是客观存在的,但是呢!创客就是没问题也要搞问题的对吗?(手动滑稽,乐意接受反驳)


    自动小风扇可以全方位无死角给你带来凉爽,这可是手持小风扇不能做的呢!家用电风扇的声音确实很大,空调呢!还是有点费电呢,保护地球从我做起。


    说了这么多,那开始吧^_^


【解决方案】


     通过控制舵机转动速度及幅度来控制风的大小。项目通过使用  micro:bit  arduino  两种主控分别控制,以供各位选择适合自己的方案。

    


【作品演示】 

                                                                 arduino 版本演示 

micro:bit 版本演示

【制作过程】     

材料清单 材料清单
1x
Arduino uno r3
1x
MG995 舵机
1x
旋位电阻器
1x
Micro:bit 主板
1x
Micro:bit 拓展板
1x
自锁开关

       1.micro:bit 版本 


         1.1 连线图见下方原理图

         1.2 程序 https://makecode.microbit.org/_6eC6kK2mPazT 

         1.3 micro:bit 添加舵机组件 

         1.4 点击下载.hex文件,下载后拷贝到micro:bit所在位置即可

projectImage
projectImage

micro:bit 版本原理图


  旋位电阻器         P3

      舵机                P2

projectImage
projectImage
projectImage

   2.arduino版本


      2.1 实物组装如下

      2.2 添加舵机库文件arduino目录下libraries文件夹即可(详见附件)

      2.3 编译程序是否无误

      2.4 上传程序

Arduino 版本 原理图

projectImage
代码 代码
	                    					        #include <Servo.h>
        Servo myservo;                            // 定义Servo对象来控制
        int pos = 0;                              // 角度存储变量
        int time1=5;


void setup() 
{                                               // 程序初始化
        Serial.begin(9600); 
        pinMode(A0, INPUT); 
        myservo.attach(4);                     // 控制线连接数字4
} 


void loop() 
{  
     if(analogRead(A0)<350)                   //读取电位计数值并进行判断
     { time1=3;   }
     if((analogRead(A0)>350)&&(analogRead(A0)<700))
     {  time1=5;   }
     if((analogRead(A0)>700)&&(analogRead(A0)<1024))
     {  time1=7;  }
    

     for (pos = 30; pos <= 150; pos ++) {    // 30°到150°
        myservo.write(pos);                  // 舵机角度写入
        delay(time1);                        // 等待转动到指定角度
      }
     for (pos = 150; pos >= 30; pos --) {    // 从150°到30°
        myservo.write(pos);                  // 舵机角度写入
        delay(time1);                        // 等待转动到指定角度
      }

}
	                    				

【项目总结】

      1. 这是第一次在DF发帖,未来的路还很长,希望和各位朋友共勉^o^

      2. 初学者可通过此项目熟悉并掌握micro:bit和arduino  读取模拟io口数值,舵机控制

      3. 控制扇子可用简易电机传动机构,噪音会更小一点

      4. 可以增添超声波模块检测人靠近自动打开,离开自动关闭

      5. 如有错误请不吝斧正

附件 附件
Makelog作者原创文章,未经授权禁止转载。
0
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
|
[[c.comment_content]]