DHT11 Чтение слишком высоких значений
Когда я запускаю программу, синтаксических ошибок или чего-то еще нет. Все, что он делает, это дает мне значения температуры в сотнях. Я не знаю, есть ли способ превратить эти абстрактные и неожиданные значения в реальную температуру.
Изначально я ожидал, что он напечатает температуру около 20 градусов Цельсия, но вместо этого он напечатал около 600. Вот мой код:
#include <Adafruit_Sensor.h>
#include "DHT.h"
int sensor_pin = A0; // Аналоговый контактный датчик подключен к
int output_value ;
void setup(){
Serial.begin(9600);
delay(5000);//Задержка для загрузки системы
Serial.println("DHT11 Humidity & temperature Sensor\n\n");
delay(5000);//Подождите перед доступом к датчику
}//завершаем "setup()"
void loop(){
//Начало программы
output_value= analogRead(sensor_pin);
Serial.println("temperature = ");
Serial.println(output_value);
Serial.println("*C");
if (output_value < 60) {
Serial.println("Increase temperature by ");
Serial.println(output_value);
Serial.println("*C");
} else {
Serial.println("Temperature does not need to be increased.");
}
delay(5000);
}// завершаем цикл()
@Strawberry Milk, 👍-1
Обсуждение1 ответ
Лучший ответ:
DHT11 — это цифровое устройство. Вы не можете прочитать его с помощью analogRead()
.
Хотя температура является аналоговым значением, DHT11 взаимодействует с Arduino не так. Существует специальный цифровой протокол.
Похоже, что вы добавили в свой код заголовки для библиотеки Adafruit Sensor и библиотеки DHT, но на самом деле вы никогда не вызываете представленные в них функции.
В репозитории Adafruit библиотеки датчиков DHT есть пример: https://github.com/adafruit/DHT-sensor-library/ blob/master/examples/DHTtester/DHTtester.ino
Вы можете увидеть, как создать объект из класса DHT
и как вызывать его функции-члены, такие как readTemperature()
и т. д.
- Какова работа pulseIn?
- Сколько датчиков может поддерживать один модуль Arduino?
- Получение BPM из данного кода
- Как подключить более 10 датчиков к Arduino uno r3
- Как использовать два ультразвуковых датчика для управления двигателем 5 Вольт?
- Чтение датчика давления от 4 до 20 мА с использованием uno
- Что выбрать между датчиками температуры и влажности: AM230x или DHT22?
- SRF04 Ультразвуковой датчик - неточные показания
Моя вина, я не включил свой код. Вот:, @Strawberry Milk
Что я должен делать?, @Strawberry Milk
Я это изменил, но что мне теперь делать?, @Strawberry Milk
в любом случае, вернемся к вашей проблеме .......... вы не печатаете температуру ..... вы печатаете значение, которое относится к напряжению на входном контакте ....... напряжение изменяется от 0 В до 3,3 В (или от 0 В до 5 В в зависимости от модели Arduino)..... показание 0 равно 0 В, а максимальное показание равно 3,3 В (5 В) ...... вам следует обратиться к к паспорту датчика, чтобы определить, как показания связаны с температурой, @jsotola
Я даю dht11 3,3 В, но не знаю, как найти данные датчика., @Strawberry Milk
если бы у нас только был доступ к огромному количеству информации..... мы могли бы найти таблицы данных и учебные пособия.... хмммм.... интересно .......... лол.... ..... извини, я не мог с этим поделать, @jsotola
@StrawberryMilk, у тебя есть Arduino Uno? Я не знаю, какой у вас датчик температуры. Можно ссылку на него или фото?, @Jot