Arduino 超声波测距
2022-06-26 本文已影响0人
Charles2018
实验一
串口显示测距值并且当值小于50cm时点亮led
int LED3 = PD3;
int trig = A0; // 触发
int echo = A1; // 反馈
int outputArray[] = { LED3, trig };
void setup()
{
pinMode(echo, INPUT);
for (int i = 0;i < sizeof(outputArray) / sizeof(outputArray[0]);i++)
{
pinMode(outputArray[i], OUTPUT);
}
Serial.begin(9600);
}
void loop()
{
long intervalTime = 0; // 时间常量
digitalWrite(trig,HIGH); // 高电平
delayMicroseconds(15); // 延时15μs
digitalWrite(trig, LOW); // 低电平
intervalTime = pulseIn(echo, HIGH); // 采样反馈的高电平宽度,单位μs
float S = intervalTime / 58.00; // 使用浮点计算出距离,单位cm
Serial.print(S);
Serial.println("cm");
if (S > 50)
{
digitalWrite(LED3, HIGH);
}
else
{
digitalWrite(LED3,LOW);
}
S = 0;
intervalTime = 0; // 清零
delay(500);
}
程序解密
pulseIn(pin,value)
pin; 进行脉冲计时的引脚
value; 要读取的脉冲类型,HIGH,LOW;如果是HIGH,函数将引脚变为高电平后,开始计时 直到引脚变为低电平。