所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开

多功能门闸

李铭硕 李铭硕 2019-10-06 13:34:25

现在正是假期,大家是不是都十分想购物呢?如果你是想去一个超市买点东西,是否关注过上面的门闸呢?为此,我制做了“多功能门闸”。

步骤1 步骤1
准备材料
材料清单 材料清单
1x
Arduino套装
步骤2 步骤2
编程平台

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

projectImage
步骤3 步骤3
组装硬件

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

projectImage
projectImage
projectImage
projectImage

以及商场平面图。

projectImage
步骤4 步骤4
编辑程序

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

projectImage
代码 代码
	                    					#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);
		}
	}
}

	                    				

视频展示

Makelog作者原创文章,未经授权禁止转载。
1
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
|
[[c.comment_content]]