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

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

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

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

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

BASIC4MCU > 질문게시판

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

페이지 정보

작성자 sims 작성일20-01-13 22:02 조회16,782회 댓글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

조회수 : 16,782

등록된 댓글이 없습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[31] master  17-10-29
질문 Energia 시리얼 모니터에 아무것도 출력되지않습니다… 댓글[1] 김의공  24-05-22
질문 아두이노 스위치, 에어펌프 연결 댓글[1] 첨부파일존존  24-05-20
질문 MSP430런치패드를 이용한 LCD 코딩 관련 질문 댓글[1] 뀨쥰이  24-05-16
질문 생활 속 가스 센서 첨부파일Fosen  24-05-13
질문 atmega128A로 초음파센서 바밤  24-05-13
답변 답변 : atmega128A로 초음파센서 master  24-05-13
질문 eeprom 값 출력이 다르게 나옵니다 댓글[5] 첨부파일idghte  24-05-05
답변 답변 : eeprom 값 출력이 다르게 나옵니다 master  24-05-05
질문 센서나 블루투스에서 조건문이 실행이 느립니다. 현아  24-05-03
답변 답변 : 센서나 블루투스에서 조건문이 실행이 느립니다. master  24-05-03
질문 님들 MG811 이산화탄소 센서를 쓰는데 라칸  24-05-03
답변 답변 : 님들 MG811 이산화탄소 센서를 쓰는데 master  24-05-03
질문 아두이노와 디지털 홀센서 사용 중 sampling ra… 첨부파일fjur564  24-05-03
답변 답변 : 아두이노와 디지털 홀센서 사용 중 sampli… master  24-05-03
질문 OP AMP 댓글[1] 첨부파일창원거북이  24-05-02
질문 라즈베리파이 라우팅 테이블을 영구 추가하려는데 라칸  24-04-30
질문 hc-05 블루투스와 가스센서 서브모터(sg-90) 코… wwqa  24-04-29
답변 답변 : hc-05 블루투스와 가스센서 서브모터(sg-… 댓글[1] master  24-04-29
질문 BW16 Wifi 모듈에 대한 질문좀 댓글[1] 라칸  24-04-25
질문 블루투스(hc-05) 서브모터(sg-90) 연동 질문 … wwqa  24-04-24
답변 답변 : 블루투스(hc-05) 서브모터(sg-90) 연… 댓글[2] master  24-04-24
질문 STM32F401보드 TCRT5000 적외선 감지센서 댓글[1] Orida  24-04-18
질문 눈 깜빡임 감지 아두이노 코딩 댓글[2] 에버튼  24-04-18
질문 시리얼 통신 관련 질문드립니다. ㅜ 카르니코스  24-04-18
답변 답변 : 시리얼 통신 관련 질문드립니다. ㅜ 댓글[6] master  24-04-18
질문 아두이노 PWM 제어 질문 있습니다. 댓글[1] 홍현우  24-04-17
질문 초음파센서에 아무것도 잡히지 않을 시 그래프를 비워놓는… idghte  24-04-14
답변 답변 : 초음파센서에 아무것도 잡히지 않을 시 그래프를… master  24-04-14
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전