본문 바로가기

Arduino/[2] Arduino Module

#29. L9110 미니팬

728x90
반응형

L9110 미니팬

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); // 팬 속도 변화 확인 딜레이

}
728x90
반응형
댓글