BASIC4MCU | 질문게시판 | 아두이노 우노 라인트레이서 질문드립니다.
페이지 정보
작성자 전주사람 작성일2022-11-21 02:12 조회4,010회 댓글1건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=21708
본문
#include <SoftwareSerial.h> //// 시리얼 통신을 위한 객체 생성#include <AFMotor.h> //// 모터 드라이버 사용을 위한 객체 생성AF_DCMotor motor_L(2); //// 왼쪽 모터를 M2 단자에 연결AF_DCMotor motor_R(3); //// 오른쪽 모터를 M3 단자에 연결void setup() {motor_L.setSpeed(230); // 왼쪽 모터의 속도를 230으로 지정motor_L.run(RELEASE); // 초기에 왼쪽모터를 자유회전(정지) 상태로 설정motor_R.setSpeed(230); // 오른쪽 모터의 속도를 230으로 지정motor_R.run(RELEASE); // 초기에 오른쪽모터를 자유회전(정지) 상태로 설정}void loop() {int val1 = digitalRead(A0); // 왼쪽에 있는 적외선 센서의 값을 읽어와서 val1에 저장int val2 = digitalRead(A5); // 오른쪽에 있는 적외선 센서의 값을 읽어와서 val2에 저장if (val1 == 0 && val2 == 0) { /// 양쪽 센서 모두 라인 검지 안함 --> 직진motor_L.run(FORWARD); /// 초기 설정된 속도로 왼쪽모터 직진motor_R.run(FORWARD); /// 초기 설정된 속도로 오른쪽모터 직진}else if (val1 == 0 && val2 == 1) { /// 오른쪽 센서가 라인 검지 --> 우회전motor_L.run(FORWARD); /// 초기 설정된 속도로 왼쪽모터 직진motor_R.run(RELEASE); /// 오른쪽 모터 정지}else if (val1 == 1 && val2 == 0) { /// 왼쪽 센서가 라인 검지 --> 좌회전motor_L.run(RELEASE); /// 왼쪽 모터 정지motor_R.run(FORWARD); /// 초기 설정된 속도로 오른쪽 모터 직진}else if (val1 == 1 && val2 == 1) { /// 양쪽 센서 모두 라인 검지 --> 정지motor_L.run(RELEASE); /// 왼쪽 모터 정지motor_R.run(RELEASE); /// 오른쪽 모터 정지}}직진일때는 속도를 빠르게 설정하고 우회전 혹은 좌회전 할때 속도를 줄여 안정도를 높이고 싶습니다..또한 검은선이 십자가 모양으로 겹쳐있을때 직진을 하려고 합니다.어떻게 해야할까요??..
댓글 1
조회수 4,010master님의 댓글
master 작성일
관성이 있어서 속도를 줄이는 것이 쉽지 않습니다.
//
else if (val1 == 1 && val2 == 1) { /// 양쪽 센서 모두 라인 검지 --> 정지
마지막 if문에서 정지하지말고 직진 하도록 수정 해보세요