아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
홀쭉한다향제비239
홀쭉한다향제비23920.10.16

아두이노 오류를 해결해주실 수 있을까요?

대학교에서 아두이노를 배우고 있습니다. 그래서 아직 코딩하는 것이 서툽니다. 잘 모르기도 하구요.

질문의 대부분이 프로그래머가 되는 방법 등 이런 쪽이라 질문을 해도 되는지는 잘 모르겠지만 답변을 해주셨으면 감사할 것 같습니다.

void setup() {

pinMode(2, INPUT_PULLUP);

pinMode(13, OUTPUT);

}

boolean sw=false;

void loop() {

while (!chtsw(2)){

if(sw) digitalWrite(13, LOW);

else digitalWrite(13, HIGH);

sw=!sw;

}

while (chtsw(2)); (오류표시:'chtsw' was not declared in this scope)

}


chtsw가 선언되지 않았다면서 오류가 뜨는데 어떤 것이 문제인 것일까요?

그리고 chtsw의 정확한 활용법도 알려주셨으면 좋겠습니다. sw가 스위치를 뜻하는 것은 압니다만.. 그 이상으로는 잘 모르겠습니다.

55글자 더 채워주세요.
답변의 개수
1개의 답변이 있어요!
  • 코드를 직접 작성하신건가요?

    오류의 상황은 chtsw 이 함수명이 무엇인지 모르겠다는 오류입니다.

    chtsw의 경우 사용자 정의 함수 같은데 함수 부분의 코드를 작성해 주셔야 됩니다. 즉, 적성하신 코드에서 일부 코드가 누락되었으며 맨 하단부에 chtsw 함수의 구현이 필요해 보입니다.

    예제를 따라해보는 중이시면 문맥상이나 함수명을 보면 채터링을 고려하여 코드를 작성하는 것으로 보여집니다.

    아래와 같이 보통 채터링을 고려해서 스위치 눌림을 감지후 0.3초동안 대기했다가 값을 반환하게 하는 코드를 작성하기도 합니다.

    예)

    boolean chtsw(byte dx) {

    boolean tsw=digitalRead(dx);

    while (tsw==digitalRead(dx));

    delay(300);

    return !tsw;

    }

    해당 상황이 아니시라면 오류를 해결하시려면 chtsw(2) 을 digitalRead(2)로 수정 하셔야 됩니다.