코딩 급한 질문 있습니다

조회수 466회
#include <DHT11.h>
#define DHTPIN A0
#define DHTTYPE DHT11
DHT11 dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin (9600);
  pinMode(8, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(A1, INPUT);

}

void loop() {
  delay(2000);
  int t = dht.readTemperature();
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.print(" C");
  if(t>=33.0) {
    analogWrite(5,255);
    analogWrite(6,0);
    digitalWrite(8,0);
  }
  else {
    digitalWrite(8,0);
    analogWrite(5,0);
    analogWrite(6,0);
  }
}

에서

아두이노:1.8.16 (Windows 10), 보드:"Arduino Uno"

sketch_may22a:4:26: error: expected primary-expression before ')' token

C:\Users\써니쁘니\Desktop\sketch_may22a\sketch_may22a.ino: In function 'void loop()':

sketch_may22a:17:15: error: 'class DHT11' has no member named 'readTemperature'

exit status 1

expected primary-expression before ')' token

이 리포트는 파일 -> 환경설정에 "컴파일중 자세한 출력보이기"를 활성화하여 더 많은 정보를 보이게 할 수 있습니다.

라고 오류코드가 뜨는데 어떻게 해결해야 할지 모르겠습니다

1 답변

  • sketch_may22a:4:26: error: expected primary-expression before ')' token

    sketch_may22a:4:26
    4번째 줄 26번째 글자 근처에서 문제가 발생했다는 것입니다. 4번째 줄을 보면 DHT11 dht(DHTPIN, DHTTYPE);라고 적혀있습니다.
    여기에서 26번째 글자는 ')'인데, 이 앞에 primary-expression이 필요하다고 말해주고 있습니다.

    아무래도 정확한 문제를 알려주지는 않는 것 같고 어떤 의미인지는 모르겠으나, 4번째 줄 문법이 틀린 모양입니다.

    C:\Users\써니쁘니\Desktop\sketch_may22a\sketch_may22a.ino: In function 'void loop()':

    void loop 함수에서 문제가 발생했다고 합니다

    sketch_may22a:17:15: error: 'class DHT11' has no member named 'readTemperature'

    sketch_may22a:17:15라고 적혀있죠?
    17번째 라인 15번째 글자를 보면

      int t = dht.readTemperature();
    

    에서 readTemperature의 첫 글자 r을 가리키고 있습니다. 여기에서 문제가 발생했다는 것인데, 다음 문구를 봅시다.

    'class DHT11' has no member named 'readTemperature'
    DHT11 클래스는 readTemperature라는 이름의 멤버가 없다고 말해주고 있네요

    int t = dht.readTemperature(); 이 부분이 문제가 된 겁니다.

    dht에는 readTemperature 메소드가 없다고 말해주고 있네요.
    앞서 발생한 문제 때문에 연이어서 발생한 문제일 가능성이 있습니다. 우선 앞의 문제부터 해결 해보시면 좋을 것 같습니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)