【项目介绍】
天气越来越热,心中越来越来越躁。这个时候来把小扇子再合适不过。一脸疑问,那为什么不开空调?不开电风扇?不用手持电风扇呢?是的,上面的问题都是客观存在的,但是呢!创客就是没问题也要搞问题的对吗?(手动滑稽,乐意接受反驳)
自动小风扇可以全方位无死角给你带来凉爽,这可是手持小风扇不能做的呢!家用电风扇的声音确实很大,空调呢!还是有点费电呢,保护地球从我做起。
说了这么多,那开始吧^_^
【解决方案】
通过控制舵机转动速度及幅度来控制风的大小。项目通过使用 micro:bit arduino 两种主控分别控制,以供各位选择适合自己的方案。
【作品演示】
arduino 版本演示
micro:bit 版本演示
【制作过程】
材料清单
- Arduino uno r3 X1
- MG995 舵机 X1
- 旋位电阻器 X1
- Micro:bit 主板 X1
- Micro:bit 拓展板 X1
- 自锁开关 X1
1.micro:bit 版本
1.1 连线图见下方原理图
1.2 程序 https://makecode.microbit.org/_6eC6kK2mPazT
1.3 micro:bit 添加舵机组件
1.4 点击下载.hex文件,下载后拷贝到micro:bit所在位置即可
micro:bit 版本原理图
旋位电阻器 P3
舵机 P2
2.arduino版本
2.1 实物组装如下
2.2 添加舵机库文件arduino目录下libraries文件夹即可(详见附件)
2.3 编译程序是否无误
2.4 上传程序
Arduino 版本 原理图
#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. 如有错误请不吝斧正
附件
评论