반응형
스테핑모터는 펄스신호에 의해 작동되는 모터로서 1펄스마다 수도~수십도의 각도만 회전하는 모터이다.
각종 전자기기나 자동차 등의 정밀 제어가 필요한 부분에 두루 쓰이는 모터이다.
이를 아두이노를 통해서 제어해 보겠다.
내가 가지고 있는 모터는 28BYJ-48 라는 모터구동을 위한 라이브러리는 아두이노 IDE에 기본적으로 포함된 것을 사용하였다.
데이터시트:
모터 드라이버 보드(X113647) 라이브러리:
이 스텝핑모터를 움직이기 위해서는 아두이노와 스텝핑모터 이외에 모터 드라이버 보드가 필요하다.
연결:
스테핑모터와 모터 드라이버와의 연결은 잭에 맞도록 그냥 끼우면 된다. 받대방향으로는 끼우지 못하게 되어 있어 잘 못 끼울 위험은 없다.
스테핑모터 드라이버 보드에는 IN1~IN4 까지 아두이노와 의 연결 단자가 있다.
연결단자를 다음과 같이 연결하였다.
IN1 ---- 아두이노 디지털 8번
IN2 ---- 아두이노 디지털 9번
IN3 ---- 아두이노 디지털 10번
IN4 ---- 아두이노 디지털 11번
-(마이너스) ---- GND
+(플러스) ---- 5V
만약 이를 역순으로 연결하면 아래의 소스 업로드 시 반대로 동작하게 된다.
##소스##
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <Stepper.h> // 회전각도 설정 = 2048:한바퀴(360도), 1024:반바퀴(180도) const int stepsPerRevolution = 2048; //360도 // 모터 드라이브에 연결된 핀 IN4, IN2, IN3, IN1 (핀연결 설정) Stepper myStepper(stepsPerRevolution,11,9,10,8); void setup() { myStepper.setSpeed(14); //모터의 회전속도 설정 Serial.begin(9600); //시리얼모니터 } void loop() { // 시계 반대 방향으로 한바퀴 회전 Serial.println("counterclockwise"); myStepper.step(stepsPerRevolution); delay(1000); // 시계 방향으로 한바퀴 회전 Serial.println("clockwise"); myStepper.step(-stepsPerRevolution); delay(1000); } | cs |
시계반대방향으로 360도 회전 후 다시 시계방향으로 360도 회전하는 소스.
회전각도는 2048이 360도이니 원하는 값을 계산하여 넣으면 된다. (예: 1024 = 180도)
Stepper Library Tutorial: https://www.arduino.cc/en/Reference/Stepper?from=Tutorial.Stepper
##결과##
반응형
'아두이노' 카테고리의 다른 글
[아두이노] 적외선(IR)센서의 사용 - VS1838B (4) | 2015.09.03 |
---|---|
[아두이노] 초음파센서(HC-SR04)를 이용한 거리측정 (8) | 2015.08.31 |
[아두이노] 시계(RTC: Real Time Clock) 모듈의 사용 (4) | 2015.08.27 |
[아두이노] 아두이노 사운드 디텍트 센서(Sound Detect Sensor)의 이용 (0) | 2015.08.27 |
[아두이노] 3색 LED의 제어 (RGB LED) (5) | 2015.08.26 |