Arduino项目——基于HC-SR04测距的智能垃圾桶

目        录

实现功能

工作原理

电路连接

控制代码


超声波是一种振动频率超过20kHz的机械波,沿直线方向传播,传播方向性好,传播距离也较远,在介质中传播时遇到障碍物就会产生反射波。此外,模块本身体积小,易于在任何机器人项目中使用,并提供2厘米至400厘米(约1英寸至13英尺)之间出色的非接触范围检测,精度为3mm。工作电压为5伏。由于超声波的以上特点,因此被广泛地应用于物体距离的测量中。
        HC-SR04一款设计有超声波发射探头、接收探头、信号放大集成电路等超声波模块模块共四个引脚,VCC为5V供电,Trig为触发信号输入,Echo为回响信号输出,GND为电源地。

实现功能

        在扔垃圾之前,用手或其他障碍物放在超声波传感器之前,当距离15cm时,舵机转动,实现盖子翻起。指示灯亮,蜂鸣器发生。在10秒后,舵机回到原位,盖子盖上。

图1 HC-SR04超声波测距模块
VCCHC-SR04电源接口,接Arduino上的5V引脚
Trig (Trigger)向外界触发超声波脉冲,接引脚12
Echo回响信号输出。当接收到反射信号时,引脚产生一个脉冲。脉冲的长度与检测发射信号所需的时间成正比,接引脚11
GNDHC-SR04接地引脚,接Arduino GND

工作原理

图2 HC-SR04超声波测距时序图


        Arduino给超声波模块Trig引脚10μs以上的脉冲触发信号,模块内部自动发送8个40kHz的声音脉冲,一旦检测到反射信号,即输出回响信号(Echo引脚)使设备的“超声特征”变得独一无二,从而使接收器能够将发射模式与环境超声噪声区分开,回响信号脉冲宽度与被测距离成正比。如果这些脉冲没有被反射回来,则回波信号将在38毫秒(38毫秒)后超时并返回低电平。

电路连接

图3 电路连接

控制代码


#include <Servo.h>
Servo myservo;

int trig=12;
int echo=11;

int led13=13;
int led3=3;

void setup(){
  myservo.attach(9);
  Serial.begin(9600);
  pinMode(echo,INPUT);
  pinMode(trig,OUTPUT);
  
  pinMode(led13,OUTPUT);
  pinMode(led3,OUTPUT);
}

void loop(){
  myservo.write(0);
  long val=0;
  digitalWrite(trig,HIGH);
  delayMicroseconds(15);
  digitalWrite(trig,LOW);
  val=pulseIn(echo,HIGH);
  float S=val/58.00;
  if(S<15){
    myservo.write(100);
    digitalWrite(led13,HIGH);
    digitalWrite(led3,HIGH);
  }
  delay(10000);
  S=0;
  digitalWrite(led13,LOW);
  digitalWrite(led3,LOW);
}
    
    
  • 4
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

群智能算法小狂人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值