제우스전자
게시판

  • 상담안내
    고객님께 만족도 높은 서비스를 위해 항상 친절하게 답변해 드리겠습니다.
    H. 010-7183-6976
    F. 054-972-7790
    E.master@zeus-elec.com
    평 일 : 08:30 ~ 17:30
공지사항

Re: STM32F401 HC-SR04 초음파센서 거리측정

페이지 정보

작성자 안상민 작성일21-04-27 08:59 조회3,957회 댓글0건

본문

>
 >
 > 보드명 : NUCLEO-F401RE & ZEUS SHIELD BD V1.1
> MCU : STM32F401RET6U
> 초음파센서 : HC-SR04
> 기능구현
> 1. HC-SR04로 거리 측정하여 OLED에 거리표시(mm)
> 2. POTENTIOMETER 값변화량을 ADC로 읽어 OLED에 값표시(0~4095)
>
> 주요 CODE
> #include "SR04.h"
> float SR04_Echo_HighTime= 0;
> void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
> { if( htim->Instance == TIM1 ) TIM1->SR =0;  }
>
> void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
> { if( GPIO_Pin == SR04_ECHO_Pin )
> {
> TIM1->CNT =0;
> while( HAL_GPIO_ReadPin( SR04_ECHO_GPIO_Port, SR04_ECHO_Pin) ) {
> }
> SR04_Echo_HighTime = TIM1->CNT ;
> }
> }
>
>
> float SR04_Trigger_out(char microSec)
> {
> HAL_GPIO_WritePin(SR04_TRIG_GPIO_Port, SR04_TRIG_Pin, GPIO_PIN_RESET); // Trigger Pin Low
> TIM1->CNT =0;
>
> while ( TIM1->CNT  < microSec ) {
> HAL_GPIO_WritePin(SR04_TRIG_GPIO_Port, SR04_TRIG_Pin, GPIO_PIN_SET); // Trigger Pin High for 10u sec
> }
>
> HAL_GPIO_WritePin(SR04_TRIG_GPIO_Port, SR04_TRIG_Pin, GPIO_PIN_RESET); // Trigger Pin Low
>
> HAL_Delay(10);
>
> printf("%6.0f mm\r\n",SR04_Echo_HighTime*0.17 );
>
> return SR04_Echo_HighTime*0.17;
> }
 >
 >
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.