資源簡介
Arduino 超聲波庫函數,非常好用的庫函數,支持四線超聲波模塊,速度快延遲小精度高
代碼片段和文件信息
#include?“SR04.h“
SR04::SR04(int?echoPin?int?triggerPin)?{
????_echoPin?=?echoPin;
????_triggerPin?=?triggerPin;
????pinMode(_echoPin?INPUT);
????pinMode(_triggerPin?OUTPUT);
????_autoMode?=?false;
????_distance?=?999;
}
long?SR04::Distance()?{
????long?d?=?0;
????_duration?=?0;
????digitalWrite(_triggerPin?LOW);
????delayMicroseconds(2);
????digitalWrite(_triggerPin?HIGH);
????delayMicroseconds(10);
????digitalWrite(_triggerPin?LOW);
????delayMicroseconds(2);
????_duration?=?pulseIn(_echoPin?HIGH?PULSE_TIMEOUT);
????d?=?MicrosecondsToCentimeter(_duration);
????delay(25);
????return?d;
}
long?SR04::DistanceAvg(int?wait?int?count)?{
????long?min?max?avg?d;
????min?=?999;
????max?=?0;
????avg?=?d?=?0;
????if?(wait?25)?{
????????wait?=?25;
????}
????if?(count?1)?{
????????count?=?1;
????}
????for?(int?x?=?0;?x?????????d?=?Distance();
????????if?(d?????????????min?=?d;
????????}
????????if?(d?>?max)?{
????????????max?=?d;
????????}
????????avg?+=?d;
????}
????//?substract?highest?and?lowest?value
????avg?-=?(max?+?min);
????//?calculate?average
????avg?/=?count;
????return?avg;
}
void?SR04::Ping()?{
????_distance?=?Distance();
}
long?SR04::getDistance()?{
????return?_distance;
}
long?SR04::MicrosecondsToCentimeter(long?duration)?{
????long?d?=?(duration?*?100)?/?5882;
????//d?=?(d?==?0)?999:d;
????return?d;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-04-15?19:49??超聲波\
?????目錄???????????0??2012-04-21?09:26??超聲波\examples\
?????目錄???????????0??2012-04-21?10:06??超聲波\examples\SR04_Example\
?????文件?????????336??2012-04-21?10:35??超聲波\examples\SR04_Example\SR04_Example.ino
?????文件?????????719??2012-02-26?02:41??超聲波\keywords.txt
?????文件?????????151??2012-04-21?10:42??超聲波\Readme.txt
?????文件????????1391??2012-02-26?02:41??超聲波\SR04.cpp
?????文件????????2024??2012-02-26?02:41??超聲波\SR04.h
評論
共有 條評論