經過昨天一下午,終于寫好了基于
只需要安裝完畢,就可以調用函數了:<?php
/**
*?Created?by?PhpStorm.
*?User:?tioncico
*?Date:?19-7-6
*?Time:?下午4:45
*/
define('PI_TRIG',0);
define('PI_ECHO',1);
if?(wiringPiSetup()===false){
echo?"初始化錯誤!";
die;
}
//初始化引腳
ultraInit();
while?(1)?{
//測距
$dis?=?disMeasure();
printf("distance?=?%0.2f?cm\n",?$dis);
piDelay(1000);
}
function?ultraInit(){
pinMode(PI_ECHO,?PI_INPUT);
pinMode(PI_TRIG,?PI_OUTPUT);
}
function?disMeasure(){
//先關閉脈沖,初始化
digitalWrite(PI_TRIG,PI_LOW);
//等待2微秒
piDelayMicroseconds(2);
//發出超聲波脈沖
digitalWrite(PI_TRIG,?PI_HIGH);
piDelayMicroseconds(10);
//等待10秒,關閉脈沖
digitalWrite(PI_TRIG,?PI_LOW);
//關閉之后,馬上開始判斷獲取聲波
while?(!(digitalRead(PI_ECHO)?==?1));
$startTime?=?piMicros();
//如果獲取不到了,說明已經接收完畢
while?(!(digitalRead(PI_ECHO)?==?0));
$endTime?=?piMicros();
//聲音在空氣中傳播是34000cm/s,?1000000微秒是1秒,去掉來回的聲波時間,求出距離
$dis?=?($endTime?-?$startTime)?/?1000000?*?34000?/?2;??//求出距離
return?$dis;
}
使用root權限運行:
本文為仙士可原創文章,轉載無需和我聯系,但請注明來自仙士可博客www.php20.cn