질문게시판 > [도움이 절실합니다.] 이 알고리즘에 대한 아두이노 소스를 짜는데 스탭모터라 생소하네요..

TODAY364 TOTAL207,799
사이트 이용안내
Login▼/회원가입
포럼 동영상강좌 회원가입


BASIC4MCU 후원업체 최신 정보

BASIC4MCU | 질문게시판 | [도움이 절실합니다.] 이 알고리즘에 대한 아두이노 소스를 짜는데 스탭모터라 생소하네요..

페이지 정보

작성자 동경손님 작성일2018-05-09 15:17 조회503회 댓글11건

본문

	

5e1f3bcd9b9f228bfdf1443658fe1842_1525846329_3875.PNG 

부품은
1. 5 60각 스테핑모터
2. 오토닉스MD5-HD14

<장애물인식은 초음파 센서>
알칸도 자율주행 초음파 센서모듈

위 알고리즘에 대해서 작성하는데에 있어서 댓글로 질문해주시면 좋겠습니다!
그리고 아두이노를 사용합니다
모터는 스텝모터
장애물 감지는 초음파센서
인터럽트부분이 까다롭네요..

제발 도와주세요..

네이버에 같은글로 올라와있습니다 내공 드릴게요!

지속적인피드벡 가능합니다
  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 11

조회수 503

동경손님님의 댓글

동경손님 작성일

계속 같은루트를 도는 자동차라고 보시면 됩니다!

master님의 댓글

master 작성일

5상 스텝모터가 자동차에 달려있었나요?
제공받은 예제소스 첨부해보세요
//
가진 자료 모두 첨부파일에 올리시고
문제가 되는 것을 하나씩 차근 차근 질문으로 작성해주세요
실제 동작테스트를 해볼 수가 없으니 동작을 시켜봐야지 알 수 있는 것은 직접 해결하셔야합니다.

master님의 댓글

master 작성일

초음파센서를 인터럽트로 구동하고 있나보군요
이 것도 예제소스를 받았으면 첨부하세요

동경손님님의 댓글

동경손님 작성일

예제소스가 없더라구요.. 구입할때도 아무말없이 그냥 제품만 오고 데이터시트 정도 왓어요..

master님의 댓글

master 댓글의 댓글 작성일

어디까지 했고
뭘 도와드리면 되죠?

실물이 없어서 도와드리는데 한계가 있습니다.
많은 부분을 직접하시고, 혼자서 하기 힘든 부분을 질문글로 작성해보세요
처음부터 막히면 한가지씩 질문하세요
한꺼번에 답을 얻을 수는 없습니다.

동경손님님의 댓글

동경손님 작성일

#include <Stepper.h>
 --pin 연결 선언 --
int in1Pin = 12;
int in2Pin = 11;
int in3Pin = 10;
int in4Pin = 9;
int in5pin = 8;
 
Stepper motor(768, in1Pin, in2Pin, in3Pin, in4Pin, in5pin);
 --pin 모드 셋팅 --
void setup()
{
    pinMode(in1Pin, OUTPUT);
  pinMode(in2Pin, OUTPUT);
  pinMode(in3Pin, OUTPUT);
  pinMode(in4Pin, OUTPUT);
  pinMode(in5Pin, OUTPUT);
 
셋팅은 이렇게하고

바퀴를 시계방향으로 한바퀴 구르고
반대로 한바퀴 구르고

예)
양쪽바퀴가 5바퀴 시계방향으로 구른뒤

방향전환 (오른쪽바퀴 시계방향으로 5바퀴 왠쪽바퀴 반시계방향으로 5바퀴)
이런 구동을 하는방법을 원합니다.

master님의 댓글

master 댓글의 댓글 작성일

5상모터 예제와는 다른 것 같군요?
검색해서 찾은 예제가 있다면
전체 소스를 본문 첨부하든지
링크를 적어보세요

동경손님님의 댓글

동경손님 작성일

구글에는 한 루프안에 써놓앗는데 이부분도 이해가 잘안됩니다.

void loop()
{
  if (Serial.available())
  {
    // 시계 반대 방향으로 한바퀴 회전
  myStepper.step(stepsPerRevolution);
for(int i=0; i<32; i++) { // 64 * 32 = 2048 한바퀴 myStepper.step(stepsPerRevolution); }
  delay(500);

  // 시계 방향으로 한바퀴 회전
  myStepper.step(-stepsPerRevolution);
for(int i=0; i<32; i++) { myStepper.step(-stepsPerRevolution); }
  delay(500);
  }
}

master님의 댓글

master 댓글의 댓글 작성일

구글의 스텝모터 예제는 대부분 2상모터용이라서 5상모터에는 사용하지 못합니다.
5상모터라고 해도 어려운 것은 아니므로
메뉴얼에서 1펄스 구동 방법을 공부하세요
아두이노와 모터드라이버의 회로 연결도 공부해야하고
간단한 회전부터 예제를 만들면서 공부하셔야합니다.
//
결과가 아무리 급해도
기초부터 차근차근 하지 않는다면 중도포기하게 됩니다.
//
제가 동일한 부품을 가지고 있다면 하나씩 예제를 만들어서 알려드리겠지만
그렇지 않으니 직접 공부하셔야합니다.
공부하는 과정에서 막히는 것들을 하나씩만 질문글로 작성해서 도움을 받으세요
시간상 한꺼번에 많은 내용을 알려드릴 수도 없지만
많은 내용을 알려드려도 받아들이지 못합니다.

동경손님님의 댓글

동경손님 작성일

#include <Stepper.h>
#define TRIG_PIN 2
#define ECHO_PIN 3
 
int in1Pin = 12;
int in2Pin = 11;
int in3Pin = 10;
int in4Pin = 9;
int in5pin = 8;
 
Stepper motor(300, in1Pin, in2Pin, in3Pin, in4Pin, in5pin);
 
void setup()
{
  pinMode(in1Pin, OUTPUT);
  pinMode(in2Pin, OUTPUT);
  pinMode(in3Pin, OUTPUT);
  pinMode(in4Pin, OUTPUT);
  pinMode(in5pin, OUTPUT);
  // this line is for Leonardo's, it delays the serial interface
  // until the terminal window is opened
  while (!Serial);

  Serial.begin(9600);
  motor.setSpeed(20);
}
 
void loop()
{
 attachInterrupt(1, fking0, RISING);
 attachInterrupt(1, fking1, RISING);
 attachInterrupt(1, fking2, RISING);
 attachInterrupt(1, fking3, RISING);

 int distance = 0;
 digitalWrite(TRIG_PIN, HIGH);
 delayMicroseconds(10);
 digitalWrite(TRIG_PIN, LOW);
 distance = pulseIn(ECHO_PIN, HIGH)/58.2; /* 센치미터(cm) */

 if (distance <= 10)
 { /*스텝모터 정지*/;}

}

void fking0()
{

}

void fking1()
{

}

void fking2()
{

}

void fking3()
{

}
직접 해봣는데  동작에 관한건 어찌해야할지 모르겟네요...

예제소스도 없어서 상당히 어려움을 격네요..

그리고 아두이노 헤더파일로 5상 되는거 확인했습니다.

master님의 댓글

master 작성일

간단한 제어문을 작성하려면
기본적인 c언어를 공부하셔야합니다.

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.

ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
게시물 검색

Privacy Policy
MCU BASIC ⓒ 2017