自动开门 -----玩耍HC-SR501人体红外感应模块(完结)
时间:10-02
整理:3721RD
点击:
前两回,熟悉了hc-sr501模块,把减速电机和门联系在一起,这回,该做什么了呢?就是把前两回的成果,有机地整理到一起。
arduino板子的供电,还是得用到L298N,用面包板连接测试下,
arduino供电基本上是三种方式,usb、7~12V(最宽6~20V容易挂)的Vin、还有3.3V的。l298n可以从输入的12V中得到5V的输出,真是电子人居家旅游必备模块。
然后,开始调试程序。收到传来的高电平信号后,让电机正转10秒钟,然后停20秒,然后反转10秒,循环如斯夫。因为读取的是0~1023的模拟量,在第一回的帖子中,已经演示过,基本是660左右的样子,和说明上写的输出一个3.3V的高电平是差不多的,因为660/1024≈3.3/5。
翠花儿,上代码,数字口2和4控制电机正反转,初始拉低,通过调节tcount和tpause值,实现开关门和停顿时间达到精准舒适
- int analogPin = 3; // 中间管脚接A3口
- // 两侧管脚+5V和GND
- int dp2 = 2;
- int dp4 = 4;
- int val = 0; // 存储读出的电压值
- int tcount = 5000; // 开关门 电机转动所需时间计数
- int tpause = 3000; //门开了 过人所需时间计数
- void setup()
- {
- //Serial.begin(9600); //串口配置
- pinMode(dp2,OUTPUT);
- pinMode(dp4,OUTPUT);
- digitalWrite(dp2,LOW);
- digitalWrite(dp4,LOW);
- }
- void openDoor()
- {
- digitalWrite(dp2,HIGH);
- delay(tcount);
- delay(tcount);
- digitalWrite(dp2,LOW);
- delay(tpause);
- digitalWrite(dp4,HIGH);
- delay(tcount);
- delay(tcount);
- digitalWrite(dp4,LOW);
- }
- void loop()
- {
- val = analogRead(analogPin);
- //Serial.println(val);
- if(val > 600)
- {
- //电机正转 暂停 反转组合 完成一次开门动作
- openDoor();
- }
- else
- {
- //啥也不做 也可能做点啥
- }
- delay(100);
- }
先联合调试一下,翠花儿皇答应,上图片
因为红外可以被纸壳挡住,所以用了纸盒子隔离传感器,免得虐狗事件发生
上视频效果,因为文件大小限制,智能把视频掐成三段了
经过一番折腾,调试好了,安装就位。因为传感器的角度是100°左右的锥角,这个不太科学,需要遮挡一下。红外光和可见光有相似的物理性质,用纸壳遮挡即可,免得没想出去门就开了。调整好角度,让传感器斜向下扫射。
来上动态效果。还可以吧。
2016年的最后一天,比2017年元旦来得早了一天,在过去的365天里。额。在过去的365天半里,全国各族的电子男和电子女们,不畏艰辛,在工作和学习岗位上,奋勇向前,取得了前所未有的巨大成绩,令寡人心服口服,外带着佩服。论坛在过去的一年里,发展如火如荼,如芝麻开花节节高,如长江之水一发~~~而不可收拾。论坛的工作人员,一如既往地无私奉献,默默守候,为论坛的发展施展这洪荒之力。
新年即将到来,分享此DIY,祝各位小主开门见喜。相信,在即将到来的一年里,我们梦幻般的画卷,一定会一步步成为现实,我们的生活,一定会越来越爽!
不错啊,动手能力真强
瞎玩吧,没有钱,拿手边的东西自娱自乐