php声波模拟开门,关于 php使用扩展控制树莓派io 驱动超声波测距
經(jīng)過(guò)昨天一下午,終于寫好了基于
只需要安裝完畢,就可以調(diào)用函數(shù)了:<?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?"初始化錯(cuò)誤!";
die;
}
//初始化引腳
ultraInit();
while?(1)?{
//測(cè)距
$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(){
//先關(guān)閉脈沖,初始化
digitalWrite(PI_TRIG,PI_LOW);
//等待2微秒
piDelayMicroseconds(2);
//發(fā)出超聲波脈沖
digitalWrite(PI_TRIG,?PI_HIGH);
piDelayMicroseconds(10);
//等待10秒,關(guān)閉脈沖
digitalWrite(PI_TRIG,?PI_LOW);
//關(guān)閉之后,馬上開(kāi)始判斷獲取聲波
while?(!(digitalRead(PI_ECHO)?==?1));
$startTime?=?piMicros();
//如果獲取不到了,說(shuō)明已經(jīng)接收完畢
while?(!(digitalRead(PI_ECHO)?==?0));
$endTime?=?piMicros();
//聲音在空氣中傳播是34000cm/s,?1000000微秒是1秒,去掉來(lái)回的聲波時(shí)間,求出距離
$dis?=?($endTime?-?$startTime)?/?1000000?*?34000?/?2;??//求出距離
return?$dis;
}
使用root權(quán)限運(yùn)行:
本文為仙士可原創(chuàng)文章,轉(zhuǎn)載無(wú)需和我聯(lián)系,但請(qǐng)注明來(lái)自仙士可博客www.php20.cn
總結(jié)
以上是生活随笔為你收集整理的php声波模拟开门,关于 php使用扩展控制树莓派io 驱动超声波测距的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《F1 2017》图文攻略 赛制、模式与
- 下一篇: 动态规划算法php,php算法学习之动态