楼主: eagler8

[经验] 【Arduino】108种传感器模块系列实验(110)---US-026超声波测距

[复制链接]

签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2019-9-8 09:50 | 显示全部楼层
09.jpg
10.jpg

签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2019-9-8 11:12 | 显示全部楼层
[mw_shl_code=arduino,true]/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百: AT-09蓝牙4.0BLE模块 串口引出 CC2541兼容HM-10 (BT05)
1、实验项目:US-025/US-026高精度测距例程
2、实验接脚:
EchoPin = D2
TrigPin = D3
GND = GND
VCC  = 5V
*/

unsigned int EchoPin = 2;
unsigned int TrigPin = 3;

unsigned long Time_Echo_us = 0;
unsigned long Len_mm_X100 = 0;
unsigned long Len_Integer = 0;
unsigned int Len_Fraction = 0;

void setup()
{
Serial.begin(9600);
pinMode(EchoPin, INPUT);
pinMode(TrigPin, OUTPUT);
}

void loop()
{
digitalWrite(TrigPin, HIGH);
delayMicroseconds(50);
digitalWrite(TrigPin, LOW);
Time_Echo_us = pulseIn(EchoPin, HIGH);

if((Time_Echo_us < 60000) && (Time_Echo_us > 1))

{
Len_mm_X100 = (Time_Echo_us*34)/2;
Len_Integer = Len_mm_X100/100;
Len_Fraction = Len_mm_X100%100;
Serial.print("Present Length is: ");
Serial.print(Len_Integer, DEC);
Serial.print(".");
if(Len_Fraction < 10)
Serial.print("0");
Serial.print(Len_Fraction, DEC);
Serial.println("mm");
}

delay(1000);
}[/mw_shl_code]

签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2019-9-8 11:13 | 显示全部楼层
11.jpg

签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2019-9-8 12:35 | 显示全部楼层
[mw_shl_code=arduino,true]/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百: AT-09蓝牙4.0BLE模块 串口引出 CC2541兼容HM-10 (BT05)
1、实验项目:US-025/US-026高精度测距例程
2、实验接脚:
EchoPin = D2
TrigPin  = D3
GND = GND
VCC  = 5V
*/

unsigned int EchoPin = 2;           // connect Pin 2(Arduino digital io) to Echo at US-025/US-026
unsigned int TrigPin = 3;           // connect Pin 3(Arduino digital io) to Trig at US-025/US-026
unsigned long Time_Echo_us = 0;
unsigned long Len_mm  = 0;

void setup()
{  //Initialize
    Serial.begin(9600);                        //Serial: output result to Serial monitor
    pinMode(EchoPin, INPUT);                    //Set EchoPin as input, to receive measure result from US-025,US-026
    pinMode(TrigPin, OUTPUT);                   //Set TrigPin as output, used to send high pusle to trig measurement (>10us)
}

void loop()
{
    digitalWrite(TrigPin, HIGH);              //begin to send a high pulse, then US-025/US-026 begin to measure the distance
    delayMicroseconds(20);                    //set this high pulse width as 20us (>10us)
    digitalWrite(TrigPin, LOW);               //end this high pulse
   
    Time_Echo_us = pulseIn(EchoPin, HIGH);               //calculate the pulse width at EchoPin,
    if((Time_Echo_us < 60000) && (Time_Echo_us > 1))     //a valid pulse width should be between (1, 60000).
    {
      Len_mm = (Time_Echo_us*34/100)/2;      //calculate the distance by pulse width, Len_mm = (Time_Echo_us * 0.34mm/us) / 2 (mm)
      Serial.print("Present Distance is: ");  //output result to Serial monitor
      Serial.print(Len_mm, DEC);            //output result to Serial monitor
      Serial.println("mm");                 //output result to Serial monitor
    }
    delay(1000);                            //take a measurement every second (1000ms)
}[/mw_shl_code]

签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2019-9-8 13:11 | 显示全部楼层
[mw_shl_code=arduino,true]/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百: AT-09蓝牙4.0BLE模块 串口引出 CC2541兼容HM-10 (BT05)
1、实验项目:用串口显示测出的距离值
2、实验接脚:
EchoPin = D2
TrigPin  = D3
GND = GND
VCC  = 5V
*/

// 设定SR04连接的Arduino引脚
const int TrigPin = 3;
const int EchoPin = 2;
float distance;
void setup()
{   // 初始化串口通信及连接SR04的引脚
        Serial.begin(9600);
        pinMode(TrigPin, OUTPUT);
    // 要检测引脚上输入的脉冲宽度,需要先设置为输入状态
        pinMode(EchoPin, INPUT);
    Serial.println("Ultrasonic sensor:");
}
void loop()
{
    // 产生一个10us的高脉冲去触发TrigPin
        digitalWrite(TrigPin, LOW);
        delayMicroseconds(2);
        digitalWrite(TrigPin, HIGH);
        delayMicroseconds(10);
        digitalWrite(TrigPin, LOW);
    // 检测脉冲宽度,并计算出距离
        distance = pulseIn(EchoPin, HIGH) / 58.00;
        Serial.print(distance);
        Serial.print("cm");
        Serial.println();
        delay(1000);
}[/mw_shl_code]

签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2019-9-8 13:22 | 显示全部楼层
13.jpg

签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2019-9-8 13:24 | 显示全部楼层
12.jpg

签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2019-9-8 13:44 | 显示全部楼层
14.jpg

签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2019-9-8 13:46 | 显示全部楼层
15.jpg

签到天数: 506 天

[LV.9]以坛为家II

 楼主| 发表于 2019-9-8 13:47 | 显示全部楼层
16.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

原价299元【语音开发板套件】限时免费领!
原价299元【语音开发板套
教你让OLED动起来!多重字符串版!
教你让OLED动起来!多重字
大家都知道:arduino单片机是单线程的 而上次教程中的多段字符串的运行速度必须一致
TTGO T8 1.7.1使用TFT_eSPI库驱动2.4寸ILI9341屏幕显示板载SD内图片
TTGO T8 1.7.1使用TFT_eSP
TTGO T8 1.7.1采用Espressif官方ESP32-WROVER模块制作,4MB闪存和8MB PSRAM,支持TF
TTGO TFT屏幕Arduino使用的小结
TTGO TFT屏幕Arduino使用
TTGO TFT屏幕是一款ESP32和1.44寸LCD屏幕组合的产品,屏幕由ST7789驱动。ESP32自带520
分享我的第一个点灯程序——家庭控制中心
分享我的第一个点灯程序—
2020年,在B站上初识ESP8266,被ESP8266的低门槛、高性价比深深吸引,2020年6月20日,
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表