zoukankan      html  css  js  c++  java
  • 树莓派练习程序(超声波测距)

    最近弄了块树莓派,业余研究研究。

    超声波模块用的是HC-SR04,一共四个引脚,如下图:

    树莓派的引脚如下图:

    我们将Vcc连接物理接口2,Trig连接物理接口38,Echo连接物理接口40,Gnd连接物理接口39。

    实物连接如下图:

    编程使用WiringPi库,使用wpi引脚编码方式控制GPIO。

    代码如下:

    #include <wiringPi.h>
    #include <stdio.h>
    #include <sys/time.h>
    
    #define Trig    28
    #define Echo    29
    
    void ultraInit(void)
    {
        pinMode(Echo, INPUT);
        pinMode(Trig, OUTPUT);
    }
    
    float disMeasure(void)
    {
        struct timeval tv1;
        struct timeval tv2;
        long start, stop;
        float dis;
    
        digitalWrite(Trig, LOW);
        delayMicroseconds(2);
    
        digitalWrite(Trig, HIGH);
        delayMicroseconds(10);      //发出超声波脉冲
        digitalWrite(Trig, LOW);
        
        while (!(digitalRead(Echo) == 1))
            ;
        gettimeofday(&tv1, NULL);           //获取当前时间
    
        while (!(digitalRead(Echo) == 0))
            ;
        gettimeofday(&tv2, NULL);           //获取当前时间
    
        start = tv1.tv_sec * 1000000 + tv1.tv_usec;   //微秒级的时间
        stop  = tv2.tv_sec * 1000000 + tv2.tv_usec;
    
        dis = (float)(stop - start) / 1000000 * 34000 / 2;  //求出距离
    
        return dis;
    }
    
    int main(void)
    {
        float dis;
    
        if (wiringPiSetup() == -1) { //when initialize wiring failed,print messageto screen
            printf("setup wiringPi failed !");
            return 1; 
        }
    
        ultraInit();
        
        while (1) {
            dis = disMeasure();
            printf("distance = %0.2f cm
    ", dis);
            delay(1000);
        }
    
        return 0;
    }

     结果如下图:

    参考:

    http://blog.csdn.net/jcdjx/article/details/27313345

    http://blog.csdn.net/xdw1985829/article/details/39580401/

  • 相关阅读:
    python基础-迭代器,闭包
    python基础-练习题
    python基础-函数的进阶
    python基础-函数
    python实现十大经典算法
    Auto-Encoders实战
    Variational Auto-Encoders原理
    Reparameterization Trick
    Adversarial Auto-Encoders
    AutoEncoders变种
  • 原文地址:https://www.cnblogs.com/tiandsp/p/8325798.html
Copyright © 2011-2022 走看看