[아두이노 강좌] 아두이노 모터 드라이버 쉴드 L293D를 이용한 모터 제어하기(DC모터/ 서보모터)
안녕하세요 에듀이노 입니다.
< 모터 드라이버 L293D 쉴드 핀 구성 > ▶ 모터 드라이버 L293D 쉴드는 아두이노 우노, 메가, 레오나르도, 듀에 등에 적층하여 사용하는
▶ DC모터 4개 또는 서보모터 2개 또는 스텝모터 2개를 동작시킬 수 있습니다.
3.3 아두이노와 연결하기
▶위 표를 참고하여 서보모터와 모터 드라이버 L293D 쉴드를 연결해주세요.
#include <AFMotor.h> // L293D 모터 드라이브 라이브러리 #include <Servo.h> // 서보모터 라이브러리 Servo servo1; // 서보모터 1 Servo servo2; // 서보모터 2 void setup() { Serial.begin(9600); // 시리얼 모니터 시작. 속도는 9600 servo1.attach(9); // 서보모터 1 on servo2.attach(10); // 서보모터 2 on } void loop() { servo1.write(0); // 서보모터 1의 각도를 0으로 delay(1000); // 딜레이 1000ms servo1.write(180); // 서보모터 2의 각도를 180으로 delay(1000); // 딜레이 1000ms servo2.write(0); // 서보모터 2의 각도를 0으로 delay(1000); // 딜레이 1000ms servo2.write(180); // 서보모터 2의 각도를 180으로 delay(1000); // 딜레이 1000ms }
▶ 쉴드와 우노보드에 전원이 연결되었다면 0번핀에 연결 된 서보모터가 0~180˚사이를
▶위 표를 참고하여 서보모터와 모터 드라이버 L293D 쉴드를 연결해주세요.
#include <SoftwareSerial.h> // L293D 모터 드라이브 라이브러리 #include <AFMotor.h> // 서보모터 라이브러리 AF_DCMotor motor_1(1); // 모터 1 객체 AF_DCMotor motor_2(2); // 모터 2 객체 AF_DCMotor motor_3(3); // 모터 3 객체 AF_DCMotor motor_4(4); // 모터 4 객체 void setup() { motor_1.setSpeed(300); // 모터 1 속도 설정 motor_1.run(RELEASE); // 모터 1 돌리지 않는 상태 motor_2.setSpeed(300); // 모터 2 속도 설정 motor_2.run(RELEASE); // 모터 2 돌리지 않는 상태 motor_3.setSpeed(300); // 모터 3 속도 설정 motor_3.run(RELEASE); // 모터 3 돌리지 않는 상태 motor_4.setSpeed(300); // 모터 4 속도 설정 motor_4.run(RELEASE); // 모터 4 돌리지 않는 상태 } void loop() { // 모터 1 motor_1.run(FORWARD); // 정방향으로 회전 delay(1000); motor_1.run(RELEASE); // 쉬기 delay(1000); motor_1.run(BACKWARD); // 역방향 회전 delay(1000); // 모터 2 motor_2.run(FORWARD); // 정방향으로 회전 delay(1000); motor_2.run(RELEASE); // 쉬기 delay(1000); motor_2.run(BACKWARD); // 역방향 회전 delay(1000); // 모터 3 motor_3.run(FORWARD); // 정방향으로 회전 delay(1000); motor_3.run(RELEASE); // 쉬기 delay(1000); motor_3.run(BACKWARD); // 역방향 회전 delay(1000); // 모터 4 motor_4.run(FORWARD); // 정방향으로 회전 delay(1000); motor_4.run(RELEASE); // 쉬기 delay(1000); motor_4.run(BACKWARD); //역방향 회전 delay(1000); // 전체 모터 정방향 회전 motor_1.run(FORWARD); motor_2.run(FORWARD); motor_3.run(FORWARD); motor_4.run(FORWARD); delay(1000); // 전체 모터 쉬기 motor_1.run(RELEASE); motor_2.run(RELEASE); motor_3.run(RELEASE); motor_4.run(RELEASE); delay(1000); // 전체 모터 역방향 회전 motor_1.run(BACKWARD); motor_2.run(BACKWARD); motor_3.run(BACKWARD); motor_4.run(BACKWARD); delay(1000); }
▶ 쉴드와 우노보드에 전원이 연결되었다면 0번핀에 연결된 DC모터가 0~180˚사이를
|