동영상 :
https://youtu.be/KvuU_CMvwbc
<* 아두이노 L293D를 이용한 DC 모터 1개 구동하기 *>
■ L293D는 아두이노에서 모터를 구동하기 위해 널리 사용되는 듀얼 모터 드라이버 IC 이다.
■ 두 개의 모터를 동시에 제어할 수 있다.
■ 각 모터의 속도 및 방향을 개별적으로 제어할 수 있다.
■ 주로 로봇이나 RC 차량과 같은 프로젝트에서 모터를 제어하는 데 사용된다.
■ 전압(5V)으로 구동 가능하며, 아두이노와 호환된다.
--------< 소스 코드 >--------------------------------------------
int enablePin = 11; // enablePin을 11로 설정합니다
int in1Pin = 10; // in1Pin을 10으로 설정합니다.
int in2Pin = 9; // in2Pin을 9로 설정합니다.
void setup()
{
pinMode(enablePin, OUTPUT); // enablePin을 출력핀으로 설정합니다.
pinMode(in1Pin, OUTPUT); // in1Pin을 출력핀으로 설정합니다.
pinMode(in2Pin, OUTPUT); // in2Pin을 출력핀으로 설정합니다.
}
void loop()
{
setMotor(255, 1); // setMotor 함수에 255와 1를 넣어 호출합니다.
delay(2000); // 2초간 지연합니다.
setMotor(100, 0); // setMotor 함수에 100과 0을 넣어 호출합니다.
delay(2000); // 2초간 지연합니다.
setMotor(0, 0); // setMotor 함수에 0과 0을 넣어 호출합니다.
delay(2000); // 2초간 지연합니다.
}
void setMotor(int speed, boolean reverse) // setMotor 함수를 선언합니다.
{ // 함수는 (속도,방향)을 입력받습니다.
analogWrite(enablePin, speed); // 입력 받은 속도 값을 enablePin핀에 아날로그 출력합니다.
digitalWrite(in1Pin, ! reverse); // 입력 받은 방향 값을 반전하여 in1Pin핀에 디지털 출력합니다.
digitalWrite(in2Pin, reverse); // 입력 받은 방향 값을 in2Pin핀에 디지털 출력합니다.
}