에듀이노-아두이노 전문 교육쇼핑몰 에듀이노-코딩 교육 전문 쇼핑몰 - 아두이노 라즈베리파이 등 전자부품

기술문의

뒤로가기
제목

라인트레이싱과 초음파 센서 동시 동작에 대해 질문있습니다. (재문의)

작성자 안수철(ip:)

작성일 2021-06-22

조회 89

평점 0점  

추천 추천하기

내용

#include <SoftwareSerial.h>

#include <AFMotor.h>

AF_DCMotor motor_L(1);              // 모터드라이버 L293D  1: M1에 연결,  4: M4에 연결

AF_DCMotor motor_R(4); 


int trigPin = 9;

int echoPin = 10;


void setup() {

  Serial.begin(9600);              // PC와의 시리얼 통신속도

  Serial.println("Eduino Smart Car Start!");


  // turn on motor

  motor_L.setSpeed(180);              // 왼쪽 모터의 속도   

  motor_L.run(RELEASE);

  motor_R.setSpeed(180);              // 오른쪽 모터의 속도   

  motor_R.run(RELEASE);


pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);


}


void loop() {

    int val1 = digitalRead(A0);    // 라인센서1

    int val2 = digitalRead(A5);    // 라인센서2   


  long duration, distance;                   // 각 변수를 선언합니다.

  digitalWrite(trigPin, LOW);                 // trigPin에 LOW를 출력하고

  delayMicroseconds(2);                    // 2 마이크로초가 지나면

  digitalWrite(trigPin, HIGH);                // trigPin에 HIGH를 출력합니다.

  delayMicroseconds(10);                  // trigPin을 10마이크로초 동안 기다렸다가

  digitalWrite(trigPin, LOW);                // trigPin에 LOW를 출력합니다.

  duration = pulseIn(echoPin, HIGH);   // echoPin핀에서 펄스값을 받아옵니다.


 

 


distance = duration * 17 / 1000;          //  duration을 연산하여 센싱한 거리값을 distance에 저장합니다.

Serial.println(distance); 



    if (distance > 15){

      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);

      } 

    }

      else{              // 정지

        motor_L.run(RELEASE); 

        motor_R.run(RELEASE);

      }           

}

    

해당 소스는 기존 소스와 밑에있는 보내주신 초음파 설정 소스를 합쳐서 실행한 코드입니다만 동작이 되지 않아 재문의 드립니다.



     long duration, distance;

     digitalWrite(trigPin, HIGH); // trigPin에서 초음파 발생(echoPin도 HIGH)

     delayMicroseconds(10);

     digitalWrite(trigPin, LOW);

     duration = pulseIn(echoPin, HIGH); // echoPin 이 HIGH를 유지한 시간을 저장 한다.

     distance = duration * 17 / 1000; 

해당 소스를 받았습니다.


전체적인 소스를 질문드립니다.



첨부파일

비밀번호
수정

비밀번호 입력후 수정 혹은 삭제해주세요.

댓글목록

  • 작성자 아두이노짱

    작성일 2021-06-22

    평점 0점  

    스팸글 첨부해주신 코드로 제가 테스트 해봤을 땐 잘되는데 외부전원 넣어주셨나요?

    모터 구동시키려면 전류 많이 먹어서 USB만 연결되어있는 상태에서는 구동되지 않을 수 있어요

    저는 9V 1A 어댑터 전원으로 테스트 했습니다

    혹시 모터에서 삐삐- 소리 나면서 바퀴가 돌아가지 않으면 전력이 부족하거나 접촉불량이니 점검해보세요
댓글 수정

이름

비밀번호

내용

/ byte

수정 취소

비밀번호 :

확인 취소

댓글 입력

이름

비밀번호

내용

/ byte

평점

왼쪽의 문자를 공백없이 입력하세요.

에게만 댓글 작성 권한이 있습니다.

댓글 입력

이름

비밀번호

내용

/ byte

왼쪽의 문자를 공백없이 입력하세요.

에게만 댓글 작성 권한이 있습니다.

관련 글 보기


고객센터

    1670-9626

  • 팩스.063-902-6678
  • 이메일.eduino@robodyne.co.kr
  • Kakao. 에듀이노
  • 운영시간 : AM 10:00 ~ PM 6:00
  • 점심시간 : 12:00 - 13:00 토/일/공휴일 휴무
  • 고객센터 연결하기
입금계좌
  • 예금주: (주)로보다인시스템
  • 국민. 754801-01-760296
  • 농협. 301-0234-1423-01
  • IBK기업은행. 506-080015-01-016
배송 안내
  • 배송 방법 : 택배
  • 배송 지역 : 전국지역
  • 배송 비용 : 조건부 무료 : 주문 금액 100,000원 미만일 때 배송비 2,500원을 추가합니다.
  • 배송 기간 : 1일 ~ 2일
  • 배송 안내 :
    - 제주도, 산간벽지나 도서지방은 별도의 추가금액을 지불하셔야 하는 경우가 있습니다.
    고객님께서 주문하신 상품은 입금 확인후 배송해 드립니다. 다만, 상품종류에 따라서 상품의 배송이 다소 지연될 수 있습니다.
교환/반품 안내
교환 및 반품이 가능한 경우
- 상품을 공급 받으신 날로부터 7일이내 단, 가전제품의
  경우 포장을 개봉하였거나 포장이 훼손되어 상품가치가 상실된 경우에는 교환/반품이 불가능합니다.
- 공급받으신 상품 및 용역의 내용이 표시.광고 내용과
  다르거나 다르게 이행된 경우에는 공급받은 날로부터 3월이내, 그사실을 알게 된 날로부터 30일이내

교환 및 반품이 불가능한 경우
- 고객님의 책임 있는 사유로 상품등이 멸실 또는 훼손된 경우. 단, 상품의 내용을 확인하기 위하여
  포장 등을 훼손한 경우는 제외
- 포장을 개봉하였거나 포장이 훼손되어 상품가치가 상실된 경우
  (예 : 가전제품, 식품, 음반 등, 단 액정화면이 부착된 노트북, LCD모니터, 디지털 카메라 등의 불량화소에
  따른 반품/교환은 제조사 기준에 따릅니다.)
- 고객님의 사용 또는 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 단, 화장품등의 경우 시용제품을
  제공한 경우에 한 합니다.
- 시간의 경과에 의하여 재판매가 곤란할 정도로 상품등의 가치가 현저히 감소한 경우
- 복제가 가능한 상품등의 포장을 훼손한 경우
  (자세한 내용은 고객만족센터 1:1 E-MAIL상담을 이용해 주시기 바랍니다.)

※ 고객님의 마음이 바뀌어 교환, 반품을 하실 경우 상품반송 비용은 고객님께서 부담하셔야 합니다.
  (색상 교환, 사이즈 교환 등 포함)
빠른 메뉴 바로가기