BASIC4MCU | 질문게시판 | 답변 : 스탭모터 3개 회로도 질문..
페이지 정보
작성자 master 작성일2024-10-12 10:31 조회156회 댓글0건본문
https://www.makerguides.com/a4988-stepper-motor-driver-arduino-tutorial/여기 있는 예제를 제 스타일로 정리하면 아래와 같이 됩니다.
#define dir1 2
#define step1 3
//
void setup(){
pinMode(step1,OUTPUT);
pinMode(dirP1,OUTPUT);
}
//
void clk1(int n){
for(int i=0;i
digitalWrite(step1,1); delayMicroseconds(2000);
digitalWrite(step1,0); delayMicroseconds(2000);
}
}
//
void loop(){
digitalWrite(dir1,1); clk1( 200); delay(1000); // 정방향 1회전
digitalWrite(dir1,0); clk1( 200); delay(1000); // 역방향 1회전
digitalWrite(dir1,1); clk1(1000); delay(1000); // 정방향 5회전
digitalWrite(dir1,0); clk1(1000); delay(1000); // 역방향 5회전
}
간단한 코드이므로 모터 2개 더 추가하는 것은 간단한 일입니다.
#define dir1 2
#define step1 3
#define dir2 4
#define step2 5
#define dir3 6
#define step3 7
//
void setup(){
pinMode(step1,OUTPUT); pinMode(dirP1,OUTPUT);
pinMode(step2,OUTPUT); pinMode(dirP2,OUTPUT);
pinMode(step3,OUTPUT); pinMode(dirP3,OUTPUT);
}
//
void clk1(int n){
for(int i=0;i
digitalWrite(step1,1); delayMicroseconds(2000);
digitalWrite(step1,0); delayMicroseconds(2000);
}
}
//
void clk2(int n){
for(int i=0;i
digitalWrite(step2,1); delayMicroseconds(2000);
digitalWrite(step2,0); delayMicroseconds(2000);
}
}
//
void clk3(int n){
for(int i=0;i
digitalWrite(step3,1); delayMicroseconds(2000);
digitalWrite(step3,0); delayMicroseconds(2000);
}
}
//
void loop(){
//모터1
digitalWrite(dir1,1); clk1( 200); delay(1000); // 정방향 1회전
digitalWrite(dir1,0); clk1( 200); delay(1000); // 역방향 1회전
digitalWrite(dir1,1); clk1(1000); delay(1000); // 정방향 5회전
digitalWrite(dir1,0); clk1(1000); delay(1000); // 역방향 5회전
//모터2
digitalWrite(dir2,1); clk2( 200); delay(1000); // 정방향 1회전
digitalWrite(dir2,0); clk2( 200); delay(1000); // 역방향 1회전
digitalWrite(dir2,1); clk2(1000); delay(1000); // 정방향 5회전
digitalWrite(dir2,0); clk2(1000); delay(1000); // 역방향 5회전
//모터3
digitalWrite(dir3,1); clk3( 200); delay(1000); // 정방향 1회전
digitalWrite(dir3,0); clk3( 200); delay(1000); // 역방향 1회전
digitalWrite(dir3,1); clk3(1000); delay(1000); // 정방향 5회전
digitalWrite(dir3,0); clk3(1000); delay(1000); // 역방향 5회전
}
댓글 0
조회수 156등록된 댓글이 없습니다.