본문 바로가기
임베디드

[오제이 튜브의 임베디드 강의] 18강. 내 힘으로 스위치 회로 만들기

by 덤더리덤떰 2025. 1. 24.

1. 오늘의 목표

: 아래 사진과 같이 회로도 구성하기

 

 

 

 

 

 

 

 

 

 

 

 

 

2. 회로도 구성

 

 

 

  • 전원을 공급하기 위해 또 다른 빨강 점퍼선으로 50a에 연결 
  • 저항은 4.7k(=4700)이므로 노랑-보라-빨강 순으로 되어있는 저항 연결해야함 
  • 저항은 50b와 45b에 연결 
  • 흰색 수컷-암컷 점퍼선을 STM PCB의 PB0와 45a에 연결 

 


 

 

 

  • 노랑 수컷-수컷 점퍼선 이용하여 45c와 20d에 연결
  • 파랑 수컷-수컷 점퍼선 이용하여 18d와 같은 세로라인의 그라운드(-)에 연결  

 

2-1. 코딩 

  • PB0의 GPIO Input으로 설정 후 아래 사진과 같이 설정  

(우) 코드 생성하면 빨간 네모 안의 내용 추가됨
(왼) 전역변수 선언 (우) while문 내에 코드 작성

  • HAL_Delay에 breakpoint 걸고 디버깅 하면 button_state=1 이었다가 스위치 누르고 다음으로 넘어가면 0이 됨

 

 

3. 버튼을 누르면 LED켜지도록 회로 구성하기 


 

  • 수컷-수컷 빨강 점퍼선으로 전원 공급받기 위해 +라인 59번과 f60에 연결 
  • LED의 (+)를 g60과 g57에 연결

 

  • 220v 저항을 h57과 h50에 연결
  • 주황 수컷-암컷 점퍼선 이용하여 저항과 PB6 연결(i50)
  • 이때, GPIO가 Low가 되어야 3.3v에서 PB6으로 전류가 흘러서 LED가 켜지게 됨 

 

 

3-1. 코딩

  • 버튼을 누르면 HAL_GPIO_ReadPin 함수의 반환값이 0이 되기 때문에 if문에서 !을 붙여준다 
  • 버튼을 누르면 if문안에 들어오게 되고 이때 GPIO가 Low여야 전원이 켜지기 때문에 WritePin으로 0을 써준다 
  • else문을 통해 High로 바꾸어서 만약 버튼을 누르지 않으면 High가 출력되어 최종적으로 led가 켜지지 않도록 한다