BASIC4MCU | 질문게시판 | 리니어레일,적외선 리모컨,적외선 거리센서 연동 질문입니다
페이지 정보
작성자 졸업하자 작성일2020-11-15 17:46 조회8,544회 댓글1건본문
#include <IRremote.h>
#include <Stepper.h>
int stepsPerRevolution = 200;
int control;
int IR_sensor = A3;
Stepper motor1(stepsPerRevolution, 8, 9);
Stepper motor2(stepsPerRevolution, 10, 11);
int RECV_PIN = A0;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
irrecv.enableIRIn();
digitalWrite(0,LOW);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode (IR_sensor, INPUT);
motor1.setSpeed(1200);
motor2.setSpeed(1200);
Serial.begin(9600);
}
void loop()
{
long IR_value = analogRead(IR_sensor);
if (irrecv.decode(&results))
{
Serial.println(results.value,HEX);
if(results.value == 0xFF38C7)
{
control=1;
}
else if(results.value == 0xFF6897)
{
control=2;
}
irrecv.resume();
if (control==1)
{
for(int i=0; i <= 5000; i++)
{
motor1.step(stepsPerRevolution);
motor2.step(stepsPerRevolution);
}
}
else if(control==2)
{
for(int i=0; i <= 5000; i++)
{
motor1.step(-stepsPerRevolution);
motor2.step(-stepsPerRevolution);
}
}
else if(IR_value<=600)
{
motor1.step(0);
motor2.step(0);
}
}
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ코드는 이렇게 구성했습니다.적외선 거리센서와 리니어 레일 모터(+적외선 리모컨)를 각각 연결 했을 때는 동작을 하지만 두개를 같이 연동하면 컴파일 오류가 나진 않지만 작동을 하지않습니다.적외선 거리센서와 다른 제품들이 호환이 되지 않는지 아니면 코드가 문제인지 궁금합니다.그게 아니라면 다른 문제가 있는지 궁금합니다.(적외선 거리센서를 연결만 해놓고 리니어 레일만 작동하는 코드를 실행시켜도 작동하지 않습니다 .)조언 부탁드립니다 !! :)
댓글 1
조회수 8,544master님의 댓글
master 작성일
void loop(){
long IR_value = analogRead(IR_sensor);
//
if (irrecv.decode(&results)){
Serial.println(results.value,HEX);
if(results.value == 0xFF38C7) { control=1; }
else if(results.value == 0xFF6897) { control=2; }
irrecv.resume();
}
//
if (control==1) { motor1.step(1); motor2.step(1); }
else if(control==2) { motor1.step(-1); motor2.step(-1); }
else if(IR_value<=600) { motor1.step(0); motor2.step(0); }
}
}
5000 회전을 시키면 오랜시간 다른 동작을 하지 못합니다.
1스텝씩 회전시켜야지 빠른 동작을 하게 됩니다.