정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

아두이노 && 문에 대하여 질문이있습니다 ㅜㅜ
이재환 | 2016-05-02

밑에 글을 작성한 학생입니다

초음파의 거리값인 distance값이 센서에서 측정되지 않는다는 건가요??

지금 보시면 문법적으로 조건문이 이상합니다.

 

  if (distance1&&distance2 < 7) //7cm 이하면
  { 
   sendMsg = 'S'; //멈춤

    delay(100);
  }

위 조건문에서 &&는 두개의 조건을 묶는 함수지 distance1과 distance2을 동시에 묶는 연산자가 아닙니다.

위 같이 조건문을 작성하면 distance1은 1보다 크기 때문에 true라는 조건을 가지게 되며 결국 distance2가 7보다 작을 경우에만 S라는 문구를 출력합니다.

 

if (7 < distance1&&distance2 < 18) // 7~18

또 위 조건문은 의도하신바가 맞는지는 모르겠지만 저렇게 쓸 경우는 distance1이 7보다 크고 distance2가 18보다 작을 경우에만 실행됩니다.

distance1과 distance2 모두가 7보다 크고 18보다 작을 경우에만 조건문을 실행하도록 하기 위해서는 조건문의 수정이 필요합니다.

 

라고 수박잼님께서 답변을 해주셧는데 and 문으로 값이 모두 1 1일때만 참인 and문을 만들고 싶은데 어떻게 수정하면 되는지 알려주실수 있으신가요???ㅜㅜㅜ

프로필사진

Klant 2016-05-02 16:29:14

안녕하세요! 

수박쨈님이 말씀하신 것은 

distance1<7&&distance2<7로 수정을 말씀하신 것 같습니다. 

프로필사진

수박쨈 2016-05-02 16:30:44

if (distance1&&distance2 < 7) 이 조건은

if(distance1 < 7 && distance2 <7)로 바꾸면 되고

if (7 < distance1&&distance2 < 18) 이 조건문은

if(distance1 > 7 && distance1 < 18 && distance2 > 7 && distance2 < 18) 이렇게 바꾸면 될거 같네요.

프로필사진

김종근 2016-05-26 01:16:35

좋은 정보 감사합니다.

이전글   |    오렌지 보드 BLE 관련 문의 2016-05-02
다음글   |    OLED에 대하여 질문이 있습니다! (아두이노)... 2016-05-04