질문게시판 > 아두이노 스텝모터 제어에 대하여..

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > 질문게시판

아두이노 스텝모터 제어에 대하여..

페이지 정보

작성자 sims 작성일20-01-13 22:02 조회14,309회 댓글0건

첨부파일

본문

안녕하세요 스텝모터 제어와 관련하여 구글링 하던 도중 이 사이트를 알게 되어 처음 가입했습니다.

 

다름이 아니라 아래 소스코드에서 한가지 질문이 있어서 질문글을 작성합니다. (몇몇 사항들을 다시 한 번 확인 해 보니 디버깅하였고 게시글도 수정했습니다.)

 

//Arduino Mega를 사용합니다.

/*작동 방법은 다음과 같습니다. 

 * 

  먼저 arduino의 전원을 on하면 스크류를 이용한 슬라이더의 위치를 정렬합니다.

  

  다음으로 up, down 버튼을 눌러 motor2의 회전수를 설정합니다.

  

  startbutton을 누르게 되면 설정 값 만큼 회전하기 위해 

  motor2가 작동됨과 동시에 motor1은 motor2가 설정값을 

  만족시킬 때 까지 1000 step 씩 스크류를 이용한 슬라이더를 

  좌, 우로 왕복 운동합니다.

  

  이후 설정값을 만족 시키게 되면 motor1과 motor2는 모두 정지하고

  0.5초의 딜레이가 주어진 후 슬라이드를 원 위치로 복귀시키기 위해 

  motor1을 +방향으로 회전합니다.

  

  슬라이드가 움직여 홈 위치에 있는 reset버튼을 눌러 홈 위치를 인식하게 되면 

  스위치와의 약간의 간격을 두기 위해 -100step 정도를 움직입니다.

  */ 

  

#include

#define STEPS 200// 1.8 deg/step, 360/1.8 = 200

#define rotation 200// limitless rotation

 

Stepper motor1(STEPS, 8, 10, 9, 11);

Stepper motor2(rotation, 4, 5, 6, 7);

 

int startbutton = 38;

int reset = 30;//슬라이드를 원 위치로 복귀

int up = 31;//숫자를 0~9범위에서 1씩 증가 설정

int down = 32;//숫자를 0~9범위에서 1씩 감소 설정

int count = 2;//아직 count의 값을 받도록 회로를 구성하지 않았기 때문에 2를 입력.

int notstart = 0;

int stp = 0;

int i;

 

void setup() {

  pinMode(reset, INPUT);

  pinMode(startbutton, INPUT);

  pinMode(up, INPUT);

  pinMode(down, INPUT);

}

 

void loop() {

  /*if(digitalRead(up)==HIGH){

      ++count;

      if(count>9){

          count=0;

        }

    }

  if(digitalRead(down)==HIGH){

      --count;

      if(count<0){

          count=9;

        }

    }*/                                          //이것은 회로구성 하지 않았습니다.

  if(notstart==0){

    for(;;){                                     //arduino전원 on시 슬라이더 위치 정렬

      motor1.setSpeed(60);

      motor1.step(1);

        if(digitalRead(reset)==HIGH){

          motor1.setSpeed(70);

          motor1.step(-100);//스위치와의 간격 두기

          notstart=1;

          break;

        }

      }

   }

  if(digitalRead(startbutton)==HIGH){     //startbutton을 누르면 작동 시작

     for(i=0; i<=count; i++){

        //

        motor2.setSpeed(60);

        motor2.step(200*count);//200step = 1rotation

        //질문1. motor2가 실행된 후 motor1이 순차적으로 실행되는데 이것을 어떻게 동시에 실행시킬 수가 있을까요?(회로도를 참고하여 코드도 써 주시면 감사하겠습니다.)

        motor1.setSpeed(20);

        motor1.step(-10);

        motor1.step(+10);

        //

        if(i==count){                      //설정값 만큼을 움직이면

          motor2.step(0);                  //motor2는 정지.

          if(stp==0){

            for(;;){

              motor1.setSpeed(50);

              motor1.step(+1);

            if(digitalRead(reset)==HIGH){ //슬라이더가 움직여 reset버튼을 눌러 홈 위치를 인식 할 때 까지 +1step 씩 회전

              motor1.setSpeed(70);

              motor1.step(-100);//스위치와의 간격 두기

              stp=1;

              break;

            }

           }

         }

          stp=0;

       }

     }

   }

}

 

 

