BASIC4MCU | 질문게시판 | (아두이노)qr리더기 gm65 관련 질문입니다.
페이지 정보
작성자 숨니 작성일2022-12-10 01:36 조회871회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=22137
본문
안녕하십니까.
우선 제가 만들고 싶은 시스템은
아두이노 우노,초음파 거리센서, 스텝 모터, 로봇팔, qr 리더기(gm65)를 활용한 컨베이어 벨트 위를 지나가는 물류를 분류하는 시스템입니다.
먼저 초음파 거리센서를 통해 물체가 감지가 되면 스텝 모터를 한 바퀴 돌려서 원하는 위치까지 가져다 놓는 것을 만들었습니다.
코드는 아래와 같습니다. 이렇게 만들고 gm65를 결합을 하고 다시 아래와 같은 코드를 돌려보았는데
gm65를 끼우기 전에는 물체가 감지되었을 때만 스텝 모터가 1회전을 했는데
gm65를 끼우고 난 후에는 물체가 한번 감지되면 스텝 모터가 멈추지 않고 계속 돌아갑니다.
혹시 어떤 것이 문제인 것인지 알 수 있을까 해서 질문 남깁니다. 감사합니다.
#include <Servo.h>#include <Stepper.h>#define STEPS 2037 // 한바퀴를 이루는 스텝 갯수 입력Stepper stepper(STEPS, 8, 10, 9, 11); // 고정자 권선 순서 설정int echo =2;int trig =4;int servoPin_1=5;int servoPin_2=6;int servoPin_3=7;Servo servo1;Servo servo2;Servo servo3;int cnt=0;void setup(){stepper.setSpeed(12); // 회전 속도 지정pinMode(trig, OUTPUT);pinMode(echo, INPUT);pinMode(servoPin_1,OUTPUT); //CATCHpinMode(servoPin_2,OUTPUT); //ROBOT ARM Y AXISpinMode(servoPin_3,OUTPUT); //ROBOT ARM X AXISservo1.attach(servoPin_1);servo1.write(0);servo2.attach(servoPin_2);servo2.write(45);servo3.attach(servoPin_3);servo3.write(150);}void loop() {digitalWrite(trig, HIGH);delayMicroseconds(10);digitalWrite(trig, LOW);unsigned long duration = pulseIn(echo, HIGH);float distanceCM = ((34000 * duration) / 1000000) /2;if (distanceCM <=10){if(cnt>=10){stepper.step(STEPS);servo2.write(120);delay(2000);}else cnt = cnt +2;}else{if(cnt==0){}else cnt--;}delay(100);}
댓글 0
조회수 871등록된 댓글이 없습니다.