Укажите на ошибку новичку. [дискретный вывод данных]

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Считываю данные с DHT11 (база UNO r3), есть необходимость передать их по COM3.

Попробовал сделать код по аналогии с увиденными:

#include <SoftwareSerial.h>

#include "DHT.h"

#define DHTPIN 6    

#define DHTTYPE DHT11   // DHT 11 

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600); 
  Serial.println("DHT11 test!");

  dht.begin();
}

void loop() {
  
  float h = dht.readHumidity();
  float t = dht.readTemperature();


  if (isnan(t) || isnan(h)) {
    Serial.println("Failed to read from DHT");
  } else {
    Serial.print("Humidity: "); 
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: "); 
    Serial.print(t);
    Serial.println(" *C");
    Serial.write(h);
    Serial.write(t);
    delay(2000);
  }
Но компиляция не проходит. Пожалуста укажите на ошибку.
kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

В 16-й строке, вот только не знаю, сначала или с конца :(

В ArduinoIDE в нижней части есть окно с черным фоном в котором компилятор выводит список ошибок, он показывает также и номер строки. Задавая вопрос, Вы смотрите на экран, однако мы Ваш экран не видим и не знаем в какой именно строке ошибка.

Самое тупое - скопировать текст из окна с сообщениями компилятора и приложить к сообщению.

Еще, на форуме принято исходный текст программы помещать в специальный компонент в сообщении (когда пишите сообщение, в верху-слева есть иконка "{} code"), иначе помогать Вам далеко не каждый захочет.

Конечно, возможно у кого то есть библиотеки DHT, а у меня её нет.

Удачи!

Как говорил наш хороший преподаватель: инженер - это не тот, кто много знает, инженер - это человек, который быстро может найти нужную информацию.

 

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013
sketch_feb12a.ino: In function 'void loop()':
sketch_feb12a:33: error: call of overloaded 'write(float&)' is ambiguous
C:\Users\Евгений\Desktop\arduino-1.0.2\hardware\arduino\cores\arduino/HardwareSerial.h:62: note: candidates are: virtual size_t HardwareSerial::write(uint8_t)
C:\Users\Евгений\Desktop\arduino-1.0.2\hardware\arduino\cores\arduino/HardwareSerial.h:63: note:                 size_t HardwareSerial::write(long unsigned int)
C:\Users\Евгений\Desktop\arduino-1.0.2\hardware\arduino\cores\arduino/HardwareSerial.h:64: note:                 size_t HardwareSerial::write(long int)
C:\Users\Евгений\Desktop\arduino-1.0.2\hardware\arduino\cores\arduino/HardwareSerial.h:65: note:                 size_t HardwareSerial::write(unsigned int)
C:\Users\Евгений\Desktop\arduino-1.0.2\hardware\arduino\cores\arduino/HardwareSerial.h:66: note:                 size_t HardwareSerial::write(int)
sketch_feb12a:34: error: call of overloaded 'write(float&)' is ambiguous
C:\Users\Евгений\Desktop\arduino-1.0.2\hardware\arduino\cores\arduino/HardwareSerial.h:62: note: candidates are: virtual size_t HardwareSerial::write(uint8_t)
C:\Users\Евгений\Desktop\arduino-1.0.2\hardware\arduino\cores\arduino/HardwareSerial.h:63: note:                 size_t HardwareSerial::write(long unsigned int)
C:\Users\Евгений\Desktop\arduino-1.0.2\hardware\arduino\cores\arduino/HardwareSerial.h:64: note:                 size_t HardwareSerial::write(long int)
C:\Users\Евгений\Desktop\arduino-1.0.2\hardware\arduino\cores\arduino/HardwareSerial.h:65: note:                 size_t HardwareSerial::write(unsigned int)
C:\Users\Евгений\Desktop\arduino-1.0.2\hardware\arduino\cores\arduino/HardwareSerial.h:66: note:                 size_t HardwareSerial::write(int)

Вот список ошибок.

maksim
Offline
Зарегистрирован: 12.02.2012

Удалите строки 33 и 34. И вообще зачем они???
Читайте описание Serial и типов данных.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Поясню на всякий случай.

метод write расчитан на "прямой" вывод в порт и работает с байтами, float выводить не умеет

KirillBerezovski
Offline
Зарегистрирован: 20.03.2016

Добрый день!

Помогите пож-та разобраться.

Приобрел Ардуино UNO.

Все сделал по инструкции. Драйвер установил, программу для скетчей скачал. Порт нужный выбрал.

Скетч не загружается. Ошибок никаких программа не выдает. Просто пишет "загрузка..." и все.

В чем ошибка?