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

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

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

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

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

BASIC4MCU > 질문게시판

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

페이지 정보

작성자 크핫 작성일19-05-14 18:12 조회179회 댓글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

조회수 : 179

master님의 댓글

master 작성일

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

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[8] master  17-10-29
공지 [무료 공개] 소스코드 하이라이트 v2.0 beta [… 댓글[1] 첨부파일master  18-01-23
질문 atmega128a 카운터/타이머 출력비교 질문이요 댓글[1] 초짜 새글 19-08-17
질문 모터드라이버 병렬 연결 댓글[3] 박준2  19-08-16
질문 서로 다른전원(5v 12v) 제어방법 질문 master  19-08-16
질문 모터드라이버 관련 질문 드립니다. 댓글[4] 박준이  19-08-15
질문 Atmega128, 초음파센서 ,부저 gksl  19-08-14
답변 답변 : Atmega128, 초음파센서 ,부저 댓글[1] master  19-08-15
질문 led 전력소모에 관하여,,, 댓글[9] 슬레a  19-08-14
질문 알고리즘 문의 댓글[1] 벅바  19-08-13
질문 블루투스가 한번 작동하고 그 다음부터 작동을 하지 않습… 댓글[1] 아야어여  19-08-13
질문 아두이노 코딩 질문입니다 너무 급해요 ㅠㅠ 댓글[3] 전민결  19-08-12
질문 코딩 작성좀 부탁드립니다. 너무 급합니다 ㅠㅠ 댓글[1] 아두이노보초  19-08-10
질문 stm32f1 계열에서 USB로 스마트폰 연결 방법(C… 댓글[2] 에르테르  19-08-08
질문 코딩을 합치고 싶습니다.. 알려주세요  19-08-08
답변 답변 : 코딩을 합치고 싶습니다.. master  19-08-08
질문 금속센서를 이용한 서보모터 돌리기 댓글[1] 후우  19-08-07
질문 아두이노로 빛 파장 계산하기 master  19-08-07
질문 ISP 질문이요 댓글[2] 초짜  19-08-06
질문 atmega128a 다시 질문이요~ 댓글[4] 첨부파일초짜  19-08-05
질문 atmega128a SCK 질문이요 댓글[1] 초짜  19-08-04
답변 답변 : atmega128a SCK 질문이요 master  19-08-04
질문 A4988 모터드라이버 발열에 대해... 댓글[1] 첨부파일눈티이  19-07-30
질문 아두이노 코딩 질문 댓글[1] 119min  19-07-27
질문 아두이노 코딩질문 붕붕  19-07-26
답변 답변 : 아두이노 코딩질문 댓글[6] master  19-07-26
질문 적외선 센서 송수신 코딩 알려주세요 댓글[3] 첨부파일뱀비  19-07-22
질문 BLDC 모터 정역회전 알고리즘대로 코딩 첨부파일CIE18  19-07-21
답변 답변 : BLDC 모터 정역회전 알고리즘대로 코딩 master  19-07-21
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전