日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

树莓派外设开发——超声波

發布時間:2023/12/29 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 树莓派外设开发——超声波 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.綜述
樹莓派外設開發需要用的wiringPi()庫函數
在調用時需要包含#include<wiringPi.h>文件
使用wiringPi()庫函數時需要將其初始化,方法為:調用
int wiringPiSetup();函數
編譯時需要連接 -lwiringPi庫函數

2.Linux中的測時方法
2.1 Linux中的struct timeval的結構體
timeval是time.h中的預定義結構體 其中包含兩個一個是秒,一個是微秒
struct timeval {
__kernel_time_t tv_sec; /* seconds /
__kernel_suseconds_t tv_usec; / microseconds */
};
2.2用 gettimeofday(&tv1, NULL);函數來獲取當前的時刻
2.3 獲取時間函數的具體用法

#include <stdio.h> #include <sys/time.h>int main() {struct timeval tv;gettimeofday(&tv,NULL);//獲取當前時間printf("the sec is %ld ,the usec is %ld\n",tv.tv_sec,tv.tv_usec);return 0; }


獲得當前時間相對于某一時刻(1970年1月1日到現在的時間)的時間的微秒部分

3.超聲波測距代碼實現

#include <stdio.h> #include <sys/time.h> #include <stdlib.h> #include <wiringPi.h>#define echo 27 #define trig 28void ultrasonicInit() {pinMode(echo,INPUT);pinMode(trig,OUTPUT);}double getDistance() {double dis;struct timeval start_tv;struct timeval end_tv;double start_time,end_time;//1.trig端口發送至少10us的高電平digitalWrite(trig,LOW);//先將trig引腳置低usleep(5);digitalWrite(trig,HIGH);//拉高usleep(10);//延遲10usdigitalWrite(trig,LOW);//2.echo 由低電平變為高電平表示開始發生while(digitalRead(echo));//等待echo由低電平變為高電平gettimeofday(&start_tv,NULL);//獲取開始發送的start_time = start_tv.tv_sec*1000000+start_tv.tv_usec;//3.echo由高電平變為低電平表示超聲波遇障礙物反彈回來接收回來的時間gettimeofday(&end_tv,NULL);end_time = end_tv.tv_sec*1000000+end_tv.tv_usec;//4.計算距離: 距離 = 速度 * 時間 dis = (end_time - start_time)/1000000*34000/2;return dis;return dis; } int int main(int argc, char const *argv[]) {double distance;//wiringPi庫的初始化ifwiringPiSetup() == -1{printf("wiringPi庫的初始化失敗\n");exit(-1);}//引腳初始化ultrasonicInit();//不斷測量距離while(1){distance = getDistance();printf("distance = %0.2f\n",distance );delay(1000);}return 0; }

總結

以上是生活随笔為你收集整理的树莓派外设开发——超声波的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。