코딩 급한 질문 있습니다
조회수 158회
#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 메소드가 없다고 말해주고 있네요.
앞서 발생한 문제 때문에 연이어서 발생한 문제일 가능성이 있습니다. 우선 앞의 문제부터 해결 해보시면 좋을 것 같습니다.
댓글 입력