超声波传感器--Arduino

人耳可以听到的频率范围20hz~20000hz,hz为1秒内上下震动的次数

超声波传感器:40HZ

    

 T:发出声波

R:接收声波

购买建议:HC-SR04,最大距离4m,最小距离2cm,精度3mm,测量角度15°

#include <Arduino.h>

#define trigPin 2
#define echoPin 3

void setup()
{
  Serial.begin(9600);
  //在不工作的情况下,trigPin和echoPin都是拉低的
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  digitalWrite(trigPin, LOW);
}

void loop()
{
  // 触发超声波传感器
  // 将trigPin拉高至少10us
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // 声音往返传输的时间ms
  // echoPin被拉高的时间等于声音往返时间(微秒)
  unsigned long duration = pulseIn(echoPin, HIGH, 30000); // 计算这个引脚从高变低电平的时间,最大30ms

  // 声音的速度340m/s
  // 340m/s = 0.034mm/us
  float distance = duration * 0.034 / 2; //计算距离mm,声音是往返,所以除以2
  Serial.print("Distance:");
  Serial.print(distance);
  Serial.println(" cm");
  delay(1000);
}

下一步改进策略,加入传感器滤波算法,减小测量误差。

超声波传感器库推荐:NewPing

 

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值