Датчик температуры DHT11 и TM1637
- Войдите на сайт для отправки комментариев
Вс, 19/01/2020 - 14:24
Почему не работает код
Moderator : пожалуйста, вставьте код правильно (возможно, новым сообщением в тему),
ВЫДАЕТ ОШИБКУ:
exit status 1
'class DHT' has no member named 'temperature'
И ВОТ ЭТО:
C:\Users\User\Documents\DT11\DT11.ino: In function 'void loop()':
DT11:29:18: error: 'class DHT' has no member named 'temperature'
int temp = dht.temperature;
^
DT11:30:22: error: 'class DHT' has no member named 'humidity'
int humidity = dht.humidity;
^
DT11:38:18: error: unable to find numeric literal operator 'operator""digitoneT'
tm1637.display(1.digitoneT);
^
DT11:39:18: error: unable to find numeric literal operator 'operator""digitwoT'
tm1637.display(2.digitwoT);
^
DT11:40:22: error: no matching function for call to 'TM1637::display(double)'
tm1637.display(3.12);
^
In file included from C:\Users\User\Documents\DT11\DT11.ino:3:0:
C:\Program Files (x86)\Arduino\libraries\TM1637/TM1637.h:51:10: note: candidate: void TM1637::display(int8_t*)
void display(int8_t DispData[]);
^
C:\Program Files (x86)\Arduino\libraries\TM1637/TM1637.h:51:10: note: no known conversion for argument 1 from 'double' to 'int8_t* {aka signed char*}'
C:\Program Files (x86)\Arduino\libraries\TM1637/TM1637.h:52:10: note: candidate: void TM1637::display(uint8_t, int8_t)
void display(uint8_t BitAddr,int8_t DispData);
^
C:\Program Files (x86)\Arduino\libraries\TM1637/TM1637.h:52:10: note: candidate expects 2 arguments, 1 provided
DT11:44:18: error: unable to find numeric literal operator 'operator""digitoneH'
tm1637.display(1.digitoneH);
^
DT11:45:18: error: unable to find numeric literal operator 'operator""digitwoH'
tm1637.display(2.digitwoH);
^
DT11:46:22: error: no matching function for call to 'TM1637::display(double)'
tm1637.display(3.15);
^
In file included from C:\Users\User\Documents\DT11\DT11.ino:3:0:
C:\Program Files (x86)\Arduino\libraries\TM1637/TM1637.h:51:10: note: candidate: void TM1637::display(int8_t*)
void display(int8_t DispData[]);
^
C:\Program Files (x86)\Arduino\libraries\TM1637/TM1637.h:51:10: note: no known conversion for argument 1 from 'double' to 'int8_t* {aka signed char*}'
C:\Program Files (x86)\Arduino\libraries\TM1637/TM1637.h:52:10: note: candidate: void TM1637::display(uint8_t, int8_t)
void display(uint8_t BitAddr,int8_t DispData);
^
C:\Program Files (x86)\Arduino\libraries\TM1637/TM1637.h:52:10: note: candidate expects 2 arguments, 1 provided
Ответьте на вопрос: что именно вам непонятно в сообщении "class DHT' has no member named 'temperature'" ?
DHT переменную как правильно прописать, чтоб работало. Дело вроде в ней
Почему не работает код
Потому что вставлен через задницу. А как вставлен, значит так и написан. ИМХО.
Жесть. Хаотичный набор букв с множеством ошибок. Навскидку: ошибки в строках 29, 30, 38, 39, 40, 44, 45, 46. Исправляйте, смотрите, какие методы и члены классов доступны в используемых библиотеках, смотрите примеры к используемым библиотекам, ищите разницу. Не стоит вслепую тыкаться в надежде, что оно само как-то заработает - это не тот случай.
А что именно неправильно в строках: 29, 30. Переменная dht? Если да, то как ее записать правильно?
А что именно неправильно в строках: 29, 30. Переменная dht? Если да, то как ее записать правильно?
не переменная, а обращение к несуществующим членам класса. Давайте не будем гадать, а просто возьмём - и посмотрим на документацию и примеры к библиотеке, ок?