**Autonomous driving tech./Learning

[2024자율로봇대회] TinkerCAD학습 02-Ultrasonic Sensor

2wnswoo 2024. 11. 9. 02:43

 

초음파 센서( Ultrasonic Sensor )

- Round Trip Time ( RTT )

  응답 신호가 돌아올 때까지의 시간

- 20khz대 이상의 음을 활용

- triggerPin : 초음파 센서를 작동시키기 위해 신호를 보내는 핀이다. 이 핀은 출력모드로 설정된다.

- echoPin : 초음파 센서가 반사된 신호를 수신하는 핀이다. 이 핀은 입력 모드로 설정된다.

- delay가 각 코드마다 있는 이유는 음파 송신의 안정성을 위함이다.

//
int time = 0;

int input = 0;

int distance = 0;

long readUltrasonicDistance(int triggerPin, int echoPin)
{
  pinMode(triggerPin, OUTPUT);  // Clear the trigger
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);
  // Sets the trigger pin to HIGH state for 10 microseconds
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin, LOW);
  pinMode(echoPin, INPUT);
  // Reads the echo pin, and returns the sound wave travel time in microseconds
  return pulseIn(echoPin, HIGH);
}

void setup()
{
  Serial.begin(9600);
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
}

void loop()
{
  distance = 0.01723 * readUltrasonicDistance(7, 6);
  Serial.println(distance);
  if (distance >= 200) {
    digitalWrite(13, HIGH);
  } else {
    digitalWrite(13, LOW);
  }
  if (distance >= 100 && distance < 200) {
    digitalWrite(12, HIGH);
  } else {
    digitalWrite(12, LOW);
  }
  if (distance < 100) {
    digitalWrite(11, HIGH);
  } else {
    digitalWrite(11, LOW);
  }
  delay(10); // Delay a little bit to improve simulation performance
}