电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
夏季大作战_自动水炮
分 享
扫描二维码分享
夏季大作战_自动水炮
arduino
微波传感
gada8881
关注
发布时间: 2020-08-25
丨
阅读: 616
#### 引言: **Arduino做的各种应用广泛被开源硬件爱好者喜欢。今天给大家介绍一个互动性强的arduino游戏,特别适合这个炎热的夏天户外娱乐,这个项目利用了特别精确灵敏的微波传感来对移动物体进行识别,达到可以在传感识别后发送指令给伺服电机,由伺服电机和跟它固定在一起的喷水头同时进行随机的转动。并且同时喷出水来。由于是伺服随机转角,所以经过传感前面的人并不能用经验判断喷水方向,因此互动娱乐性更强。** ![](https://cf03.ickimg.com/bbsimages/202008/a2d46409b8e0942ec8861ed2ff55acdf.jpg) [ ](https://v.youku.com/v_show/id_XNDc5ODc0NjMzNg==.html " ") #### 第一步:展示内容 人从微波传感前经过后,伺服和水泵同时工作。一个转角度,一个喷水。 #### 第二步:伺服的随机转角 用random命令,并且建立一个函数来更高效的控制随机转角。 #### 第三步:硬件搭建 所需器材:A rduino UNO控制器(2);DF的微博传感器(3);5V伺服电机(4);12v 锂电池;(5);USB数据线;(6);12V水泵 (7);大功率场效应模块 ![](https://cf03.ickimg.com/bbsimages/202008/46fe05ed085b88db08176583008ba47d.png) #### 第四步:了解一下关键硬件的参数 根据测试,微波的方向性很好 探测距离: 2-16m连续可调,我最远测试是5M。 #### 第五步: 发一些硬件的图片。让人有个直观的认识 ![](https://cf03.ickimg.com/bbsimages/202008/967b2b13bfdf5b173846459da3dd4d53.png) ![](https://cf03.ickimg.com/bbsimages/202008/2543f8362489f04f8b498fedc0a302a0.jpg) #### 第六步:总体介绍 水炮系统是由微波传感器,伺服电机和水泵来完成的。测试距离是5M,但可以到16M最大距离。 伺服转角是随机的,随机的转角和水泵喷水时同步的。 #### 第七部:连线图 ![](https://cf03.ickimg.com/bbsimages/202008/fd93c576f3c1b413de01e6037f5512f2.jpg) #### 第八部:代码部分的设计**** ```c /@@* This sketch is made by gada888 2020-07-30 */ #include <ServoTimer1.h> int MosPin = 8; // transistor base connected to pin 8 ServoTimer1 servo1; // defines the servo long randOff = 0; long randNumber; #include <MsTimer2.h> int pbIn = 0; int count=0; volatile int state = LOW; //Define ledOut, default is off void setup() { servo1.attach(10); //servo on pin 10 //pinMode(8, OUTPUT); pinMode(2, INPUT); digitalWrite(8, LOW); randomSeed (analogRead (0)); // randomize pinMode(MosPin, OUTPUT); attachInterrupt(pbIn, stateChange, FALLING); MsTimer2::set(1000,process); MsTimer2::start(); } int pinin = 0; long countint = 0; void loop() { pinin = digitalRead(2); // reads the PIR sensor while (pinin == 0) { pinin = digitalRead(2); } Serial.println(count); // Printing times of 1000ms suspension delay(1); if(state == HIGH) { delay(1000); state = LOW; digitalWrite(MosPin, LOW); //delay(500); } } //--------------FUNCTION------------------ void stateChange() { count++; } void process() { if(count>1) { state = HIGH; servo1.write(90); randOff = random (500, 2000); delay(randOff); servo1.write(randNumber = random(45, 135)); delay(400); //gives servo time to get there digitalWrite(MosPin, HIGH); // turns pump on delay(500); //fires pump for 1/2 second digitalWrite(MosPin, LOW); // turns pump off servo1.write(90); // moves servo back to center randOff = random (500, 2000); delay(randOff); servo1.write(randNumber = random(45, 135)); delay(400); digitalWrite(MosPin, HIGH); delay(500); count=0; //Count zero } else count=0; } ``` ![](https://cf03.ickimg.com/bbsimages/202008/75815c7ec7287fbcd7fd034c7b65ff0b.gif)
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
0
)
gada8881
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交