지금까지 코드였고, 아래는 코드로 실행시킬 회로도 입니다.. 첨부파일에 소스코드와 회로도 사진 올려놓았습니다..

 

(보기는 좋지 못하지만 질문드리기 위해 열심히 그렸습니다...ㅠ)

 

회로도와 작동 방식을 참고하시어 코드를 수정해 주시면 정말.. 정말로 고맙겠습니다..

 

c94f4d6991f8786cdd4f0be5126ae619_1578920322_9028.png
 

 

 

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글 : 0

조회수 : 14,309

등록된 댓글이 없습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[29] master  17-10-29
질문 타이머 인터럽트를 이용한 LCD제어 질문입니다. Tell 새글 23-09-27
답변 답변 : 타이머 인터럽트를 이용한 LCD제어 질문입니다… 댓글[1] master 새글 23-09-28
질문 아두이노 무한루프 코드 질문... 댓글[1] vnpaz 새글 23-09-27
질문 질문있습니다ㅠㅠ 부탁드려요 댓글[1] keldeo  23-09-27
질문 0 ~ 99 이중 for문으로 작성하는법! 댓글[2] 상어  23-09-26
질문 리튬배터리로 화면 출력 질문드립니다 ! 댓글[1] 멘탈나간다  23-09-26
질문 lcd,바코드,서보모터, 아두이노 질문 드립니다. ㅠㅠ 댓글[1] 아두이노개발자  23-09-26
질문 stm32에서 변수 값을 유지하는 방법 댓글[1] 라칸  23-09-26
질문 안녕하세요 스위치로 led 제어 관련 질문이 있습니다 댓글[1] 노형빈  23-09-25
질문 16X16 도트 매트릭스 구동방법 질문입니다. 댓글[1] 첨부파일맹균  23-09-25
질문 stm32에서 RTC 시간 함수 쓰는데 의문점 댓글[1] 라칸  23-09-25
질문 GPS 모듈 관련 질문입니다. 댓글[3] 지구과학  23-09-22
질문 아두이노 블루투스와 초음파센서를 이용한 장애물 정지 댓글[2] 둘둘이  23-09-22
답변 답변 : 아두이노 블루투스와 초음파센서를 이용한 장애물… 댓글[1] master  23-09-25
질문 stm32 보드에서 시간설정과 불러오기를 하는데 댓글[5] 라칸  23-09-22
질문 아두이노 인터럽트 질문입니다. 댓글[2] Tell  23-09-21
답변 답변 : 아두이노 인터럽트 질문입니다. 댓글[1] master  23-09-22
질문 아두이노와 거리 감지 센서의 전류 관련 댓글[1] hmkim  23-09-21
질문 아두이노 코딩 질문있습니다. 도와주세요.... 댓글[1] 첨부파일vnpaz  23-09-20
질문 아두이노를 사용한 dc모터 위치제어 댓글[2] 모터위치  23-09-20
질문 stm32 디버깅이나 rst버튼 없이 하는 방법좀 댓글[1] 라칸  23-09-20
질문 LCD에 숫자 표기법을 바꾸고 싶습니 댓글[2] Bs드리프터  23-09-19
질문 알코올 측정기(MQ-3) 관련 질문 소오금  23-09-18
답변 답변 : 알코올 측정기(MQ-3) 관련 질문 master  23-09-19
질문 스텝모터 제어하는 소스파일 수정방법 질문드립니다. Bs드리프터  23-09-15
답변 답변 : 스텝모터 제어하는 소스파일 수정방법 질문드립니… 댓글[1] master  23-09-15
질문 atmega 128을 이용한 악기 튜너기 댓글[1] 아두이노짱  23-09-15
질문 stm32 보드 ip주소 찾는법 댓글[1] 라칸  23-09-13
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전