分享

Arduino使用HC-SR04超声波测距

 quasiceo 2016-01-18

Arduino使用HC-SR04超声波测距

对于距离测试的方法有很多种,而使用超声波来测距是很常见的,下面使用到的超声波模块HC-SR04,可测量范围为2-400cm,下面是其照片如下:
hc-sr04_ultrasonic_sensor_distance_measuring_module_1_
其有4根PIN,分别是VCC、Trig、Echo、GND,将其分别接到Arduino UNO R3板卡的5V、Digital PIN7、Digital PIN8、GND。
下面是相应的源码:

int echoPin = 8;
int trigPin = 7;
int ledPin = 13;

void setup() {
    pinMode(ledPin, OUTPUT);
    pinMode(trigPin, OUTPUT);
    pinMode(echoPin, INPUT);
}

void loop() {
    long duration, cm;

    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);

    duration = pulseIn(echoPin, HIGH);
    cm = msToCm(duration);
    if (cm > 20) {
        digitalWrite(ledPin, LOW);
    } else {
        digitalWrite(ledPin, HIGH);
    }
    delay(500);
}

long msToCm(long ms) {
    return ms / 29 / 2;
}

从源码可以看到,每次都从Trig引脚发送一个高电平方波脉冲,然后使用pluseIn()函数读取Echo引脚检测到高电平需要多久,再将该时间 值进行转换,即可得到距离值,声音在空气的传播速度为340m/s,那么相当于1ms传播29cm,而上面测试得到的是来回往返的时间差,故而还要减半处 理。当得到的距离值超过20cm时,会将UNO板上的L灯灭掉,如果小于该值则亮灯。
参考网址:
http://tieba.baidu.com/p/2105282413
http://www./id/Simple-Arduino-and-HC-SR04-Example/
http://www./id/Simple-Arduino-and-HC-SR04-Example/
http://blog./how-to-use-ultra-sonic-sensor-arduino-hc-sr04/

转载请注明:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多