Nano 33 IoT HC-SR04 거리 센서 사용하기
HC-SR04 거리 센서는 2cm – 4m 범위에서 합리적으로 신뢰할 수 있는 거리 판독 값을 제공하는 저렴하고 유비쿼터스한 거리 센서입니다. 이 실습에서는 이 센서를 Arduino 마이크로컨트롤러와 함께 사용하는 방법을 배웁니다. 아래 그림은 초음파 거리센서 실습을 진행하기 위해 필요한 부품입니다.
센서 작동 방식
HC-SR04 센서는 40KHz 초음파 신호를 보내고 대상에서 반사되어 센서로 돌아올 때까지 기다립니다. 공기 중 음속은 상당히 일정하므로 음이 되돌아오는 데 걸리는 시간을 읽으면 대상까지의 거리를 추정할 수 있습니다.
센서를 작동하려면 센서의 트리거 핀에 10마이크로초의 로우-하이 펄스를 보냅니다. 이것은 센서가 초음파 신호를 보내도록 합니다. 그런 다음 에코 핀의 펄스 길이를 측정하여 신호가 반환되는 데 걸린 시간을 알 수 있습니다.
회로
이 센서는 5V에서 작동합니다. Uno의 경우 이것이 보드의 기본 공급 전압입니다. Nano 33 IoT와 같은 3.3V 보드를 사용하는 경우 5V로 전원을 공급하고 있는지 확인해야 합니다. USB 입력 또는 5V 소스를 사용하는 경우 외부 전압 입력에서 얻을 수 있습니다. 센서의 전압 입력을 USB에 연결할 때 5V를 출력해야 하는 VUSB 핀에 연결하거나 Nano 33 IoT에 5V로 전원을 공급하는 경우 Vin 핀에 연결해야 합니다.
아래 이미지는 Arduino Nano 33 IoT에 연결된 센서의 회로도와 브레드보드 레이아웃을 보여줍니다.
아래 그림처럼 Arduino Uno에 부착된 센서의 개략도와 브레드보드 레이아웃을 보여줍니다. Uno는 5V에서 작동하므로 Uno의 +5V 출력 핀을 사용하여 센서에 전원을 공급할 수 있습니다.
코드
센서를 읽기 위한 스케치는 위에 설명된 지침을 따릅니다. 먼저 트리거 핀을 낮추십시오. 그런 다음 트리거 펄스를 시작하기 위해 높은 값을 취한 다음 10 마이크로초를 기다립니다. 그런 다음 다시 낮추어 트리거 펄스를 종료합니다. 그런 다음 pulseIn() 명령을 사용하여 에코 핀의 펄스 길이를 측정합니다. 그런 다음 펄스 시간을 센티미터로 변환하는 수학을 하면 끝입니다.
// set up pin numbers for echo pin and trigger pins:
const int trigPin = 9;
const int echoPin = 10;
void setup() {
// set the modes for the trigger pin and echo pin:
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// initialize serial communication:
Serial.begin(9600);
}
void loop() {
// take the trigger pin low to start a pulse:
digitalWrite(trigPin, LOW);
// delay 2 microseconds:
delayMicroseconds(2);
// take the trigger pin high:
digitalWrite(trigPin, HIGH);
// delay 10 microseconds:
delayMicroseconds(10);
// take the trigger pin low again to complete the pulse:
digitalWrite(trigPin, LOW);
// listen for a pulse on the echo pin:
long duration = pulseIn(echoPin, HIGH);
// calculate the distance in cm.
//Sound travels approx.0.0343 microseconds per cm.,
// and it's going to the target and back (hence the /2):
int distance = (duration * 0.0343) / 2;
Serial.print("Distance: ");
Serial.println(distance);
// a short delay between readings:
delay(10);
}
감지 영역 지우기
모든 거리 센서는 신호를 보내고 특정 감지 시야에서 응답을 수신합니다. 그림 9는 거리 센서의 일반적인 시야를 보여줍니다. 필드는 원뿔 모양의 센서에서 이동합니다. 센서에 가장 가까이 있는 것은 작고, 센서로부터의 거리가 멀어질수록 넓어집니다. 시야에서 가장 가까운 물체가 감지된 물체입니다. 시야 밖에 서 있는 사람은 센서로 감지할 수 없습니다.
마찬가지로 시야에 있는 물체는 의도 여부에 관계없이 감지될 수 있습니다. 그림 10은 테이블 위에 놓인 초음파 센서를 보여줍니다. 센서의 시야는 센서에서 확장되고 센서에서 몇 센티미터 떨어진 테이블과 교차합니다. 이렇게 하면 센서가 더 먼 대상을 포착하지 못합니다.
거리 센서에 대한 자세한 내용은 거리 센서: 기본 사항을 참조하세요 .
참고
Lab: Ultrasonic Distance Sensor
'개발자 > Arduino' 카테고리의 다른 글
Adafruit Feather nRF52840 Express 01. 소개 (0) | 2021.12.06 |
---|---|
Arduino 와 Processing 나침반 만들기 (0) | 2021.11.11 |
Adafruit TCS34725 컬러 센서로 빛과 색상 측정 (0) | 2021.11.01 |
방수 초음파 센서 사용 거리 측정 Waterproof Ultrasonic Sensors (0) | 2021.10.12 |
LPS22HB 압력 센서 아두이노 실습하기 (0) | 2021.10.06 |
아두이노를 활용한 스마트 기기 제어 시스템 개발 교육과정 (0) | 2021.09.08 |
아두이노 INA219 DC 전류 센서 사용하기 (0) | 2021.07.25 |
nano 33 iot Serial Port Outputs make unstable WiFi Connection (0) | 2021.05.26 |
더욱 좋은 정보를 제공하겠습니다.~ ^^