아두이노 팬 제어

아두이노는 팬을 켜고 끌 수만 있는 것이 아니라 팬의 속도도 제어할 수 있습니다.

이 튜토리얼에서는 아두이노를 사용하여 선풍기를 켜고 끄는 방법을 배우게 됩니다.

팬을 구동하는 방법은 두 가지입니다: 릴레이 또는 MOSFET 모듈. 릴레이는 단순한 스위치이므로 팬은 완전히 켜지거나 완전히 꺼집니다. MOSFET 모듈도 그렇게 할 수 있으며, 딸깍거리는 소리 없이 PWM으로 팬의 속도도 설정할 수 있습니다. 이 페이지에서는 릴레이를 먼저, 그다음 MOSFET 모듈을 보여 줍니다.

준비물

1×아두이노 우노 R3 쿠팡 | 아마존
1×USB 2.0 타입 A-to-B 케이블 (USB-A PC용) 쿠팡 | 아마존
1×USB 2.0 타입 C-to-B 케이블 (USB-C PC용) 아마존
1×릴레이 아마존
1×(또는) MOSFET Module (AOD4184, LR7843 or FR120N) 아마존
1×12V DC 선풍기 아마존
1×(또는) 5V DC 선풍기 쿠팡 | 아마존
1×12V 전원 어댑터 아마존
1×DC 커넥터 전원 연결 잭 플러그 소켓 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) 아두이노 우노용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) Sensors/Servo Expansion Shield for Arduino Uno 쿠팡 | 아마존
1×(추천) 아두이노 우노용 브레드보드 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노용 케이스 쿠팡 | 아마존
1×(추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

DC 팬에 관하여

핀아웃

DC 팬은 보통 두 개의 핀을 가지고 있습니다:

  • Negative (-) pin (검은색): DC 전원 공급 장치의 음극선에 연결해야 합니다.
  • Positive (+) pin (빨간색): DC 전원 공급 장치의 양극선에 연결해야 합니다.
fan 사용법 핀아웃
image source: diyables.io

DC 전원 공급 장치의 전압은 팬에 지정된 전압과 같아야 합니다. 이 튜토리얼에서는 12VDC와 5VDC 팬을 사용할 것입니다.

팬 제어 방법

  • DC 팬이 12V/5V 전원 공급으로 작동한다면, 전속력으로 돌아갑니다.
  • DC 팬이 12V/5V PWM 신호로 구동된다면, 팬의 속도를 제어할 수 있습니다.

이 튜토리얼의 첫 번째 부분에서는 Arduino와 릴레이를 사용하여 팬을 켜고 끄는 방법을 배우려고 합니다. 팬의 속도를 제어하는 방법은 끝부분의 MOSFET 부분에서 보여 줍니다. 팬을 켜고 끄려면 Arduino와 팬 사이에 릴레이를 사용해야 합니다. Arduino는 릴레이를 통해 팬을 켜고 끌 수 있습니다. 릴레이(핀배열, 작동 방식, 프로그래밍 방법 등)에 대해 잘 모르신다면, 아두이노 - 릴레이에서 릴레이에 대해 배워보세요.

MOSFET 모듈이 처음이신가요? 핀과 작동 방식은 아두이노 - MOSFET 모듈 튜토리얼에 설명되어 있습니다.

DC 팬용 릴레이 vs MOSFET 모듈

릴레이 MOSFET 모듈
제어할 수 있는 것 팬 켜기 또는 끄기 팬 켜기 또는 끄기, 그리고 팬 속도(PWM)
소음 스위칭할 때마다 딸깍 소리 소리 없음
스위칭 속도 느림, 몇 밀리초 매우 빠름
마모 여러 번 스위칭하면 접점이 마모됨 움직이는 부분이 없어 마모되지 않음
팬 종류 AC 또는 DC 팬 DC 팬만 가능
팬 전원 릴레이 정격 내의 모든 전압 약 6V 이상
절연 예, 코일과 접점 사이 예, PC817 포토커플러로 절연
적합한 용도 AC 팬, 또는 켜기/끄기만 필요한 팬 속도 제어가 필요한 12V DC 팬

12V DC 팬에는 MOSFET 모듈이 보통 더 좋은 선택입니다. 최고 속도가 필요하지 않을 때 팬을 느리고 조용하게 돌릴 수 있기 때문입니다. 5V 팬은 이 모듈에 쓰기에는 전압이 너무 낮으므로 릴레이를 사용하세요. AC 팬에도 릴레이를 사용하세요.

선연결

아두이노 fan 연결 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

아두이노 코드

아래 코드는 팬을 5초 동안 켜고 5초 동안 끕니다.

/* * 이 아두이노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-controls-fan */ // 상수는 변경되지 않음 const int RELAY_PIN = 3; // Arduino 핀으로, 릴레이의 IN 핀에 연결됨 // setup 함수는 보드에 리셋을 누르거나 전원을 켤 때 한 번 실행됨 void setup() { // 디지털 핀 D3을 출력으로 초기화함. pinMode(RELAY_PIN, OUTPUT); } // loop 함수는 영원히 반복해서 실행됨 void loop() { digitalWrite(RELAY_PIN, HIGH); // 팬을 5초 동안 켬 delay(5000); digitalWrite(RELAY_PIN, LOW); // 팬을 5초 동안 끔 delay(5000); }

사용 방법

  • 아두이노를 USB 케이블을 통해 PC에 연결하세요
  • 아두이노 IDE를 열고, 올바른 보드와 포트를 선택하세요
  • 위의 코드를 복사하고 아두이노 IDE로 열기
  • 아두이노 IDE에서 Upload 버튼을 클릭하여 코드를 아두이노에 업로드하세요
  • 팬의 상태를 확인하세요

코드 설명

위의 아두이노 코드의 주석 라인에서 설명을 찾을 수 있습니다.

MOSFET 모듈로 팬 속도 제어하는 방법

이제 릴레이를 MOSFET 모듈로 바꿔 봅시다. 그러면 아두이노가 팬을 켜고 끌 뿐만 아니라 팬의 속도도 바꿀 수 있습니다.

배선도

아두이노 cooling fan mosfet module 연결 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

출발 연결 위치 (MOSFET 모듈)
Arduino 핀 9 PWM
Arduino GND GND
12V 어댑터 + +
팬 빨간색 선(+) + (어댑터 +와 같은 단자)
팬 검은색 선(−) LOAD
12V 어댑터 − −

팬 안에는 모터 코일이 있으므로 팬 선 양쪽에 플라이백 다이오드(1N4007 또는 1N5819)를 추가하세요. 줄무늬 쪽(캐소드)은 팬 +에, 다른 쪽은 팬 −에 연결합니다. 팬에 노란색 세 번째 선이 있으면 연결하지 말고 그대로 두세요.

아두이노 코드 - 팬 속도 제어

이 코드는 MOSFET 모듈 튜토리얼의 코드와 같습니다. 팬이 2초 동안 최고 속도로 돌고 2초 동안 멈춥니다. 그다음 10%에서 100%까지 단계적으로 빨라졌다가 다시 0%까지 느려집니다.

/* * 이 아두이노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-controls-fan */ const int MOSFET_PIN = 9; // Arduino pin connected to the PWM pin of the MOSFET module void setup() { Serial.begin(9600); pinMode(MOSFET_PIN, OUTPUT); analogWrite(MOSFET_PIN, 0); // start with the load OFF } void setLoad(int percent) { int duty = map(percent, 0, 100, 0, 255); // convert 0-100% to 0-255 analogWrite(MOSFET_PIN, duty); Serial.print("Load power: "); Serial.print(percent); Serial.println("%"); } void loop() { // turn the load fully ON, then fully OFF Serial.println("Load: ON"); setLoad(100); delay(2000); Serial.println("Load: OFF"); setLoad(0); delay(2000); // increase the power step by step (PWM) for (int percent = 10; percent <= 100; percent += 10) { setLoad(percent); delay(500); } // decrease the power step by step (PWM) for (int percent = 90; percent >= 0; percent -= 10) { setLoad(percent); delay(500); } delay(1000); }

빠른 단계

  • 위의 배선도와 같이 팬과 MOSFET 모듈을 연결하세요.
  • 위 릴레이 부분과 같은 Arduino IDE 단계를 따르되, 이 새 코드를 복사하여 업로드하세요.
  • 12V 전원 어댑터를 꽂으세요.
  • 팬 소리를 들어 보세요: 빠르게 돌다가 멈춘 뒤, 천천히 빨라졌다가 느려집니다. 전력이 매우 낮으면(약 30% 미만) 팬이 전혀 돌지 않을 수 있습니다. 이것은 정상입니다.
  • 시리얼 모니터(보드레이트 9600)를 열고 결과를 확인하세요.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Load: ON Load power: 100% Load: OFF Load power: 0% Load power: 10% Load power: 20% Load power: 30% Load power: 40% Load power: 50% Load power: 60% Load power: 70% Load power: 80% Load power: 90% Load power: 100% Load power: 90% Load power: 80% Load power: 70% Load power: 60% Load power: 50% Load power: 40% Load power: 30% Load power: 20% Load power: 10% Load power: 0%
Ln 11, Col 1
Arduino Uno on COM15
2

팁: MOSFET 모듈은 DC에서만 작동하며 약 6V 이상의 팬 전원이 필요합니다. AC 팬에는 릴레이 방식을 사용하세요.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

댓글