질문게시판 > 아두이노 적외선센서 스텝모터 코딩 질문합니다. (급해요ㅠㅠ)

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

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

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

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

BASIC4MCU > 질문게시판

아두이노 적외선센서 스텝모터 코딩 질문합니다. (급해요ㅠㅠ)

페이지 정보

작성자 크핫 작성일19-05-14 18:12 조회467회 댓글1건

본문

현재 적외선센서를 이용한 자동개폐창문을 만들려고 합니다.

거리값이 40cm 이하일 때, 창문이 닫히도록 설정하고 싶은데 

적외선센서의 소스와 스텝모터 소스를 합치는데 어려움을 겪고 있습니다. 

모터는 42BYGHN1641A-05-C/2상 스테핑모터/바이폴라, 모터 드라이버는 A3967을 사용하고 있습니다.

답변주시면 감사하겠습니다.

아래대로 코딩을 했는데 모터에 진동만 오고 움직이질 않습니다 ㅜㅜ 도와주세요 ,,.

#define DIR_PIN 2
#define STEP_PIN 3
int distance = 0;

void setup() {
   Serial.begin(9600);
  pinMode(DIR_PIN, OUTPUT);
  pinMode(STEP_PIN, OUTPUT);
}
 
void loop(){
  //rotate a specific number of degrees
  rotateDeg(360, 1);
  delay(1000);
 
  rotateDeg(-360, .1);  //reverse
  delay(1000);
 
  //rotate a specific number of microsteps (8 microsteps per step)
  //a 200 step stepper would take 1600 micro steps for one full revolution
  rotate(1600, .5);
  delay(1000);
 
  rotate(-1600, .25); //reverse
  delay(1000);
  int volt = map(analogRead(A0), 0, 1023, 0, 5000);
   distance = (27.61 / (volt - 0.1696)) * 1000;
   Serial.print(distance);
  Serial.print(" cm");
  Serial.println(" ");
}
 
void rotate(int steps, float speed){
  //rotate a specific number of microsteps (8 microsteps per step) - (negitive for reverse movement)
  //speed is any number from .01 -> 1 with 1 being fastest - Slower is stronger
  int dir = (steps > 0)? HIGH:LOW;
  steps = abs(steps);
 
  digitalWrite(DIR_PIN,dir);
 
  float usDelay = (1/speed) * 70;
 
  for(int i=0; i < steps; i++){
    digitalWrite(STEP_PIN, HIGH);
    delayMicroseconds(usDelay);
 
    digitalWrite(STEP_PIN, LOW);
    delayMicroseconds(usDelay);
  }
}
 
void rotateDeg(float deg, float speed){
  //rotate a specific number of degrees (negitive for reverse movement)
  //speed is any number from .01 -> 1 with 1 being fastest - Slower is stronger
  int dir = (deg > 0)? HIGH:LOW;
  digitalWrite(DIR_PIN,dir);
 
  int steps = abs(deg)*(1/0.225);
  float usDelay = (1/speed) * 70;
 
  for(int i=0; i < steps; i++){
    digitalWrite(STEP_PIN, HIGH);
    delayMicroseconds(usDelay);
 
    digitalWrite(STEP_PIN, LOW);
    delayMicroseconds(usDelay);
  }
  if(distance<40)
  { rotateDeg(360, 1);
  delay(1000);
}
else
  { rotateDeg(-360, 1);
  delay(1000);
}
}
 

 

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

댓글 : 1

조회수 : 467

master님의 댓글

master 작성일

http://blog.daum.net/_blog/BlogTypeView.do?blogid=0ZPt7&articleno=2593
웹검색하면 예제가 많을텐데요
예제와 동일하게 동작시켜서 돌아가는 것을 확인 한 후에
다른 기능을 추가하세요

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[10] master  17-10-29
공지 [무료 공개] 소스코드 하이라이트 v2.0 beta [… 댓글[1] 첨부파일master  18-01-23
질문 앱인벤터이용해서 세그먼트사용하기 댓글[2] bas213 새글 20:08
질문 센서 질문입니다 오기 새글 16:54
답변 답변 : 센서 질문입니다 master 새글 20:03
질문 AT mega128 글리치 제거관련 질문입니다. 댓글[1] 스아레즈 새글 15:24
질문 아두이노 코딩합치기질문입니다. 항정통 새글 10:39
답변 답변 : 아두이노 코딩합치기질문입니다. master 새글 12:05
질문 아두이노 MPU6050과 LED를 이용한 밝기조절 댓글[3] 첨부파일초보아두 새글 03:26
질문 서보모터 질문 알씨알씨 새글 19-12-15
질문 서보모터 속도 댓글[1] 알씨알씨 새글 19-12-15
질문 초기화 어떻게 하나요? 댓글[1] 끵끵끵 새글 19-12-15
질문 미세먼지센서 GP2Y1023AU0F 코드 질문드립니다! 첨부파일덕덕덕 새글 19-12-15
질문 질문 하나만 더하겠습니다!! Leos 새글 19-12-15
답변 답변 : 질문 하나만 더하겠습니다!! master 새글 19-12-15
질문 아두이노 자동차 소스 작성중 어려움이 있어 질문 드립니… 댓글[1] 쿤싼 새글 19-12-15
질문 atmega 128에서 인터럽트가 적용이 되질 않습니다… 메가콜라 새글 19-12-14
답변 답변 : atmega 128에서 인터럽트가 적용이 되질… 댓글[1] master 새글 19-12-14
질문 온도센서 질문입니다. 댓글[1] 오기  19-12-14
질문 ATMEGA128 노래 속도 Leos  19-12-14
답변 답변 : ATMEGA128 노래 속도 master  19-12-14
질문 초기화 어떻게 하나요? 댓글[2] 끵끵끵  19-12-14
답변 답변 : 초기화 어떻게 하나요? master 새글 19-12-14
질문 서보모터 이용 자율주행 관련 질문 klohs  19-12-13
답변 답변 : 서보모터 이용 자율주행 관련 질문 master  19-12-13
질문 atmega128 / bldc모터 구동 질문입니다. 댓글[1] 첨부파일조셉  19-12-13
질문 atmega128 lm35 질문입니다. 댓글[3] 오기  19-12-12
질문 블루투스(HM-10) 비콘 관련 질문 댓글[2] 으앙  19-12-12
질문 모터가 이상합니다. 댓글[3] 첨부파일이즈미  19-12-12
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전