嵌入式

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,函数将引脚变为高电平后,开始计时 直到引脚变为低电平。
上一篇 下一篇

猜你喜欢

热点阅读