목차
특징
- HC-SR04 모듈은 초음파 거리 측정센서입니다.
- 전압 : 5V
- 전류 : < 2mA
- 유효 측정 각도 : < 15도
- 측정해상도: 0.3 cm
- 크기 : 2.0 x 4.3 x 1.5 cm
사이즈
거리 측정 방법
데이터시트
WAT-Arduino128 예제
핀 연결
번호 | I/O | WAT-Arduino128 |
---|---|---|
1 | VCC | 5V |
2 | Trig | PA0 |
3 | Echo | PA1 |
4 | GND | GND |
소스코드
소스코드는 [파일]=>[예제]=>[WhiteAT] =>[HC-SR04] 에 있습니다. (라이브러리는 https://docs.whiteat.com/?page_id=5449 참조)
/* WAT-Arduino128과 HC-SR04 초음파 센서로 거리 측정 예제 WAT-Arduino128 : https://kit128.com/goods/view?no=64 HC-SR04 : https://kit128.com/goods/view?no=69 출처: http://whiteat.com/Arduino */ #define trigPin PA0 // Trigger Pin #define echoPin PA1 // Echo Pin #define maximumRange 500 // 최대 거리 #define minimumRange 2 // 최소 거리 long duration, distance; // 펄스 시간, 거리 측정용 변수 // 프로그램 시작시 초기화 작업 void setup() { Serial.begin(115200); // 시리얼 통신 초기화 pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } // 계속 실행할 무한 루프 void loop() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); // 측정된 시간을 cm로 환산 distance = duration/58.2; if (distance >= maximumRange || distance <= minimumRange) { Serial.println("out of range"); } else { Serial.println(distance); } delay(500); }
결과 화면
장애물과의 거리가 디버깅 창에 출력됩니다.
Arduino UNO R3 예제
핀 연결
번호 | I/O | UNO R3 |
---|---|---|
1 | VCC | 5V |
2 | Trig | 2 |
3 | Echo | 3 |
4 | GND | GND |
소스코드
소스코드는 [파일]=>[예제]=>[WhiteAT UNO] =>[HC-SR04] 에 있습니다. (라이브러리는 https://docs.whiteat.com/?page_id=5449 참조)
/* WAT-Arduino128과 HC-SR04 초음파 센서로 거리 측정 예제 Arduino UNO R3 : https://kit128.com/goods/view?no=337 HC-SR04 : https://kit128.com/goods/view?no=69 출처: http://whiteat.com/Arduino */ #define trigPin 2 // Trigger Pin #define echoPin 3 // Echo Pin #define maximumRange 500 // 최대 거리 #define minimumRange 2 // 최소 거리 long duration, distance; // 펄스 시간, 거리 측정용 변수 // 프로그램 시작시 초기화 작업 void setup() { Serial.begin(115200); // 시리얼 통신 초기화 pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } // 계속 실행할 무한 루프 void loop() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); // 측정된 시간을 cm로 환산 distance = duration/58.2; if (distance >= maximumRange || distance <= minimumRange) { Serial.println("out of range"); } else { Serial.println(distance); } delay(500); }
결과 화면
장애물과의 거리가 디버깅 창에 출력됩니다.