BASIC4MCU | 질문게시판 | 스텝모터 제어 코드 질문드립니다!
페이지 정보
작성자 으에헤에 작성일2019-05-10 16:30 조회5,416회 댓글1건본문
안녕하세요! 아두이노로 스텝모터 제어하는데 이 코드가 맞는지 여쭤보려 합니다.
사용 부품: 1. KH56QM2-90201 스텝모터
2. 아두이노 우노
3. MAI-2MT-ST V2.1 스테핑모터 드라이버
원하는 제어 : 0.15초 가속, 0.15초감속 후 1초 정지 (스위치가 달려있음)
아직 직접연결해보지 못하고 코딩만 하는데, 수정할 부분이 있는지 알려주시면 감사하겠습니다 :)
// A Motor INA(모터 드라이버 1번핀) - Arduino D2 => A-A
// A Motor INB(모터 드라이버 2번핀) - Arduino D3 => A-B
// A Motor -INA (모터 드라이버 3번핀)- Arduino D4 => A-/A
// A Motor -INB (모터 드라이버 4번핀)- Arduino D5 => A-/B
// 모터를 정방향 회전시키기 위해서 출력을 주는 순서
// A(D2) -> B(D3) -> /A(D4) -> /B(D5)
// 모터를 역방향 회전시키기 위한 출력 순서
// /B(D5) -> /A(D4) -> B(D3) -> A(D2)
// kh56qm2 모터 -> 1.8[deg/step] -> [200step/rotate]
// 그래프 분석결과 2.1[rad/sec] -> 120.321[degree/sec]
// 1[rad/s] = 9.5[rpm]
// 2.1[rad/s] = 20[rpm]
// 20x200[step/min] -> 4000/60[step/sec] -> 67[step/sec]
#include <Stepper.h>
const int STEPSPERPULSE = 1;
const int stepsPerRevolution = 200; //모터가 한바퀴 회전하는데 필요한 Step수
float rpm = 0;
int cnt = 0;
float step_delay;
bool ON = true;
Stepper myStepper(stepsPerRevolution, 2, 4, 3, 5); // (step,INA, -INA, INB -INB)
// 최초 1번만실행
void setup()
{
Serial.begin(9600);
}
// 계속 반복실행
void loop()
{
accel();
decel();
if (rpm > 0.1) {
myStepper.step(STEPSPERPULSE);
Serial.println("step");
}// 한번에 작동하는 Step수 step(step수): 정방향, step(-step수): 역방향
}
void accel() {
if(cnt < 15) {
rpm = rpm + 1.33;
myStepper.setSpeed(rpm);
cnt++;
Serial.print("rpm: ");
Serial.println(rpm);
Serial.print("step_delay: ");
Serial.println(60L * 1000L * 1000L / stepsPerRevolution / rpm);
}
}
void decel() {
if(cnt>=15 && cnt < 30) {
rpm = rpm - 1.33;
myStepper.setSpeed(rpm);
cnt++;
Serial.print("rpm: ");
Serial.println(rpm);
Serial.print("step_delay: ");
Serial.println(60L * 1000L * 1000L / stepsPerRevolution / rpm);
} else if (cnt==30) {
delay(1000);
cnt = 0;
}
}
댓글 1
조회수 5,416master님의 댓글
master 작성일
https://www.google.com/search?pws=0&gl=us&ei=-izVXMLBOqLfmAX0npGYDg&q=%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8+Stepper.h+accel%28%29&oq=%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8+Stepper.h+accel%28%29&gs_l=psy-ab.12...648.11442..12678...0.0..0.161.421.0j3......0....2j1..gws-wiz.......0i30.P3sizT_AwVs
라이브러리를 설치하면
예제도 함께 설치 됩니다.
예제를 먼저 공부하세요