728x90
반응형

아두이노로 스텝모터나 DC 모터를 제어하기 위해서는 TR이나 IC를 사용하여,
H-Bridge 회로를 구성하여 정역(정회전, 역회전)제어를 하게 된다.
직접 TR이나 IC를 이용해서 따로 구성할 수 있지만 다소 번거롭다.
이를 해결해 줄 수 있는 모터 구동 모듈이 있어서 사용법을 간단히 소개하려 한다.
바로 L9110S 모듈이며, DC모터는 2개를, 스텝모터는 1개(4선 2상)을 각각 제어할 수 있다.

 

L9119S Specification


1. 입력전압 : DC 2.5V ~ 12V
2. 출력전압 : 800mA
3. 제어 모터수 : 2 채널, 2개의 DC모터 또는 4선 2상 스텝모터

>> 실습 목표:
1. L9110S 모터 모듈을 이용하여 2개의 DC모터 방향을 제어할 수 있다.
2. 아두이노의 아날로그 출력 함수를 이용하여 속도를 제어해 볼 수 있다.

>> 실습 회로도면

L9110S 모터드라이버 모듈 연결도

>> 실습 절차:

1. 부품을 준비하여 위와 같은 회로를 구성

2. 아래 코드를 작성하고 프로그램을 로딩후 실행

3. 먼저 디지털 포트를 사용하여 방향제어를 해봄

/* L9110S 모듈 제어 (방향과 속도제어) */

int motorA1 = 5;
int motorA2 = 6;
int motorB1 = 9;
int motorB2 = 10;
int speed = 255;  // speed: 0 ~ 255

void setup()
{
  pinMode(motorA1, OUPUT);
  pinMode(motorA2, OUPUT);
  pinMode(motorB1, OUPUT);
  pinMode(motorB2, OUPUT);
}

void loop()
{
  // 필요한 경우 아래 코드에 따라 모터 연결을 조정해야 함
  // Front
  digitalWrite(motorA1, 150); // 숫자 값으로 속도 조절
  digitalWrite(motorA2, 0);
  digitalWrite(motorB1, 150);
  digitalWrite(motorB2, 0);
  delay(2000);

  // Rear
  digitalWrite(motorA1, 0);
  digitalWrite(motorA2, speed);
  digitalWrite(motorB1, 0);
  digitalWrite(motorB2, speed);
  delay(2000);

  // Left
  digitalWrite(motorA1, speed);
  digitalWrite(motorA2, 0);
  digitalWrite(motorB1, 0);
  digitalWrite(motorB2, speed);
  delay(2000);

  // Right
  digitalWrite(motorA1, 0);
  digitalWrite(motorA2, speed);
  digitalWrite(motorB1, speed);
  digitalWrite(motorB2, 0);
  delay(2000);

  // Stop
  digitalWrite(motorA1, 0);
  digitalWrite(motorA2, 0);
  digitalWrite(motorB1, 0);
  digitalWrite(motorB2, 0);
  delay(2000);
}
/* L9110S 모듈 제어 (방향과 속도제어) */

int motorA1 = 5;
int motorA2 = 6;
int motorB1 = 9;
int motorB2 = 10;
int speed = 255;  // speed: 0 ~ 255

void setup()
{
  pinMode(motorA1, OUPUT);
  pinMode(motorA2, OUPUT);
  pinMode(motorB1, OUPUT);
  pinMode(motorB2, OUPUT);
}

void loop()
{
  // 필요한 경우 아래 코드에 따라 모터 연결을 조정해야 함
  // Front
  analogWrite(motorA1, 150); // 숫자 값으로 속도 조절
  analogWrite(motorA2, 0);
  analogWrite(motorB1, 150);
  analogWrite(motorB2, 0);
  delay(2000);

  // Rear
  analogWrite(motorA1, 0);
  analogWrite(motorA2, speed);
  analogWrite(motorB1, 0);
  analogWrite(motorB2, speed);
  delay(2000);

  // Left
  analogWrite(motorA1, speed);
  analogWrite(motorA2, 0);
  analogWrite(motorB1, 0);
  analogWrite(motorB2, speed);
  delay(2000);

  // Right
  analogWrite(motorA1, 0);
  analogWrite(motorA2, speed);
  analogWrite(motorB1, speed);
  analogWrite(motorB2, 0);
  delay(2000);

  // Stop
  analogWrite(motorA1, 0);
  analogWrite(motorA2, 0);
  analogWrite(motorB1, 0);
  analogWrite(motorB2, 0);
  delay(2000);
}
728x90
반응형

'Firmware & Embedded > Components' 카테고리의 다른 글

BlueTooth Module(HC-05, 06)  (0) 2022.11.17
DC Motor  (0) 2022.11.16
Joystick module  (0) 2022.11.08
Stepping Motor  (0) 2022.11.08
Arduino Serial (to Python)  (0) 2022.10.31

+ Recent posts