STM32 + C# 이용 팬(FAN) 속도 제어와 RPM 읽기 테스트

작년에 ARM 기반 STM32 MCU를 사용하는 프로젝트에서 일부 기능 중 리모트로

  • 쿨링팬을 ON/OFF 할 수 있어야하고,
  • 쿨링 세기조절이 가능해야하며,
  • 현재 팬 상태(RPM)를 받아올 수 있어야 하는것을
  • 무선(30 ~ 50m 거리)으로 Windows 상에서 모두 처리할 수 있으면 했습니다.

목표로 하는것을 대충 다이어그램으로 그려보면 다음과 같습니다.

Windows 프로그램에서 RS232로 특정 값을 STM32로 보내면 그에 상응하는 값으로 제어 시그날을 변경하도록 프로그램 했습니다.

 

 

 

 

 

회로도

TunaLabs에서 프로젝트 당시 사용한 4핀 팬 제어에 대한 예제 회로입니다.

쿨링팬 제어와 피드백 시그날이 아이솔레이션되어 있기때문에 쿨링팬에서 문제가 발생하더라도 MCU에 영향이 가지않습니다.

 

 

 

 

 

테스트

프로젝트 진행당시 개발보드 테스트 동영상들입니다.

 

팬 속도 제어

Windows 상에서 C# WPF로 작성된 프로그램으로 쿨링팬 속도를 제어하는 모습입니다.

오실로스코프 파형은 쿨링팬 제어 핀에 연결된 옵토아이솔레이터 쪽입니다.

 

STM32에서 타이머 인터럽트를 이용하여 PWM 를 만들었습니다.

 

Fan Speed Control via WPF from maguro on Vimeo.

 

 

 

팬으로부터 RPM 피드백 받기

팬으로부터 RPM 값을 받는 모습입니다.

RS232 시리얼 모니터에서 캡처된 주파수 값과 회전 RPM을 보여주고 있습니다.

 

STM32에서 타이머 입력캡처를 이용하여 팬에서 출력되는 센서값을 읽어들였습니다.

 

4-Wire Fan RPM Feedback Test from maguro on Vimeo.

 

 

 

참고되시기 바랍니다.

 

 

 


 

연관글

 

4핀 쿨러 핀맵과 속도제어 및 RPM 센싱 방법

 

Leave a Reply

Your email address will not be published. Required fields are marked *