【 아두이노모듈#15】 L9110S #1(모터 드라이버) 모듈 사용하기
아두이노로 스텝모터나 DC 모터를 제어하기 위해서는 TR이나 IC를 사용하여, H-bridge (h-브릿지) 회로를 구성하여 정역(정회전, 역회전) 제어를 하게 된다. 직접 TR이나 IC를 이용해서 따로 구성할 수 있지만 다소 번거롭다. 이를 해결해 줄 수 있는 모터 구동 모듈이 있어서 사용법을 간단히 소개하려 한다. 바로 L9110S 모듈이며, DC모터는 2개를 , 스텝모터는 1개(4선 2상)를 각각 제어 할 수 있다.
L298 드라이버 모듈에 대해서도 포스팅 하였지만, 이 모듈보다 가격이 저렴(700원대)하고, 크기와 부피가 작아서 작은 크기의 작품을 만들려고 할 때 적합하다고 할 수 있겠다.
▶ 선수 학습 :
1. [아두이노 기초#24] DC모터 제어하기 4 (H-bridge 참조) ☜ (클릭)
▶ L9110S 모듈 세부 스팩
▶ 실습 목표 :
1. [ L9110S 모터 모듀을 이용하여 2개의 DC모터 방향을 제어 할 수 있다]
2. [ 아두이노의 아날로그 출력 함수를 이용하여 속도를 조절 해 볼 수 있다.]
▶ 실습 회로도면 : L9110S 모터드라이버 모듈 연결도
(이미지 클릭하면 확대 가능)
▶ 실습 절차 :
1. 부품을 준비하여 위와 같은 회로를 구성한다.
2. 아래 코드를 작성하고 프로그램을 로딩 후 실행시킨다.(혹은 첨부파일 다운)
3. 먼저 디지털 포트를 사용하여 방향제어를 해본다. (코딩1)
4. 코딩2를 참고하여 속도제어 실습도 해본다. (코딩2)
▶ 프로그램 코드 및 설명 1 :
/* L9110S 모듈 제어 해보기 (방향제어 : 코딩1) */
int motorA1 = 5;
int motorA2 = 6;
int motorB1 = 9;
int motorB2 = 10;
void setup ( ) {
pinMode( motorA1 , OUTPUT);
pinMode( motorA2 , OUTPUT);
pinMode( motorB1 , OUTPUT);
pinMode( motorB2 , OUTPUT);
}
void loop ( ) {
// 필요한경우 아래 코드에 따라 모터의 연결을 조정해야한다.
// <전진>
digitalWrite( motorA1 , HIGH);
digitalWrite( motorA2 , LOW);
digitalWrite( motorB1 , HIGH);
digitalWrite( motorB2 , LOW);
delay(2000);
// 후진
digitalWrite( motorA1 , LOW);
digitalWrite( motorA2 , HIGH);
digitalWrite( motorB1 , LOW);
digitalWrite( motorB2 , HIGH);
delay(2000);
// 좌회전
digitalWrite( motorA1 , HIGH);
digitalWrite( motorA2 , LOW);
digitalWrite( motorB1 , LOW);
digitalWrite( motorB2 , HIGH);
delay(2000);
// 우회전
digitalWrite( motorA1 , LOW);
digitalWrite( motorA2 , HIGH);
digitalWrite( motorB1 , HIGH);
digitalWrite( motorB2 , LOW);
delay(2000);
// 정지
digitalWrite( motorA1 , LOW);
digitalWrite( motorA2 , LOW);
digitalWrite( motorB1 , LOW);
digitalWrite( motorB2 , LOW);
delay(2000);
}
▶ 프로그램 코드 및 설명 2:
/* L9110S 모듈 제어 해보기 (방향과 속도 제어 : 코딩2) */
int motorA1 = 5;
int motorA2 = 6;
int motorB1 = 9;
int motorB2 = 10;
int speed = 255 ; // speed : 0 ~ 255
void setup ( ) {
pinMode( motorA1 , OUTPUT);
pinMode( motorA2 , OUTPUT);
pinMode( motorB1 , OUTPUT);
pinMode( motorB2 , OUTPUT);
}
void loop ( ) {
// 필요한경우 아래 코드에 따라 모터의 연결을 조정해야한다.
// <전진>
analogWrite( motorA1 , 150); // 숫자 값으로 속도 조절
analogWrite( motorA2 , 0);
analogWrite( motorB1 , 150);
analogWrite( motorB2 , 0);
delay(2000);
// <후진>
analogWrite( motorA1 , 0);
analogWrite( motorA2 , speed);
analogWrite( motorB1 , 0);
analogWrite( motorB2 , speed);
delay(2000);
// <좌회전>
analogWrite( motorA1 , speed);
analogWrite( motorA2 , 0);
analogWrite( motorB1 , 0);
analogWrite( motorB2 , speed);
delay(2000);
// <우회전>
analogWrite( motorA1 , 0);
analogWrite( motorA2 , speed);
analogWrite( motorB1 , speed);
analogWrite( motorB2 , 0);
delay(2000);
// <정지>
digitalWrite( motorA1 , 0);
digitalWrite( motorA2 , 0);
digitalWrite( motorB1 , 0);
digitalWrite( motorB2 , 0);
delay(2000);
}
▶ 아두이노 파일다운 :
(다운받아서 압축을 풀어 사용하세요)
# 1. <코딩 1>
# 2. <코딩 2>
'아두이노 > 3. 아두이노 모듈' 카테고리의 다른 글
【 아두이노모듈#17】아두이노 2대로 블루투스 통신하여 LED ON/OFF 제어 하기! (HC-05) (10) | 2019.06.18 |
---|---|
【 아두이노모듈#16】 아두이노 2대로 블루투스 통신! (HC-05) (11) | 2019.06.17 |
【 아두이노모듈#14】 Joystick #1(Keyes SJoys) 조이스틱! 사용해보기 (2) | 2019.05.02 |
【 아두이노모듈#13】 RFID #3(RC522) 도어락 만들기! (13) | 2019.04.26 |
【 아두이노모듈#12】 RFID (RC522) 사용하기 #2 (0) | 2019.04.25 |