7강. 초음파 센서값 읽어 오기
HeaderPin GPIO
Echo IO8
Trig IO7
이렇게 소켓들을 연결합니다.
iFLine에서는 HC-SR04 초음파 센서를 사용하고 있습니다.
이미 이 센서에 관련된 자료가 인터넷에 너무 많이 퍼져 있어서 새삼 따로 정리하는 것이 우습기도 하지만
친절하게 IFZero MCU보드에도 잘 동작하는 것을 확인하는 정도로 마무리할 까 합니다.
HC-SR04 초음파 센서 데이터시트 분석
데이터 시트의 내용을 먼저 분석해 봅니다.
Working Voltage: DC 5V
Working Current: 15mA
Working Frequency: 40Hz
Max Range: 4m
Min Range: 2cm
Measuring Angle: 15 degree
Trigger Input Signal: 10µS TTL pulse
Echo Output Signal Input TTL lever signal and the range in proportion
Dimension 45 * 20 * 15mm
위 스펙을 분석해 보면 대략 2Cm에서 4M까지 범위내에 장애물이 존재하는 것을 인지할 수 있는 능력을 제공합니다만 하기 주의 사항에서 공지해 드린 바와 같이 실제 3.3V에서는 초음파 감지 거리가 줄어 들 것 같습니다.
HC-SR04 초음파 센서는 동작 전압이 5V와 3.3V, 3.3V ~ 5V 이렇게 3 종류가 존재합니다.
5V에서 동작하는 HC-SR04 버전들은 ESP32 PICO V3이 메인 MCU인 IFZero 보드에서는 동작하지 않았습니다.
아래 그림에서 왼쪽 버전은 3.3V~5V 내에서 동작이 가능하도록 버전업된 모델이고,
오른쪽 버전은 HC-SR04P라는 이름의 3.3V 전용 보드입니다
iFLine은 오른쪽 3.3V HC-SR04P 초음파 센서를 제공합니다.
HC-SR04 초음파 센서 동작 분석
측정을 시작하기 위해 MCU에서 모듈의 Trigger Pin에 짧은 10us 트리거 펄스를 공급합니다.
그러면 모듈에서 40 kHz 주파수로 8개 사이클의 초음파 버스트를 발생합니다.
이 후 Ehco 핀을 통해 장애물에 부딪혀서 되돌아오는 에코 시간 즉, MCU가 High 레벨 구간의 시간을 읽어 냅니다. 특정 시간내 응답이 존재(즉, 이장치가 동작가능한 4m 내에서 )한다면 거리에 비례하는 펄스폭의 시간을 산출할 수 있습니다.
트리거 신호 전송과 시간 간격을 통한 범위 계산
에코 신호 시간( us )에 대한 거리 공식 :
거리( cm ) = us / 58
이에 대한 자세한 공식 유도는 코드의 주석에 남겨놓았습니다.
1 |
|