아두이노 펌프 제어

이 튜토리얼에서는 아두이노를 사용하여 펌프를 제어하는 방법을 배우게 됩니다. 이 튜토리얼을 기반으로, 관개 시스템, 수족관, 물 보충 시스템 등을 만들 수 있습니다...

펌프를 아두이노에 연결하는 방법은 두 가지입니다. 첫 번째 방법은 릴레이를 사용하며, 펌프를 시작하고 멈추는 것만 할 수 있습니다. 두 번째 방법은 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×12V 펌프 쿠팡 | 아마존
1×Vinyl Tube 아마존
1×12V 전원 어댑터 아마존
1×DC 커넥터 전원 연결 잭 플러그 소켓 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) 아두이노 우노용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) Sensors/Servo Expansion Shield for Arduino Uno 쿠팡 | 아마존
1×(추천) 아두이노 우노용 브레드보드 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노용 케이스 쿠팡 | 아마존
1×(추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

12V 펌프에 관하여

핀배열

아두이노 pump 사용법 핀아웃
image source: diyables.io

12V 펌프는 보통 두 개의 핀이 있습니다:

  • 음성(-) 핀 (검정색): DC 전원 공급 장치의 GND에 연결해야 합니다.
  • 양성(+) 핀 (빨간색): DC 전원 공급 장치의 12V에 연결해야 합니다.

펌프 제어 방법

12V 펌프가 12V 전원 공급장치로 구동되면 작동됩니다. 펌프를 제어하기 위해서는 Arduino와 펌프 사이에 릴레이를 사용해야 합니다. Arduino는 릴레이를 통해 펌프를 제어할 수 있습니다. 릴레이(핀아웃, 작동 방식, 프로그래밍 방법 등)에 대해 모른다면, 아두이노 - 릴레이에서 릴레이에 대해 알아보세요.

MOSFET 모듈을 사용해 본 적이 없다면, 아두이노 - MOSFET 모듈 튜토리얼에서 자세히 설명합니다.

12V 펌프용 릴레이 vs MOSFET 모듈

릴레이 MOSFET 모듈
펌프 제어 작동 또는 정지 작동, 정지, 그리고 펌프 속도 / 물 흐름(PWM)
스위치 소음 딸깍 소리 소리 없음
스위칭 속도 느림(몇 밀리초) 매우 빠름
수명 접점이 시간이 지나면 마모됨 내부에 움직이는 부분이 없음
지원하는 펌프 AC 또는 DC DC만 가능
펌프 공급 전압 정격 내의 모든 전압 약 6V 이상
절연 예(코일과 접점) 예(PC817 포토커플러)
적합한 용도 AC 펌프, 단순한 작동/정지 12V DC 펌프, 흐름 제어, 잦은 스위칭

물탱크를 채우거나 식물에 물을 줄 때만 필요하다면 둘 다 잘 작동합니다. 예를 들어 수족관처럼 부드러운 흐름을 원한다면 MOSFET 모듈을 선택하세요.

선연결

아두이노 pump 연결 배선도

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

아두이노 코드

아래 코드는 펌프를 5초 동안 켜고 5초 동안 끕니다.

/* * 이 아두이노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-controls-pump */ // 상수는 변경되지 않습니다 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 모듈이 펌프를 스위칭하므로, 아두이노가 펌프 속도도 바꿀 수 있습니다.

배선도

아두이노 12v pump mosfet module 연결 배선도

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

  • 모듈 PWM 핀 ← Arduino 핀 9
  • 모듈 GND 핀 ← Arduino GND
  • 모듈 − 단자 ← 12V 어댑터 −
  • 모듈 + 단자 ← 12V 어댑터 +와 펌프 빨간색 선(+)을 함께 연결
  • 모듈 LOAD 단자 ← 펌프 검은색 선(−)

펌프 안에는 모터가 있습니다. 펌프 양쪽에 플라이백 다이오드(1N4007 또는 1N5819)를 연결하세요: 줄무늬(캐소드)는 펌프 +에, 다른 쪽 끝은 펌프 −에 연결합니다.

아두이노 코드

코드는 MOSFET 모듈 튜토리얼에서 변경 없이 가져왔습니다. 먼저 펌프가 2초 동안 최대 출력으로 작동하고 2초 동안 정지합니다. 그 후 출력이 10%에서 100%까지 올라갔다가 0%까지 내려가므로, 물의 흐름이 커졌다가 약해집니다.

/* * 이 아두이노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-controls-pump */ 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 모듈을 연결하세요.
  • 코드를 업로드하세요(IDE 단계는 릴레이 부분과 같습니다).
  • 12V 전원 어댑터를 꽂으세요.
  • 튜브에서 나오는 물을 보세요: 세게 나오고, 멈추고, 그다음 천천히 세졌다가 약해집니다. 출력이 낮으면 펌프가 멈출 수 있습니다. 이것은 정상입니다.
  • 시리얼 모니터(보드레이트 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 모듈은 약 6V 이상의 전원을 사용하는 DC 펌프에만 사용하세요. AC 펌프에는 릴레이가 필요합니다.

동영상

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

도전해보세요

  • 아두이노, 토양 수분 센서, 그리고 펌프를 사용하여 자동 관수 시스템을 만드세요.
  • 아두이노, 수위 센서, 그리고 펌프를 사용하여 자동 물 보충 시스템을 만드세요.

댓글