STM32

STM32 버튼을 이용한 7세그먼트 초기화

찬영_00 2024. 12. 25. 10:07

나의 프로젝트의 기본적인 로직이 다 완성된 것 같다.

미니 프로젝트라 조금 조잡해보일 수 있지만, 하고 싶어서 하는 것이니 양해바란다.

먼저 저번 포스팅에서 RTOS에서 진동 감지 센서와 LED, 7세그먼트를 적용하였다.

이번엔 버튼을 이용하여 7세그먼트를 초기화하겠다.

 

먼저 버튼은 Input으로 설정해주자

 

이렇게 설정해주고 회로는 아시리라 생각하지만 

https://m.blog.naver.com/sisosw/221668811609

 

버튼으로 LED 제어하기

I. 생각하기 ■ 목표 스위치(버튼)으로 LED를 On/Off 하게 한다. ■ 푸시 버튼 스위치 (Push Butto...

blog.naver.com

위 블로그에서 자세히 설명해주니 참고해도 된다.

 

코드는 다음과 같이 수정해주면 된다.

void StartDefaultTask(void const * argument)
{
  /* USER CODE BEGIN 5 */
  /* Infinite loop */
  uint8_t checkButton = 0;


  for(;;)
  {
	  display_number(score, 80);
	  if(HAL_GPIO_ReadPin(GPIO_PA2_Button_GPIO_Port, GPIO_PA2_Button_Pin) == 0){
		  ++checkButton;
		  if(checkButton > 10){
			  //HAL_GPIO_WritePin(GPIO_PC13_LED_GPIO_Port, GPIO_PC13_LED_Pin, 0);
			  score = 0;
			  checkButton = 0;
		  }
	  }

	  osDelay(10);
  }
  /* USER CODE END 5 */
}

 

채터링때문에 10번 이상 일때만 동작하게끔 해두었다.

tick을 사용하려했지만 tick은 진동센서에서 사용했으므로 여기서는 카운터로 해보고 싶었다.

여기서 카운터가 가능한 이유는 버튼은 어차피 7세그먼트를 초기화하기 위한 버튼으로 꾹 눌르거나 짧게 눌러도 채터링이 10번 이상 발생하기 때문에 카운터로 사용해도 무방하다고 생각했다.

 

https://youtu.be/wWOrOAJIXHo

 

구현 영상이다.

'STM32' 카테고리의 다른 글

STM32로 진동 감지 센서 + 7세그먼트 제어 - 2  (0) 2024.12.24
STM32로 진동 감지 센서 + 7세그먼트 제어 - 1  (1) 2024.12.23
STM32로 DFR0027를 다루어 보기  (0) 2024.12.22
STM32 익히기 2)  (0) 2024.12.05
STM32 익히기 1)  (0) 2024.12.02