【2020】多功能门闸

2020-02-021.1万
AI 快速预览详细 收起
多功能门闸是一个基于Arduino的项目,使用Arduino UNO、舵机、声音传感器和雨水传感器等硬件。通过图形化编程,实现当检测到声音时门闸打开,过一会儿再关闭;雨天门闸会一直打开。这个项目适合STEM教育和青少年科创比赛,锻炼孩子的动手能力和逻辑思维。
现在正是假期,大家是不是都十分想购物呢?如果你是想去一个超市买点东西,是否关注过上面的门闸呢?为此,我制做了“多功能门闸”。


步骤1准备材料



材料清单

1x

Arduino套装
链接







步骤2编程平台



这里我使用的是Mind+编程平台,请看下图。





步骤3组装硬件



我使用这个套装中的Arduino UNO,舵机,雨水传感器,声音传感器,面包板,导线,LED灯,蜂鸣器,下面是他们的样子。














以及商场平面图。





步骤4编辑程序



我使用的是图形化编程,高手们可以参看下面的代码哦。原理:如果检测到声音,门闸打开,过一会再关上,方便安检人员检查等用途;雨天门闸会一直打开,方便人们躲雨。





代码

#include <DFRobot_Servo.h>Servo myservoA2;void dfrobotTone(int tonePin, int frequency, int duration) {  if(frequency == 0){    digitalWrite(tonePin,LOW);    return;  }  int period = 1000000.0 / frequency;  int pulse = period / 2.0;  pinMode(tonePin,OUTPUT);  for (int i = 1; i <= ((duration * 1000.0) / period); i++ ) {    digitalWrite(tonePin,HIGH);    delayMicroseconds(pulse);    digitalWrite(tonePin,LOW);    delayMicroseconds(pulse);  }}void setup() {        myservoA2.attach(A2);        myservoA2.angle(abs(0));}void loop() {        if ((analogRead(A1) > 30)) {                myservoA2.angle(abs(180));                digitalWrite(10, HIGH);                digitalWrite(11, LOW);        }        else {                if ((analogRead(A0) > 300)) {                        digitalWrite(11, LOW);                        digitalWrite(10, HIGH);                        myservoA2.angle(abs(180));                        delay(3000);                        dfrobotTone(9, 932, 500);                        delay(1000);                        digitalWrite(9, LOW);                }                else {                        digitalWrite(10, LOW);                        myservoA2.angle(abs(0));                        digitalWrite(9, LOW);                        digitalWrite(11, HIGH);                }        }}[size=0.8em]Arduino

[size=0.8em][url=]Copy[/url]






视频展示






创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
kylinpoet
kylinpoet
多谢分享,学习了。
- 没有更多了 -