亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

基于 Arduino 和超声波传感器的自动门控制系统

组件与物料

Adafruit RGB 背光 LCD - 16x2×1
超声波传感器 HC-SR04 (通用)×1
蜂鸣器×1
直流电机×1
Arduino UNO×1
电机扩展板 (L293D)×1
杜邦线 (通用)×1

应用与在线服务

Arduino IDE

项目简介

如何使用超声波传感器 HR-SC04 实现自动开关门

本项目实现一套自动门开关系统。系统包含用于感应人或物体靠近门口的传感器。此类系统广泛应用于商场、超市等场所的自动门控制。

系统由 Arduino 单片机控制,包含直流电机(通过齿条齿轮驱动门扇滑动)、LCD 显示门状态、蜂鸣器在开门期间发声、以及控制器根据传感器检测结果控制门的开合。整套系统是一个运用机电一体化设计七步法设计的机电系统。

步骤 1:准备硬件材料与工具

LCD 和蜂鸣器非强制要求,仅为视觉和听觉提示门的开关状态。

材料清单:

  1. 安装有 Arduino IDE 的电脑
  2. Arduino 控制器(UNO、MEGA 均可,本项目选用低成本 UNO R3 用于学习及课程作业)
  3. HR-SC04 超声波传感器(作为接近传感器感应人/物到达门口)
    工作原理:IO 口触发至少 10μs 高电平 → 模块自动发送 8 个 40kHz 方波并检测回波 → 若有回波,IO 输出高电平,高电平持续时间即为超声波往返时间 → 测试距离 = (高电平时间 × 声速 340m/s) / 2
  4. 12V 直流电机(额定电流 70mA,最大 250mA,工作电压 3-12V,扭矩 1.9 Kgf.cm,空载转速 170RPM,减速比 1:48)
  5. LCD:16×2 点阵
  6. 压电蜂鸣器
  7. 电机扩展板:L293D(四路大电流半 H 桥驱动器)
    使用原因:直接用 9-12V 供电驱动电机会抽取大电流,若直连 Arduino 5V 引脚易烧毁单片机。电机扩展板相当于功率放大器,保护单片机。
  8. 机械结构件:用亚克力板制作带滑动门的房屋模型
  9. 杜邦线
  10. 电源

工具:万用表、电烙铁(非必需但推荐)

步骤 2:Arduino 程序

可下载附件 .ino 文件直接编译上传。

基于 Arduino 和超声波传感器的自动门控制系统
基于 Arduino 和超声波传感器的自动门控制系统

步骤 3:硬件连接

按原理图将所有硬件连接到 Arduino。附件原理图仅供参考,可根据实际板载引脚调整。最好参考我的程序确定引脚分配,如有疑问可联系我。

基于 Arduino 和超声波传感器的自动门控制系统
基于 Arduino 和超声波传感器的自动门控制系统
基于 Arduino 和超声波传感器的自动门控制系统

步骤 4:烧录程序并供电

将教程提供的 Arduino 草图上传至控制器。观看视频查看系统运行效果。

代码

Arduino 代码

#include 
LiquidCrystal lcd(12, 11, 5, 8, 9, 1);
const int trigPin = 7;
const int echoPin = 4;
const int mt_En_Pin1 = 2;
const int mt_IN1_Pin2 = 3;
const int mt_IN2_Pin3 = 6;
int buzz = 10;
long duration;
int distance;

void setup() {
  lcd.clear();
  lcd.begin(16, 2);
  lcd.print("WELCOME");
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(mt_En_Pin1, OUTPUT);
  pinMode(mt_IN1_Pin2, OUTPUT);
  pinMode(mt_IN2_Pin3, OUTPUT);
  Serial.begin(9600);
  pinMode(buzz, OUTPUT);
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034 / 2;
  if (distance <= 5) {
    digitalWrite(13, HIGH);
    delay(1000);
    digitalWrite(mt_En_Pin1, HIGH);
    analogWrite(mt_IN1_Pin2, 50);
    analogWrite(mt_IN2_Pin3, 0);
    delay(2000);
    analogWrite(mt_IN1_Pin2, 0);
    analogWrite(mt_IN2_Pin3, 0);
    delay(1000);
    tone(buzz, 1000);
    delay(1000);
    tone(buzz, 1000);
    delay(1000);
    noTone(buzz);
    delay(3000);
    lcd.clear();
    lcd.setCursor(0,1);
    lcd.print("Please Enter");
    delay(1000);
    analogWrite(mt_IN1_Pin2, 0);
    analogWrite(mt_IN2_Pin3, 50);
    delay(3000);
  } else {
    digitalWrite(13, LOW);
    digitalWrite(mt_En_Pin1, LOW);
    analogWrite(mt_IN1_Pin2, 50);
    analogWrite(mt_IN2_Pin3, 0);
  }
}

自定义零件与外壳

连接硬件示意图

基于 Arduino 和超声波传感器的自动门控制系统

原理图

连接硬件原理图

基于 Arduino 和超声波传感器的自动门控制系统

制造工艺

  1. 用 Arduino 制作万能红外遥控器:分步指南
  2. DIY 钢铁侠人偶:Arduino 控制超声波触发音效与灯光
  3. Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
  4. 自制可拳击的可编程键盘按钮:基于 Arduino 与压电元件的分步指南
  5. 互动 LED 矩阵门显:PIR 触发节日问候 + 待机特效
  6. 用 Arduino 测量地球质量:DIY 分步指南
  7. 非接触测温自动开门器:Arduino + 红外测温 + 舵机驱动
  8. DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
  9. Arduino 合成乐音:从零实现 88 键钢琴全音域
  10. 手把手打造Arduino Nano喂食机器人
  11. 智能无钥匙门锁:Arduino + Android 蓝牙密码控制舵机开锁
  12. Arduino 实时数字罗盘:HMC5883L + Processing 可视化教程