L9110 모듈과 미니 팬의 사용법
L9110 모듈은 소형 DC 팬이나 모터를 제어할 수 있는 간단한 드라이버 모듈이다. 이 모듈은 저전력으로 작동하며 Arduino와 같은 마이크로컨트롤러와 쉽게 연동할 수 있다. 해당 포스팅에서는 L9110 모듈을 사용하여 미니 팬을 제어하는 방법에 대해 알아본다.
L9110 모듈의 핀 설명과 연결 방법
L9110 모듈에는 전원 공급, 입력 신호, 출력 핀이 있다.
아래는 Arduino와 미니 팬 연결을 위한 핀 연결 방법을 표로 정리한 것이다.
GND | GND | Arduino의 접지 핀 |
VCC | 5V | Arduino의 5V 전원 핀 |
A-IA | D9 | 미니 팬 속도 제어 핀 1 |
A-IB | D10 | 미니 팬 속도 제어 핀 2 |
A1 | 미니 팬 (+) | 미니 팬의 양극(+) |
A2 | 미니 팬 (-) | 미니 팬의 음극(-) |
L9110 모듈의 GND와 VCC는 반드시 Arduino의 GND와 5V에 연결해야 한다. A-IA와 A-IB는 PWM 신호를 통해 팬의 속도와 방향을 제어한다. A1과 A2는 팬의 전력을 공급하는 출력 단자이다.
L9110을 이용한 미니 팬 제어 방법
L9110 모듈은 팬의 속도와 방향을 제어하기 위해 PWM 신호를 사용한다. A-IA와 A-IB 핀에 적절한 신호를 보내면 팬의 회전 방향을 설정할 수 있다. 예를 들어, A-IA가 HIGH, A-IB가 LOW인 경우 팬은 한 방향으로 회전하며, 신호를 반대로 설정하면 반대 방향으로 회전한다. PWM 신호의 듀티 사이클을 변경하여 팬의 속도를 조절할 수 있다.
iaPin과 ibPin의 관계 정리 표
iaPin 상태 | ibPin 상태팬 | 동작 | 방향설명 |
HIGH (PWM 신호) | LOW | 정방향 회전 | 팬이 기본 방향으로 회전 |
LOW | HIGH (PWM 신호) | 역방향 회전 | 팬이 반대 방향으로 회전 |
LOW | LOW | 정지 | 팬이 멈춤 |
HIGH | HIGH | 브레이크 모드 | 팬이 즉시 멈춤 |
Arduino를 이용한 미니 팬 제어 코드
아래는 L9110 모듈을 사용하여 미니 팬을 제어하는 Arduino 코드 예제이다.
int iaPin = 9; // A-IA 핀을 Arduino의 D9 핀에 연결
int ibPin = 10; // A-IB 핀을 Arduino의 D10 핀에 연결
void setup() {
pinMode(iaPin, OUTPUT); // A-IA 핀을 출력 모드로 설정
pinMode(ibPin, OUTPUT); // A-IB 핀을 출력 모드로 설정
}
void loop() {
analogWrite(iaPin, 200); // A-IA 핀에 PWM 신호 200(듀티 사이클 약 78%) 전송
analogWrite(ibPin, 0); // A-IB 핀에 LOW 신호 전송 (팬의 한 방향 회전 설정)
delay(5000); // 팬을 5초간 회전
analogWrite(iaPin, 0); // A-IA 핀에 LOW 신호 전송
analogWrite(ibPin, 200); // A-IB 핀에 PWM 신호 200(듀티 사이클 약 78%) 전송
delay(5000); // 팬을 반대 방향으로 5초간 회전
analogWrite(iaPin, 0); // A-IA 핀에 LOW 신호 전송
analogWrite(ibPin, 0); // A-IB 핀에 LOW 신호 전송 (팬 정지)
delay(2000); // 팬을 2초간 정지
}
코드는 A-IA와 A-IB 핀을 통해 팬의 속도와 방향을 제어한다. analogWrite를 사용하여 PWM 신호를 전송하며, 듀티 사이클을 조절하여 팬의 속도를 설정한다. 팬은 5초 동안 한 방향으로 회전하고, 반대 방향으로도 5초 동안 회전한다. 마지막으로 2초 동안 팬을 정지시켜 반복 동작을 확인할 수 있다.
듀티 사이클(Duty Cycle)
듀티 사이클은 PWM(Pulse Width Modulation) 신호에서 "HIGH 상태"가 전체 주기에서 차지하는 비율을 의미한다.
듀티 사이클은 팬의 속도를 제어하는 데 중요한 역할을 하며, 이 비율에 따라 팬이 더 빠르게 또는 느리게 회전한다. Arduino에서 사용되는 듀티 사이클 값은 analogWrite() 함수의 입력 값으로 설정된다. 이 값은 0에서 255까지의 범위를 가지며, 이 범위는 0%에서 100%에 해당한다.
듀티 사이클 78%로 설정된 이유
속도와 전력 효율의 균형
듀티 사이클 78%(analogWrite(iaPin, 200))는 팬이 적절한 속도로 회전하면서 전력 소모를 최소화하기 위한 값이다.
팬의 속도를 최대치로 설정하면 전력 소모와 발열이 증가할 수 있으므로, 실용적인 속도와 효율 사이의 균형을 고려한 설정이다.
안정적인 동작
대부분의 소형 팬은 중간 이상의 듀티 사이클에서 안정적으로 작동하며, 너무 낮은 값에서는 팬이 제대로 회전하지 않거나 진동할 수 있다.
78%는 팬이 원활히 동작하면서도 소음과 발열을 줄이는 데 적합한 비율이다.
듀티 사이클 값 조절로 속도 변경
듀티 사이클 값을 조절하여 팬의 속도를 자유롭게 변경할 수 있다. 아래는 듀티 사이클 값과 팬 속도의 관계를 설명한다.
50% 듀티 사이클 | analogWrite(iaPin, 127)로 설정하면 팬의 속도가 절반 정도로 줄어든다. 저속으로 회전하며 전력 소모가 감소한다. |
100% 듀티 사이클 | analogWrite(iaPin, 255)로 설정하면 팬이 최대 속도로 회전한다. 최대 속도를 필요로 하는 경우 유용하지만, 전력 소모와 소음이 증가할 수 있다. |
10% 듀티 사이클 | analogWrite(iaPin, 25)로 설정하면 팬이 매우 느리게 회전한다. 팬이 너무 느려 제대로 작동하지 않을 수도 있다. |
가변 저항 사용 예제
#include<Servo.h>
Servo ms;
int cds = A1;
int dr = A0;
int led = A2;
int distance = 0;
int angle = 0;
int iaPin = 6; // A-IA 핀을 Arduino의 D9 핀에 연결
int ibPin = 7; // A-IB 핀을 Arduino의 D10 핀에 연결
void setup() {
Serial.begin(9600);
ms.attach(3);
ms.write(0);
pinMode(iaPin, OUTPUT); // A-IA 핀을 출력 모드로 설정
pinMode(ibPin, OUTPUT); // A-IB 핀을 출력 모드로 설정
pinMode(led, OUTPUT);
pinMode(dr,INPUT);
}
void loop() {
int drValue = analogRead(dr); // 가변 저항 값 읽기 (0~1023)
int pwmValue = map(drValue, 0, 1023, 0, 255); // 가변 저항 값을 PWM 값(0~255)으로 매핑
Serial.print("Potentiometer = ");
Serial.println(drValue); // 가변 저항 값 출력
Serial.print("PWM = ");
Serial.println(pwmValue); // 매핑된 PWM 값 출력
analogWrite(iaPin, pwmValue); // 팬 속도를 설정
analogWrite(ibPin, 0); // 팬의 정방향 회전 설정
delay(100); // 팬 속도 변화 확인 딜레이
}
'Arduino > [2] Arduino Module' 카테고리의 다른 글
#30. ESP-01 (0) | 2024.12.27 |
---|---|
#28. OLED 0.96인치 128x64 SPI 6핀 A37 디스플레이 (0) | 2024.12.24 |
#27. L293D 모터 드라이버 쉴드 (0) | 2024.08.12 |
[Arduino Module] #26. ESP32 CAM (0) | 2024.07.12 |
[Arduino Module] #25. Wemos D1 R32 (1) | 2024.04.08 |