Wemos D1 Arduino超声波测距原理讲解加代码、超声波驱动SG90电机(垃圾桶感应开关)
先介绍一下超声波模块:
总共有四个端子,分别为VCC、GND、Trig、Echo。
VCC一般接5V电压;GND接地
Trig为输出接口,Echo为输入接口
Trig和Echo与超声波测距原理有关,
接下来介绍超声波测距原理:
超声波进行测距的时候,首先需要输出一个10us左右的高电平,这个高电平意味着要开始一次测量了,我们由Tring 这个端口给出高电平,代码如下:
digitalWrite(Trig,HIGH); //我们先把Trig写为高电平delay(10); //延时10usdigitalWrite(Trig,LOW); //回到低电平
开始测量之后,Echo就会跳到高电平,知道发出去的波回来为止,因此Echo为高电平的时间就是波从发出去到障碍物再从障碍物回来所用的时间,这个时间乘以速度就是距离。
测量时间因为我们刚好有pulseIn函数,所以可以简单的得到时间。
测量时间的代码如下:
return pulseIn(Echo,HIGH);
然后就是有时间计算出距离,我们只需要得到速度就可以了。那么声音在空气中的传播速度大约为343m/s,换算下来就是34300cm/s,然后因为一般测量的时间都是us级的,在换算下来就是0.0343cm/s.也就是说我们得到的时间在乘以0.0343就是波在空气中走过的距离。还有一个需要注意的点是,我们得到的距离是是实际距离的两倍,因为波走的是一个来回的距离。所以说最终的结果就是得到的时间乘以0.0343再除以2,因为小数不方便我们计算,因此将乘以0.0343换成除以1/0.0343即除以19.15,在除以2,最终的结果就是除以58.
代码如下:
dis = getTimes()/58;
总结下来整体的代码就是:
#define Trig D2 //定义Trig为IO口D2
#define Echo D8 //定义Echo为IO口D8void ininchaoShengBo() //初始化两个I口分别为输出和输入
{pinMode(Trig,OUTPUT);pinMode(Echo,INPUT);
}long getTimes() //令Trig输出一个10us的高电平,并返回Echo高电平的时间
{digitalWrite(Trig,HIGH);delay(10);digitalWrite(Trig,LOW);return pulseIn(Echo,HIGH);
}void setup() {ininchaoShengBo(); //超声波初始化Serial.begin(9600); //配置串口
}void loop() {long dis;dis = getTimes()/58; //根据时间的到距离Serial.print(dis); //在串口显示距离Serial.println("cm");delay(500);}
超声波驱动SG90电机:
超声波测得的距离小于8cm时驱动电机
#include <Servo.h>#define Trig D2
#define Echo D8
#define DuoJ D5Servo myDuoJi;void ininchaoShengBo()
{pinMode(Trig,OUTPUT);pinMode(Echo,INPUT);
}long getTimes()
{digitalWrite(Trig,HIGH);delay(10);digitalWrite(Trig,LOW);return pulseIn(Echo,HIGH);
}void setup() {ininchaoShengBo();Serial.begin(9600);myDuoJi.attach(DuoJ);
}void loop() {long dis;dis = getTimes()/58;if(dis <= 8){myDuoJi.write(0);delay(500);}else{myDuoJi.write(200);}}
Wemos D1 Arduino超声波测距原理讲解加代码、超声波驱动SG90电机(垃圾桶感应开关)相关推荐
- arduino 超声波测距原理_超声波测距灯
介绍硬件准备 本篇文章专门介绍用Arduino制作超声波测距灯,需要的材料是: 1. Arduino开发板 2. HC-SR04超声波模块 3. LED灯 4. 杜邦线若干 注意事项 之所以要写这 ...
- 【在线仿真】Arduino 超声波测距+LCD1602显示
[在线仿真]Arduino 超声波测距+LCD1602显示 程序代码 /*LiquidCrystal Library - Hello WorldThis sketch prints "Hel ...
- Arduino超声波测距模块控制蜂鸣器
Arduino超声波测距模块控制蜂鸣器 超声波传感器 蜂鸣器 电路连接.接线 源码 超声波传感器 超声波传感器是利用超声波的特性研制而成的传感器.超声波是一种振动频 率高于声波的机械波,由换能晶片在电 ...
- (十)基于Linux算时差——超声波测距原理及代码实现
学习日志(十) 基于Linux算时差--超声波测距原理及代码实现 测距原理基本说明 超声波测距模块:是用来测量距离的一种产品,通过发送和收超声波,利用时间差和声音传播速度,计算出模块到前方障碍物的距离 ...
- 超声波测距 c语言程序流程图,超声波测距c语言源程序代码-20210413051213.docx-原创力文档...
文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] 超声波测距C语言源程序代码 /*{HZ即单位s的 ...
- C#冒泡排序原理讲解及代码块
C#冒泡排序原理讲解及代码块 一.冒泡排序理论 (1)基本概念由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序.冒泡排序的时间复杂度为O(n*n). (2)逻辑分析依次比 ...
- C++版本计算n阶乘末尾0的个数原理讲解及代码实现
C++版本计算n阶乘末尾0的个数原理讲解及代码实现 /*! * Copyright (c) 2020,ZYF. * All Rights Reserved. * * \file Factorial.c ...
- HC-SR04超声波测距块讲解(附32单片机源码)
文章目录 一.HC-SR04超声波测距模块原理 1.模块简介 2.模块电气参数 3.模块工作原理 二.HC-SR04超声波测距模块与32单片机接线 三.32单片机源码 总结 一.HC-SR04超声波测 ...
- arduino超声波测距接线图详细_Arduino系列之超声波测距模块代码(一)
这里我将简单介绍超声波测距模块 SR04超声波传感器: 是利用超声波特性检测距离的传感器,其带有两个超声波探头,分别用作于发射和接收超声波.范围在3-450cm. 工作原理: 超声波发射器向某一方向发 ...
最新文章
- ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
- Allegro16.6软件布局设计技巧:模块复用
- oracle 11g autotrace,ORACLE 使用AUTOTRACE功能
- python numpy官网_python+numpy+scipy=matlab,抛弃matlab
- 接口隔离原则_设计模式之七大设计原则(上)
- 控制 Redis stream 的消息数量
- Python_多项式拟合
- MySQL将表中的yes改成no_mysql在不需要改程序的情况下通过操作数据库对单表数据量大的表进行分表...
- 自然语言处理工具HanLP被收录中国大数据产业发展的创新技术新书《数据之翼》...
- python的reduce()函数
- SQL错误Duplicate column name 'NAME'名字重复应使用别名
- python离线_python 离线一个网站
- JavaScript相关文章推荐
- 每日英语-2018.12.3
- [Python人工智能] 十九.Keras搭建循环神经网络分类案例及RNN原理详解
- hbuilderAnd海马玩模拟器的连接
- ps4绝地求生服务器维护,绝地求生官方更新公告 无停机维护公告
- React 函数组件导出自定义方法的办法说明
- http://39.98.219.132 题库标准答案(题库序号:1378)之沙盘游戏
- 中小企业营销兵法_小型企业创建营销计划的技巧
热门文章
- 火龙果的丰富美容营养
- c语言中的pause,C语言中的pause()函数和alarm()函数以及sleep()函数
- iTunes Connect相关
- 影响软件质量的因素有哪些?
- ASP.NET实现登录页面
- android studio有时候r.id找不到,Android Studio:R.id.editText中的错误
- SharePreference
- Java高级开发面试,java课程百度网盘
- 机器学习笔记(七)——逻辑回归算法
- 治疗鼻炎偏方大曝光 专家实解效果