DFRobot DFR0018
тел. +7(499)347-04-82
Описание DFRobot DFR0018
Конечно! Вот подробное описание, технические характеристики и информация о совместимости для датчика температуры DFRobot DFR0018.
Описание
DFRobot DFR0018 — это аналоговый датчик температуры на основе терморезистора NTC (Negative Temperature Coefficient). Он является частью линейки сенсоров DFRobot для платформ Arduino и других микроконтроллеров.
- Принцип работы: Датчик использует NTC-термистор, сопротивление которого уменьшается с ростом температуры. Датчик подключен по схеме делителя напряжения, поэтому изменение температуры приводит к изменению выходного аналогового напряжения.
- Назначение: Предназначен для измерения температуры окружающей среды в учебных проектах, системах мониторинга климата, умных домах, теплицах и других DIY-проектах.
- Ключевые особенности: Простота использования (всего три провода: питание, земля, сигнал), низкая стоимость, аналоговый выход, не требующий сложных протоколов, и широкий диапазон измерений.
Технические характеристики
| Параметр | Значение / Описание | | :--- | :--- | | Тип датчика | Терморезистор NTC (10K) | | Выходной сигнал | Аналоговый (0-5В). Напряжение линейно зависит от температуры. | | Диапазон измерений | -55°C до +125°C (рабочий диапазон, практическая точность ниже в экстремумах) | | Рабочее напряжение | 3.3В - 5В | | Потребляемый ток | < 1 мА | | Точность | ±0.5°C (в диапазоне 0°C до +50°C). Зависит от качества калибровки и АЦП контроллера. | | Разрешение | Зависит от разрядности АЦП микроконтроллера (например, для Arduino UNO с 10-битным АЦП ~0.25°C на шаг при правильном расчете). | | Интерфейс подключения | 3-пиновый разъем (GND, VCC, SIGNAL) или провода "папа-папа". | | Длина кабеля | Около 20-25 см. | | Габариты (датчик) | Цилиндр диаметром ~4-5 мм, длина ~15 мм (металлический зонд). | | Габариты (плата) | Плата преобразователя: ~20 x 15 мм. |
Важное примечание: Для получения точных значений температуры в градусах Цельсия необходимо преобразовывать считанное аналоговое значение с помощью формулы или библиотеки, учитывающей характеристики NTC-термистора (обычно используется уравнение Стейнхарта-Харта или его упрощенная версия с коэффициентами B).
Парт-номера и аналоги
Прямые аналоги и номера компонентов от DFRobot и других производителей.
| Производитель | Парт-номер | Примечание | | :--- | :--- | :--- | | DFRobot (основной) | DFR0018 | Оригинальный номер. Часто в магазинах называется "Analog Temperature Sensor". | | DFRobot | SEN0004 | Устаревший или альтернативный номер в некоторых каталогах. | | Adafruit | 372 | Аналог от Adafruit (также NTC 10K термистор с платой). | | Термистор (компонент) | NTC 10K, B=3950 | Ключевые параметры самого сенсорного элемента (B-коэффициент может незначительно отличаться). |
Совместимые модели и платформы
Датчик совместим с любой платой, имеющей аналоговый вход (АЦП) и способной работать с напряжением 3.3В или 5В.
Микроконтроллерные платы:
- Arduino: Все модели (Uno, Leonardo, Mega, Nano, Micro и т.д.).
- ESP8266: NodeMCU, Wemos D1 Mini (используется 3.3В, показания могут требовать коррекции).
- ESP32: Все модели (имеют встроенный АЦП).
- Raspberry Pi Pico (RP2040): Имеет АЦП.
- BBC micro:bit: Требуется дополнительный адаптер для аналоговых пинов.
- Платы на STM32, AVR, PIC.
Одноплатные компьютеры:
- Raspberry Pi: Не имеет встроенных аналоговых входов. Требуется внешний АЦП-преобразователь (например, MCP3008) или использование специальных HAT с аналоговыми входами.
Совместимые среды разработки и библиотеки:
- Arduino IDE: Напрямую через
analogRead()с последующим расчетом по формуле. Существуют сторонние библиотеки для NTC. - PlatformIO, MicroPython, CircuitPython: Могут быть использованы с соответствующими библиотеками для работы с АЦП и расчетами.
- Библиотеки: Прямой библиотеки от DFRobot для этой модели часто нет, но в сети множество готовых скетчей и универсальных библиотек для NTC 10K (например,
thermistorилиNTC_Thermistor).
Краткий пример кода для Arduino
// Параметры для NTC 10K B=3950
#define NTC_PIN A0 // Пин подключения сигнала
#define NOMINAL_RES 10000 // Сопротивление при 25°C
#define NOMINAL_TEMP 25 // Температура, при которой R = NOMINAL_RES
#define B_COEFF 3950 // B-коэффициент термистора
#define SERIES_RES 10000 // Значение последовательного резистора (на плате)
void setup() {
Serial.begin(9600);
}
void loop() {
int adcValue = analogRead(NTC_PIN);
float voltage = adcValue * (5.0 / 1023.0); // Для Arduino UNO (5В, 10 бит)
float resistance = SERIES_RES * (5.0 / voltage - 1.0);
// Упрощенное уравнение Стейнхарта-Харта
float steinhart = resistance / NOMINAL_RES; // (R/Ro)
steinhart = log(steinhart); // ln(R/Ro)
steinhart /= B_COEFF; // 1/B * ln(R/Ro)
steinhart += 1.0 / (NOMINAL_TEMP + 273.15); // + (1/To)
steinhart = 1.0 / steinhart; // Инвертируем
float temperature = steinhart - 273.15; // Конвертируем в Цельсии
Serial.print("Температура: ");
Serial.print(temperature);
Serial.println(" °C");
delay(1000);
}