寒假接触了Arduino,做了个“智能窗帘”,发个帖把整个过程写下来,各位觉得有帮助就最好啦!
一、分析目的及流程
我想做的“智能窗帘”就是要实现一个功能——清晨能自己拉开,傍晚能自己拉住,简单实用。
大致的过程就是:
收集光敏电阻采集到的光强数据;
判断是否需要打开电机,并确定电机转动方向。
至于为什么不做个APP在手机上,是因为个人比较认同“智能手机并不是未来智能家居系统的核心”的说法。[我才不会说是因为我不会]
二、准备材料
要实现这个功能,材料方面包括:外加电源(5V以上)、光敏电阻、直流电机、L293D(H桥)和一些电阻、跳线。
三、动手实现
1.编写程序
在东西回来之前,先把程序写了,源码如下:
[C]纯文本查看复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/*smartcurtain*/
/*writer:tttt-top*/
/*date:20160227*/
intenablepin=11;
intin1a=4;
intin2a=7;
intphotocellPin=2;//光敏电阻接口
intphotocellVal=0;//光敏输出值初始化
intcurtainState=0;//窗帘初始为拉开
inti=0,j=0;
voidsetup(){
//pinMode(ledPin,OUTPUT);
pinMode(enablepin,OUTPUT);
pinMode(in1a,OUTPUT);
pinMode(in2a,OUTPUT);
digitalWrite(enablepin,LOW);
Serial.begin(9600);
}
voidloop(){
//串口输出读到的光敏输出模拟值
photocellVal=analogRead(photocellPin);
Serial.print(photocellVal);
Serial.print("");
//光线不足且窗帘没拉
if(photocellVal<80&&curtainState==0)
{
i++;
Serial.println(i);
//delay(2000);
}
//当光线不足超过15分钟时,关闭窗帘
if(i>10&&curtainState==0)
{
digitalWrite(in1a,LOW);
digitalWrite(in2a,HIGH);
digitalWrite(enablepin,HIGH);
Serial.print("i=");
Serial.print(i);
Serial.println("fanzhuan,closethecurtain");//反转拉上窗帘
delay(4000);
digitalWrite(enablepin,LOW);
curtainState=1;//窗帘拉上
i=0;
}
//光线充足且窗帘拉上
if(photocellVal>300&&curtainState==1)
{
j++;
Serial.println(j);
}
if(j>10&&curtainState==1){
digitalWrite(in1a,HIGH);
digitalWrite(in2a,LOW);
digitalWrite(enablepin,HIGH);
Serial.print("j=");
Serial.print(j);
Serial.println("zhengzhuan,openthecurtain");//正转拉开窗帘
delay(2000);
digitalWrite(enablepin,LOW);
curtainState=0;
j=0;
}
delay(2000);
}
按图1、2所示连接各元件;
放张实物图:
连接完成后,再检查一遍电路。
3.烧写测试
手动改变光照强度,可从串口监视器中看到当前光强的准确值:
当光照小于80的次数多于10次(模拟实际使用中光线不足长达X秒)时,可以看到电机反转;大于300的次数多于10次(同理)时,看到电机正转,与预期一致,试验成功。
四、总结
本次尝试并没有将其用在真正的窗帘上,原因在于电机与窗帘之间的连接问题没有解决。本来的想法是用像自行车车链类似的齿轮连接电机和窗帘的一端,苦于一直没有找到可以试验的东西,所以仅用电机的正转反转来代表窗帘的拉开与关闭。关于这个问题各位朋友有好的建议的话可以一起讨论讨论。
360截图20160227134401319.jpg(60.15KB,下载次数:14)
图1光敏电阻的连接
360截图20160227134950564.jpg(97.88KB,下载次数:15)
图2H桥的连接
360截图20160227140855744.jpg(123.53KB,下载次数:23)
实物图
串口.png(56.64KB,下载次数:26)
串口监视器的数据
阅读全文
收起全文