-
아두이노 | DC모터 드라이버 L293D 모듈Technology/Arduino 2024. 1. 5. 18:00
1. DC모터 드라이버 L293D 모듈
L293D DC모터 드라이버 모듈 DC모터 2개를 양방향으로 제어하기 위해 L293D와 전자 소자를 탑재한 DC모터 드라이버 모듈이다. 모터 방향 단자에 디지털 신호를 입력하거나 입력하지 않는 것으로 DC모터의 회전 방향을 제어할 수 있고, 속력 단자에 PWM 제어 신호를 입력하는 것으로 DC모터의 회전 속력을 제어할 수 있다. L293D를 단독으로 사용할 때보다 배선이 직관적이고 간단하다는 장점이 있다. L293을 이용한 DC모터 드라이버 모듈은 아래 링크로 접속하면 구매할 수 있다.
아두이노 L293D DC 모터 드라이버 모듈 [ELB030400]
아두이노 호환 / L293D 칩 / N20 DC 모터 구동에 적합 / 구동 전압: 7-12V / 사이즈: 42 * 45mm
www.devicemart.co.kr
2. 확인사항
제조사에서 제공하는 L293D의 데이터시트에 의하면 L293D의 최대 허용 공급전압과 최대 허용 전류는 아래 표와 같다. 만약 사용하고자 하는 DC모터의 부하가 이보다 크다면 L293D보다 더 큰 부하를 견딜 수 있는 DC모터 드라이버를 찾아야 한다. 반대로 DC모터 드라이버로 L293D를 사용하고자 한다면, L293D가 견딜 수 있는 부하보다 적은 부하를 필요로 하는 DC모터를 찾아야 한다.
모델명 L293D 최대 허용 공급전압 36 V 최대 허용 전류 0.6 A 허용 전력 5 W 3. 예제
3.1. 회로 구성
회로 구성 DC Toy / Hobby Motor - 130 Size [ada-711]
DC 취미 모터 / 4.5~9VDC / 아두이노 / 시작 토크 : 20g*cm / 샤프트 크기 : 직경 8mm x 2mm
www.devicemart.co.kr
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); }
[함께 읽으면 좋은 페이지]
아두이노 | DC모터 PWM 제어
1. DC모터 DC모터는 직류(Direct Current, DC) 전원을 공급하면 구동축이 회전하는 구동기이다. 부가 기능이 없는 DC모터에는 두 개의 전극이 노출되어 있는데, 여기에 DC 전원을 연결하면 구동축이 한
vedacube.tistory.com
아두이노 | DC모터 드라이버 L298N 모듈
1. DC모터 드라이버 L298N 모듈 L298N은 H-브리지 회로가 내장된 전자 소자로, 앞서 살펴본 L293D보다 더 큰 부하의 DC모터를 제어할 수 있다. L298N을 이용한 DC모터 드라이버 모듈은 DC모터 2개를 양방향
vedacube.tistory.com
참고문헌
- Texas Instruments. (2002). L293, L293D Quadruple Half-H Drivers. SparkFun. https://www.sparkfun.com/datasheets/Components/l293.pdf. 2023.10.26.
반응형'Technology > Arduino' 카테고리의 다른 글
아두이노 라이브러리 | 서보모터 Servo.h (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