Arduino传感器05.Arduino 超声波传感器

HC-SR04超声波传感器使用声纳来确定物体的距离,就像蝙蝠一样。它提供了非常好的非接触范围检测,准确度高,读数稳定,易于使用,尺寸从2厘米到400厘米或1英寸到13英尺不等。

其操作不受阳光或黑色材料的影响,尽管在声学上,柔软的材料(如布料等)可能难以检测到。它配有超声波发射器和接收器模块。

超声波传感器
超声波

技术规格

电源 – + 5V DC
静态电流 – <2mA
工作电流 – 15mA
有效角度 – <15°
测距距离 – 2厘米-400厘米/1英寸-13英尺
分辨率 – 0.3厘米
测量角度 – 30度

必需的组件

你将需要以下组件:

  • 1 × Breadboard 面包板
  • 1 × Arduino Uno R3
  • 1 × 超声波传感器(HC-SR04)

程序

按照电路图进行连接,如下图所示。

电路图

草图

在计算机上打开Arduino IDE软件。使用Arduino语言进行编码控制你的电路。通过单击“New”打开一个新的草图文件。

Sketch

Arduino代码

const int pingPin = 7; // Trigger Pin of Ultrasonic Sensor
const int echoPin = 6; // Echo Pin of Ultrasonic Sensor

void setup() {
   Serial.begin(9600); // Starting Serial Terminal
}

void loop() {
   long duration, inches, cm;
   pinMode(pingPin, OUTPUT);
   digitalWrite(pingPin, LOW);
   delayMicroseconds(2);
   digitalWrite(pingPin, HIGH);
   delayMicroseconds(10);
   digitalWrite(pingPin, LOW);
   pinMode(echoPin, INPUT);
   duration = pulseIn(echoPin, HIGH);
   inches = microsecondsToInches(duration);
   cm = microsecondsToCentimeters(duration);
   Serial.print(inches);
   Serial.print("in, ");
   Serial.print(cm);
   Serial.print("cm");
   Serial.println();
   delay(100);
}

long microsecondsToInches(long microseconds) {
   return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds) {
   return microseconds / 29 / 2;
}

代码说明

超声波传感器有四个端子:+5V,Trigger,Echo和GND,连接如下:

  • 将+5V引脚连接到Arduino板上的+5v。
  • 将Trigger连接到Arduino板上的数字引脚7。
  • 将Echo连接到Arduino板上的数字引脚6。
  • 将GND连接到Arduino上的GND。

在我们的程序中,我们通过串口显示了传感器测量的距离,单位为英寸和厘米。

结果

你将在Arduino串口监视器上看到传感器测量的距离,单位为英寸和厘米。

发布者:suiyublg,转转请注明出处:https://huibian.net/1505-2/

(0)
suiyublg的头像suiyublg
上一篇 2017年4月23日 17:06
下一篇 2017年4月25日 17:10

相关推荐

  • Arduino教程16.Arduino 比较运算符

    假设变量A为10,变量B为20,则: 运算符名称 运算符简写 描述 例子 等于 == 检查两个操作数的值是否相等,如果相等,则条件为真(true)。 (A == B)不为真 不等于 != 检查两个操作数的值是否相等,如果值不相等,则条件为真。 (A != B)为真 小于 < 检查左操作数的值是否小于右操作数的值,如果是,则条件为真。 (A < B…

    2017年3月23日
    41700
  • Arduino教程13.Arduino 时间函数

    Arduino提供四种不同的时间操作函数。它们是: 序号 函数和描述 1 delay() 函数delay()函数的工作方式非常简单。它接受单个整数(或数字)参数。此数字表示时间(以毫秒为单位)。 2 delayMicroseconds() 函数delayMicroseconds()函数接受单个整数(或数字)参数。一毫秒内有一千微秒,一秒内有一百万微秒。 3 …

    2017年3月29日
    61894
  • Arduino教程25.Arduino while循环

    while循环将会连续、无限循环,直到括号()内的表达式变为false。必须用一些东西改变被测试的变量,否则while循环永远不会退出。 while循环语法 while(expression) { Block of statements; } while循环执行顺序

    2017年3月25日
    45300
  • Arduino函数库04.Arduino 数学库

    Arduino数学库(math.h)包含了许多用于操作浮点数的有用的数学函数。 库中的宏 以下是在标题math.h中定义的宏: 宏 值 描述 M_E 2.7182818284590452354 常数e。 M_LOG2E 1.4426950408889634074/* log_2 e */ e以2为底的对数。 M_1_PI 0.3183098861837906…

    2017年4月3日
    49901
  • Arduino教程14.Arduino 数组

    数据已然成为企业管理不可缺少的因素,过去企业在用的更多是ERP、CRM之类的内部数据,其实外部数数组是连续的一组相同类型的内存位置。要引用数组中的特定位置或元素,我们指定数组的名称和数组中特定元素的位置编号。 下图给出了一个名为C的整数数组,它包含11个元素。通过给出数组名称,后面跟特定元素的位置编号:方括号([]),你可以引用这些元素中的任何一个。位置编号…

    2017年3月30日
    52001

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
欢迎大家来到大雄学编程!