Arduino

아두이노 L293D를 이용한 DC 모터 1개 구동하기

작성자 임베디드코리아 작성일25-05-15 23:51 조회383회 댓글0건

첨부파일

동영상 : 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핀에 디지털 출력합니다.
}