找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1808|回复: 0
收起左侧

arduino超声波测距程序

[复制链接]
ID:891089 发表于 2021-4-25 10:39 | 显示全部楼层 |阅读模式
#define TrigPin 2
#define EchoPin 3

float Value_cm;

void setup()
{
    Serial.begin(9600);
    pinMode(TrigPin, OUTPUT);
    pinMode(EchoPin, INPUT);
}
void loop()
{
    digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
    delayMicroseconds(2);
    digitalWrite(TrigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(TrigPin, LOW);
    Value_cm = float( pulseIn(EchoPin, HIGH) * 17 )/1000; //将回波时间换算成cm
    //读取一个引脚的脉冲(HIGH或LOW)。例如,如果value是HIGH,pulseIn()会等待引脚变为HIGH,开始计时,再等待引脚变为LOW并停止计时。
    //返回脉冲的长度,单位微秒。如果在指定的时间内无脉冲函数返回。
    //此函数的计时功能由经验决定,长时间的脉冲计时可能会出错。计时范围从10微秒至3分钟。(1秒=1000毫秒=1000000微秒)
    //接收到的高电平的时间(us)* 340m/s / 2 = 接收到高电平的时间(us) * 17000 cm / 1000000 us = 接收到高电平的时间 * 17 / 1000  (cm)

    Serial.print(Value_cm);
    Serial.println("cm");
    delay(1000);
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表