2023年10月10日 星期二

超音波物體距離偵測

料:Arduino主板一個、擴張版一個、雙母頭杜邦線8條、超音波感測器、紅黃綠LED各一。

效用:利用超音波感測器測量物體距離,物體距離小於15公分亮紅燈;物體距離大於15公分且小於30公分時亮黃燈;物體距離超過30公分亮綠燈。

應用:此裝置可用於防止汽車追撞的緊急剎車系統。

電路接法:



圖形程式方塊

程式碼:
int _ABVAR_1_e = 0 ;
int ardublockUltrasonicSensorCodeAutoGeneratedReturnCM(int trigPin, int echoPin)
{
  long duration;
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(20);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  duration = duration / 59;
  if ((duration < 2) || (duration > 300)) return false;
  return duration;
}


void setup()
{
  digitalWrite( 9 , LOW );

  pinMode( 2 , OUTPUT);
  pinMode( 5 , OUTPUT);
  pinMode( 8 , OUTPUT);
}

void loop()
{
  _ABVAR_1_e = ardublockUltrasonicSensorCodeAutoGeneratedReturnCM( 9 , 10 ) ;
  if (( ( ( _ABVAR_1_e + 5 ) ) < ( 15 ) ))
  {
    digitalWrite(2 , HIGH);
    delay( 300 );
    digitalWrite(2 , LOW);
    delay( 300 );
    digitalWrite(2 , HIGH);
  }
  else
  {
    if (( ( ( _ABVAR_1_e + 5 ) ) < ( 50 ) ))
    {
      digitalWrite(5 , HIGH);
      delay( 300 );
      digitalWrite(5 , LOW);
      delay( 300 );
      digitalWrite(5 , HIGH);
    }
    else
    {
      digitalWrite(8 , HIGH);
      delay( 300 );
      digitalWrite(8 , LOW);
      delay( 300 );
      digitalWrite(8 , HIGH);
    }
  }
}

沒有留言:

張貼留言

熱門文章