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. 아두이노의 아날로그 출력 함수를 이용하여 속도를 제어해 볼 수 있다.
>> 실습 회로도면
>> 실습 절차:
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 |