脉冲宽度测量函数笔记整理
在这里插入代码片
pulseIn(pin,value) //默认是1秒钟的超时时间
pulseIn(pin,value,timeout)//超时时间,单位微秒
说到底就是测某个高或者低电平的持续时间,示例是超声波测距。
TrigPin负责触发,EchoPin会给一个用高电平的持续时间来表示距离。
类示例
//第四章,库与类库
float distance;
void Set_SR04(int TrigPin,int EchoPin)
{
pinMode(TrigPin,OUTPUT);
pinMode(EchoPin,INPUT);
}
float Get_SR04(int TrigPin,int EchoPin)
{
digitalWrite(TrigPin,LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin,LOW);
float distance = pulseIn(EchoPin,HIGH);
return distance;
}
void setup()
{
Set_SR04(2,3);
Serial.begin(9600);
}
void loop()
{
distance = Get_SR04(2,3);
Serial.print(distance);
Serial.print("cm");
Serial.println();
delay(1000);
}