BASIC4MCU | 질문게시판 | 블루투스 아두이노 코딩중에서 delay 질문
페이지 정보
작성자 master 작성일2018-07-02 10:20 조회9,325회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=2228
본문
![]()
아두이노 코딩인데 저대로 코딩을 넣게 되면 'l'이 들어왔을 때 left함수를 delay동안 실행 하다가 right함수를 실행하는 걸로 생각이 들어서 코딩을 다운해서 실행하여 보니
그냥 left는 건너가고 바로 right만 실행이 되더라구요..ㅠㅠ 왜 그럴까요..
//
전체 소스를 텍스트로 첨부하고 댓글로 적어보세요
//
void loop(){left(); delay(3000); stoped(); delay(3000);right(); delay(3000); stoped(); delay(3000);forward(); delay(3000); stoped(); delay(3000);back(); delay(3000); stoped(); delay(3000);}
간단한 코드로 테스트하세요
else if(cmd=='l'){ left(); delay(500); right(); }
이 코드의 문제점은 딜레이가 너무 작습니다.
예를들어서 전진 중이었다고 해보죠
전진 하다가 우회전 또는 좌회전 하려면
두 바퀴중 하나는 전진 그대로이고 다른 한 바퀴는 정지인데
관성에 의해서 계속 끌려가게 됩니다.
즉, 멈추는데 오래 걸리는 것이죠
따라서 좌회전은 하지 않는 것처럼 보일 수 있는겁니다.
else if(cmd=='l'){ left(); delay(3000); right(); }딜레이를 3초씩 주면 당연히 좌회전이 보이게 됩니다.
댓글 0
조회수 9,325등록된 댓글이 없습니다.