아두이노 가열 요소 제어

이 튜토리얼에서는 아두이노를 사용하여 난방 요소를 제어하는 방법을 배우게 됩니다. 이 튜토리얼을 바탕으로 다른 튜토리얼에서 난방 시스템을 만드는 방법을 배울 수 있습니다.

아두이노는 릴레이 또는 MOSFET 모듈을 통해 발열체를 구동할 수 있습니다. 릴레이는 최대 발열 또는 발열 없음의 두 가지 상태만 제공합니다. MOSFET 모듈도 이 두 가지 상태를 제공하며, 발열체가 내는 열의 양을 낮은 출력에서 최대 출력까지 설정할 수도 있습니다. 소리가 나지 않고 자주 스위칭해도 마모되지 않습니다. 릴레이 방식을 먼저 살펴보고, 그다음 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×가열 소자 아마존
1×12V 전원 어댑터 아마존
1×DC 커넥터 전원 연결 잭 플러그 소켓 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) 아두이노 우노용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) Sensors/Servo Expansion Shield for Arduino Uno 쿠팡 | 아마존
1×(추천) 아두이노 우노용 브레드보드 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노용 케이스 쿠팡 | 아마존
1×(추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

난방 요소에 관하여

핀배열

아두이노 heating element 사용법 핀아웃

가열 요소는 보통 두 개의 핀이 있습니다:

  • 양극 (+) 핀 (빨강): 12V의 직류 전원 공급 장치에 연결해야 합니다.
  • 음극 (-) 핀 (검정): 직류 전원 공급 장치의 GND에 연결해야 합니다.

난방 요소를 제어하는 방법

12V 발열체가 12V 전원 공급 장치로 구동되면 열을 방출합니다. 발열체를 제어하려면 아두이노와 발열체 사이에 릴레이를 사용해야 합니다. 아두이노는 릴레이를 통해 발열체를 제어할 수 있습니다. 릴레이(핀아웃, 작동 방식, 프로그래밍 방법 등)에 대해 잘 모르시면 아두이노 - 릴레이에서 릴레이에 대해 알아보십시오.

대신 MOSFET 모듈을 사용하려면 먼저 아두이노 - MOSFET 모듈 튜토리얼을 읽어 보는 것이 좋습니다. 핀아웃, 모듈의 작동 방식, PWM을 다룹니다.

발열체용 릴레이 vs MOSFET 모듈

릴레이 MOSFET 모듈
발열 제어 최대 발열 또는 꺼짐만 가능 최대 발열, 꺼짐, 또는 그 사이의 모든 발열 단계(PWM)
스위칭할 때 소리 딸깍 소리 소리 없음
스위칭 시간 밀리초 단위(느림) 매우 짧음(빠름)
자주 스위칭할 때 수명 접점이 마모됨 수명이 길고 움직이는 부분이 없음
히터 종류 AC 또는 DC 히터 DC 히터만 가능
히터 전원 릴레이 정격 내의 모든 전압 6V 이상
아두이노 쪽 절연 예(코일과 접점) 예(PC817 포토커플러)
용도 AC 히터, 단순한 켜기/끄기 12V DC 히터, 발열 단계 제어, 여러 번 스위칭

난방 시스템은 온도를 유지하기 위해 히터를 계속 켰다 껐다 하는 경우가 많습니다. MOSFET 모듈은 마모되는 접점이 없어서 이런 용도에 더 적합합니다. 히터가 AC 교류 전원으로 작동한다면 릴레이를 사용하세요.

선연결

아두이노 heating element 연결 배선도

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

점퍼 와이어는 프로젝트를 옮길 때 빠질 수 있습니다. 이를 위해 Arduino에 Proto Screw Terminal Block Shield 또는 Screw Shield V2를 장착하세요. 핀은 바뀌지 않습니다. 각 전선을 해당 나사 단자에 연결하기만 하면 됩니다:

아두이노 heating element 연결 배선도 (screw shield v2)

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

아두이노 코드

아래 코드는 가열 요소를 5초 동안 켜고 5초 동안 끕니다.

/* * 이 아두이노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-controls-heating-element */ // 상수는 변경되지 않습니다 const int RELAY_PIN = A5; // Arduino 핀이며, 릴레이의 IN 핀에 연결됩니다 // setup 함수는 보드를 리셋하거나 전원을 켤 때 한 번 실행됩니다 void setup() { // 디지털 핀 A5를 출력으로 초기화합니다. 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 버튼을 클릭해 아두이노에 코드를 업로드하세요
  • 발열 요소의 온도를 확인하세요

WARNING

조심하세요. 화상을 입거나 집에 불이 날 수 있습니다. 이것은 심각한 주제이며, 우리는 여러분이 안전하기를 바랍니다. 만약 여러분이 자신이 무엇을 하고 있는지 100% 확신하지 못한다면, 스스로에게 호의를 베풀어 아무것도 만지지 마세요. 아는 사람에게 물어보세요! 우리는 여러분의 안전에 대해 어떠한 책임도 지지 않습니다.

코드 설명

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

아두이노 코드 - MOSFET 모듈로 발열체 출력 제어

이 부분에서는 MOSFET 모듈이 릴레이를 대신합니다. PWM을 사용하면 아두이노가 발열체에 전력의 일부만 공급할 수 있어서 열이 줄어듭니다.

배선도

아두이노 heating element mosfet module 연결 배선도

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

다음과 같이 연결하세요:

  • Arduino 핀 9 → 모듈의 PWM 핀
  • Arduino GND → 모듈의 GND 핀
  • 12V 전원 어댑터 + → + 단자
  • 발열체 빨간색 선(+) → + 단자 (어댑터 +와 단자를 공유)
  • 발열체 검은색 선(−) → LOAD 단자
  • 12V 전원 어댑터 − → − 단자

발열체에는 코일이 없으므로 플라이백 다이오드가 필요하지 않습니다.

아두이노 코드

MOSFET 모듈 튜토리얼의 코드를 사용합니다. 발열체에 2초 동안 최대 출력을 주고, 2초 동안 끈 다음, 출력을 10%에서 100%까지 올렸다가 다시 0%까지 낮춥니다. 히터는 온도가 천천히 변하므로 차이를 느끼려면 시간이 좀 걸립니다. 실제로 시험하려면 출력을 한 단계로 몇 분 동안 유지하세요.

/* * 이 아두이노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-controls-heating-element */ 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); }

빠른 단계

  • 위의 배선도와 같이 모든 것을 연결하세요.
  • 위 릴레이 빠른 단계와 같은 방법으로 코드를 업로드하세요.
  • 12V 전원 어댑터를 DC 전원 잭에 꽂으세요.
  • 시리얼 모니터(보드레이트 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 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

주석들