제우스전자
게시판

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

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

페이지 정보

작성자 최고관리자 작성일21-03-31 15:08 조회13,687회 댓글2건

첨부파일

본문

보드명 : 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;
}
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글목록

정대철님의 댓글

정대철 작성일

좋은 정보 얻고 갑니다.

김현기님의 댓글

김현기 작성일

좋은 정보 감사합니다.