-
아두이노 | DC모터 드라이버 L293D 모듈Technology/Arduino 2024. 1. 5. 18:00
1. DC모터 드라이버 L293D 모듈
DC모터 2개를 양방향으로 제어하기 위해 L293D와 전자 소자를 탑재한 DC모터 드라이버 모듈이다. 모터 방향 단자에 디지털 신호를 입력하거나 입력하지 않는 것으로 DC모터의 회전 방향을 제어할 수 있고, 속력 단자에 PWM 제어 신호를 입력하는 것으로 DC모터의 회전 속력을 제어할 수 있다. L293D를 단독으로 사용할 때보다 배선이 직관적이고 간단하다는 장점이 있다. L293을 이용한 DC모터 드라이버 모듈은 아래 링크로 접속하면 구매할 수 있다.
2. 확인사항
제조사에서 제공하는 L293D의 데이터시트에 의하면 L293D의 최대 허용 공급전압과 최대 허용 전류는 아래 표와 같다. 만약 사용하고자 하는 DC모터의 부하가 이보다 크다면 L293D보다 더 큰 부하를 견딜 수 있는 DC모터 드라이버를 찾아야 한다. 반대로 DC모터 드라이버로 L293D를 사용하고자 한다면, L293D가 견딜 수 있는 부하보다 적은 부하를 필요로 하는 DC모터를 찾아야 한다.
모델명 L293D 최대 허용 공급전압 36 V 최대 허용 전류 0.6 A 허용 전력 5 W 3. 예제
3.1. 회로 구성
3.2. 프로그램 작성
int PWMA = 3; // 정수형 변수 선언 후 디지털 핀 번호 3번으로 초기화 int DIRA = 2; int PWMB = 5; int DIRB = 4; void setup() { pinMode(PWMA, OUTPUT); // 디지털 3번 핀을 출력(OUTPUT) 모드로 설정 pinMode(DIRA, OUTPUT); pinMode(PWMB, OUTPUT); pinMode(DIRB, OUTPUT); } void loop() { // DC모터 A 회전 digitalWrite(DIRA, HIGH); // 디지털 2번 핀에 디지털 신호 HIGH 출력 analogWrite(PWMA, 255); // 디지털 3번 핀에 PWM 아날로그 신호 5V 출력 delay(1000); // 1000ms 대기 analogWrite(PWMA, 0); // 디지털 3번 핀에 PWM 아날로그 신호 0V 출력 delay(1000); // DC모터 A 역회전 digitalWrite(DIRA, LOW); // 디지털 2번 핀에 디지털 신호 LOW 출력 analogWrite(PWMA, 255); delay(1000); analogWrite(PWMA, 0); delay(1000); // DC모터 B 회전 digitalWrite(DIRB, HIGH); analogWrite(PWMB, 255); delay(1000); analogWrite(PWMB, 0); delay(1000); // DC모터 B 역회전 digitalWrite(DIRB, LOW); analogWrite(PWMB, 255); delay(1000); analogWrite(PWMB, 0); delay(1000); // DC모터 A 회전 가속 digitalWrite(DIRA, HIGH); for (int i = 1; i <= 255; i++) // 10 ms 간격으로 점점 빠르게 회전 { analogWrite(PWMA, i); delay(10); // 10 ms 대기 } delay(1000); // DC모터 A 회전 감속 for (int i = 254; i >= 0; i--) // 10 ms 간격으로 점점 느리게 회전 { analogWrite(PWMA, i); delay(10); } delay(1000); // DC모터 A 역회전 가속 digitalWrite(DIRA, LOW); for (int i = 1; i <= 255; i++) { analogWrite(PWMA, i); delay(10); } delay(1000); // DC모터 A 역회전 감속 for (int i = 254; i >= 0; i--) { analogWrite(PWMA, i); delay(10); } delay(1000); // DC모터 B 회전 가속 digitalWrite(DIRB, HIGH); for (int i = 1; i <= 255; i++) { analogWrite(PWMB, i); delay(10); } delay(1000); // DC모터 B 회전 감속 for (int i = 254; i >= 0; i--) { analogWrite(PWMB, i); delay(10); } delay(1000); // DC모터 B 역회전 가속 digitalWrite(DIRB, LOW); for (int i = 1; i <= 255; i++) { analogWrite(PWMB, i); delay(10); } delay(1000); // DC모터 B 역회전 감속 for (int i = 254; i >= 0; i--) { analogWrite(PWMB, i); delay(10); } delay(1000); }
[함께 읽으면 좋은 페이지]
참고문헌
- Texas Instruments. (2002). L293, L293D Quadruple Half-H Drivers. SparkFun. https://www.sparkfun.com/datasheets/Components/l293.pdf. 2023.10.26.
반응형'Technology > Arduino' 카테고리의 다른 글
아두이노 라이브러리 | 서보모터 (0) 2024.01.19 아두이노 | DC모터 드라이버 L298N 모듈 (0) 2024.01.12 아두이노 | DC모터 드라이버 L293D (0) 2024.01.05 아두이노 | DC모터 PWM 제어 (0) 2023.12.29 아두이노 | MOSFET IRF520 모듈 (0) 2023.12.22