4h4-auto.ru

4х4 Авто
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Термистор и Arduino

Термистор и Arduino

Термистор (терморезистор) — это резистор, который меняет свое сопротивление с изменением температуры.

Технически все резисторы являются термисторами, так как их сопротивление меняется в зависимости от температуры. Но эти изменения очень незначительны и измерить их очень сложно. Термисторы изготавливаются таким образом, чтобы сопротивление изменялось на значительную величину в зависимости от температуры. Около 100 Ом и даже больше при изменении температуры на 1 градус по Цельсию!

Существуют два вида термисторов — с NTC (negative temperature coefficient — отрицательный температурный коэффициент) и с PTC (positive temperature coefficient — положительный температурный коэффициент). В большинстве случаев для измерения температуры используются NTC сенсоры. PTC часто используются в качестве предохранителей — с увеличением температуры растет сопротивление, это приводит к тому, что через них проходит большая сила тока, они нагреваются и срабатывают как предохранители. Достаточно удобно для предохранительных цепей!

Если сравнивать термисторы с аналоговыми датчиками температуры типа LM35, TMP36, цифровыми вроде DS18B20, или термопарами, основными преимуществами термисторов можно назвать:

  • Во первых, они гораздо дешевле чем все перечисленные выше датчики температуры!
  • Их гораздо проще использовать в условиях повышенной влажности, так как это просто резистор.
  • Термисторы работают с любым напряжением (цифровые датчики требуют 3 или 5 В питания логики).
  • Если сравнить термистор и термопару, то первым не нужен усилитель сигнала, чтобы считывать данные. Соответственно, вы можете использовать практически любой микроконтроллер.
  • Соотношение точность показаний/цена — потрясающие. Например, термистор 10 КОм 1% может производить измерения температуры с точностью ±0.25°C! (При условии, что у вас подходящий аналогово-цифровой преобразователь на микроконтроллере).
  • Их практически невозможно поломать или повредить.

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

Тем не менее простота исполнения термисторов дает им огромный бонус и они безумно популярны для базовых задач контроля температуры. Например, вы хотите, чтобы автоматически включился кондиционер, если в помещении стало слишком жарко. Для этого вы можете использовать цифровой датчик температуры, Arduino, и реле. А можете использовать и термистор, который подключен к базе транзистора. В результате, с повышением температуры, сопротивление падает, на транзистор подается все больше тока, пока он не включится.

Технические характеристики

Ниже приведены технические характеристики термисторов, которые чаще всего используются в DIY проектах на Arduino:

  • Сопротивление при 25 °C: 10K ±1%.
  • B25/50: 3950 ±1%.
  • Диапазон измеряемых температур от -55°C до 125°C.
  • Диаметр: 3.5 мм / 0.13 дюйма.
  • Длина: 18 дюймов / 45 см. .

Обратите внимание на то, что сам термистор может измерять температуру до 125° C, но сами контакты порой рассчитаны на меньшую температуру. То есть, термистор не стоит использовать для контроля температуры слишком горячих жидкостей.

Тестируем термистор

Так как термисторы — по своей сути — резисторы , проверить их не составит труда. Достаточно измерить сопротивление с помощью мультиметра:

Тестируем термистор

При комнатной температуре показания должны составить около 10 КОм. Например, показания при 30°C — 86°F, составляют около 8 КОм.

Подключение термистора к Arduino

Термисторы подключаются к Arduino очень просто. Достаточно использовать монтажную плату, как это показано на рисунке ниже. Так как сопротивление термистора достаточно высокое (около 10 КОм), сопротивление проводников практически не повлияет на результаты измерений.

Подключение термистора к Arduino

Методика считывания аналогового напряжения

Для того, чтобы определить температуру, мы должны измерить сопротивление. При этом на Arduino нет встроенного измерителя сопротивления. Но зато есть возможность считать напряжение с помощью аналогово-цифрового конвертера. Так что нам надо преобразовать сопротивление в напряжение. Для этого мы последовательно добавим в схему подключения еще один резистор. Теперь, когда вы будете мерять напряжение по центру, с изменением сопротивления, будет меняться и напряжение.

Читайте так же:
Карбюратор заз 968 регулировка к 133

Скажем, мы используем резистор с постоянным номиналом 10K и переменный резистор, который называется R. При этом напряжение на выходе (Vo), которое мы будем передавать Arduino, будет равно:

Vo = R / (R + 10K) * Vcc,

где Vcc — это напряжение источника питания (3.3 В или 5 В)

Теперь мы хотим подключить все это к Arduino. Не забывайте, что когда вы измеряете напряжение (Vi) с использованием АЦП на Arduino, вы получите числовое значение.

ADC value = Vi * 1023 / Vcc

Теперь мы совмещаем два напряжения (Vo = Vi) и получаем:

ADC value = R / (R + 10K) * Vcc * 1023 / Vcc

Что самое прекрасное, Vcc сокращается!

ADC value = R / (R + 10K) * 1023

То есть вам неважно, какое напряжение питания вы используете!

В конце мы все же хотим получить R (сопротивление). Для этого надо использовать еще одно преобразование, в котором R переносятся в одну сторону:

R = 10K / (1023/ADC — 1)

Отлично. Давайте попробуем, что из этого всего выйдет. Подключите термистор к Arduino как это показано на рисунке ниже:

Методика считывания аналогового напряжения

Подключите один контакт резистора на 10 КОм к контакту 5 В, второй контакт резистора 10 КОм 1% — к одному контакту термистора. Второй контакт термистора подключается к земле. ‘Центр’ двух резисторов подключите к контакту Analog 0 на Arduino.

Теперь запустите следующий скетч для Arduino:

// значение ‘другого’ резистора

#define SERIESRESISTOR 10000

// к какому пину подключается термистор

#define THERMISTORPIN A0

// преобразуем полученные значения в сопротивление

reading = (1023 / reading) — 1;

reading = SERIESRESISTOR / reading;

В результате вы должны получить значения, которые соответствуют измеренным с помощью мультиметра.

Более точные измерения

При проведении измерений аналоговых значений, особенно с ‘шумными’ платами вроде Arduino, можно использовать два метода для улучшения качества показаний. Первый — использовать пин 3.3 В для аналогового сигнала и второй — собрать небольшой массив экспериментальных значений и усреднить их.

Первое. Питание 5 В от Arduino подается напрямую от USB вашего персонального компьютера. В результате сигнал гораздо более зашумленный, чем питание от контакта 3.3 В (этот контакт предусматривает предварительную обработку через интегрированный в плату регулятор). То есть просто подключите 3.3 к контакту AREF и используйте его в качестве источника напряжения VCC.

Второе. Снять несколько показаний для того, чтобы получить усредненное значение также значительно улучшит показания, так как будут учтены внешние шумы. Для усреднения рекомендуется брать не меньше 5 значений.

В результате схема подключения и новый скетч для Arduino будут имеет следующий вид:

Подключение термистора к Arduino

В этом скетче учтены оба «апгрейда». В результате вы сможете подучить более точные показания температуры.

// к какому аналоговому контакту мы подключены

#define THERMISTORPIN A0

// сколько показаний берется для определения среднего значения

// чем больше значений, тем дольше проводится калибровка,

// но и показания будут более точными

#define NUMSAMPLES 5

// емкость второго резистора в цепи

#define SERIESRESISTOR 10000

// подключите AREF к 3.3 В и используйте именно этот контакт для питания,

// так как он не так сильно «шумит»

// формируем вектор из N значений с небольшой задержкой между считыванием данных

Программирование DS1620 — Цифровой термостат

После долгих поисков было подобрано оптимальное решение: это две модели цифровых автономных термостатов DS1620 и DS1821. Особенностью этих микросхем является что каждая из них является однокристальной вычислительной машиной в которой установлен точный сенсор температуры и схема съема и преобразования его показаний, после программирования необходимых значений температуры в энергонезависимые регистры эти микросхемы будут выдавать на выход логический уровень соответствующий состоянию термостата. 1620 имеет два выхода, точность установки регистров высокой и низкой температуры с точностью до 0,5 градуса цельсия, причем в случае снижения температуры ниже порога установленного в регистре низкой температуры на выводе TLow (включение нагревателя) появляется логическая единица, вывод Thigh зависим от регистра верхней температуры (включение вентиляции) При покупке микросхемы могут быть запрограммированы на различные значения температур (зависит от партии) поэтому для конкретного применения требуется их запрограммировать. В качестве программатора я решил воспользоваться контроллером ардуино:

Читайте так же:
Устройство для синхронизации двигателей

// DS1620 termostat setup
// — by kozin alexey (hobby.msdatabase.ru)
// — 13 Feb 2011

// DS1620 to Arduino Connections

#define DQ 2 //pin 1 of ds1620
#define CLK 3 //pin 2 of ds1620
#define RST 4 //pin 3 of ds1620
//pin 4 of ds1620 0v
//pin 8 of ds1620 +5v

#define RD_TEMP 0xAA // read temperature register
#define WRITE_TH 0x01 // write high temperature register
#define WRITE_TL 0x02 // write low temperature register
#define READ_TH 0xA1 // read high temperature register
#define READ_TL 0xA2 // read low temperature register
#define READ_CNTR 0xA0 // read counter register
#define READ_SLOPE 0xA9 // read slope register
#define START_CNV 0xEE // start temperature conversion
#define STOP_CNV 0x22 // stop temperature conversion
#define WRITE_CFG 0x0C // write configuration register
#define READ_CFG 0xAC // read configuration register

// DS1620 configuration bits

#define DONE B10000000 // conversion is done
#define THF B01000000 // high temp flag
#define TLF B00100000 // low temp flag
#define NVB B00010000 // non-volatile memory is busy
#define CPU B00000010 // 1 = use with CPU
#define ONE_SHOT B00000001 // 1 = one conversion; 0 = continuous conversion

void setup()
<
int ts = 0;
int tenths = 0;

pinMode(DQ, INPUT); // start safely (this pin is bi-directional)
pinMode(CLK, OUTPUT);
digitalWrite(CLK, HIGH); // put clock in idle state
pinMode(RST, OUTPUT);
digitalWrite(RST, LOW); // de-activate DS1620

// setup for continuous conversion

Serial.begin(9600);
delay(5);
ts = ds1620_read_register (READ_CNTR, 16);
Serial.print(«counter register is «); Serial.println(ts);
ts = ds1620_read_register (READ_SLOPE, 16);
Serial.print(«Slope register is «); Serial.println(ts);
ts = ds1620_read_register (READ_CFG, 8);
Serial.print(«config register is «); Serial.println(ts);
ts = ds1620_read_register (READ_TH, 8);
Serial.print(«TH register is «); Serial.println(ts);
ts = ds1620_read_register (READ_TL, 8);
Serial.print(«TL register is «); Serial.println(ts);

ds1620_write_register(WRITE_CFG, CPU, 8); // enable cpu mode — disable termostat

digitalWrite(RST, HIGH);
delayMicroseconds(1);
ds1620Out(START_CNV, 8);
digitalWrite(RST, LOW);
delay(1000);
ts = ds1620_read_register (RD_TEMP, 9);
Serial.print(«Temperature register is «); Serial.println(ts);

if (ts > 0xFF) // if negative
ts |= 0xFF00; // extend sign bits

tenths = (ts*5) % 10;

Serial.print(«Temperature Celsium is «); Serial.print(ts/2);Serial.print(«.»);Serial.println(tenths);

ds1620_write_register(WRITE_TH, 44, 16); // set th to 22 C
ds1620_write_register(WRITE_TL, 6, 16); // set tl to 3 C

ds1620_write_register(WRITE_CFG, 0, 8); // disable cpu mode — enable termostat
digitalWrite(CLK, LOW); // set clock Low to termostat mode

// Send value to DS1620

void ds1620Out(unsigned int outVal, int count)
<
pinMode(DQ, OUTPUT); // set DQ for write
for (int idx = 0; idx < count; idx++) <
if (outVal & 0x0001 == 1) // test LSB
digitalWrite(DQ, HIGH);
else
digitalWrite(DQ, LOW);
delayMicroseconds(1); // let bit settle
digitalWrite(CLK, LOW);
delayMicroseconds(1); // let clock settle
digitalWrite(CLK, HIGH); // clock it
outVal >>= 1; // get next bit
>
pinMode(DQ, INPUT); // make DQ safe
>

// Returns value from DS1620

int ds1620In(int count)
<
unsigned int inVal = 0;

Читайте так же:
Полная регулировка карбюратора к151в

pinMode(DQ, INPUT); // set DQ for read

for (int idx = 0; idx < count; idx++) <
inVal >>= 1; // prep for new bit
digitalWrite(CLK, LOW);
delayMicroseconds(1);
if (digitalRead(DQ) == HIGH)
inVal |= 0x8000; // set bit if DQ high
digitalWrite(CLK, HIGH);
delayMicroseconds(1);
>
inVal >>= (16-count); // correct bits for count
return int(inVal);
>

int ds1620_read_register( unsigned int CMD, int outbitcount)
<
unsigned int inVal = 0;
digitalWrite(RST, HIGH);
delayMicroseconds(1);
ds1620Out(CMD, 8);
delayMicroseconds(1);
inVal = ds1620In(outbitcount);
digitalWrite(RST, LOW);
delay(15);
return int(inVal);
>

void ds1620_write_register(unsigned int CMD, unsigned int rval, int outbitcount)
<
digitalWrite(RST, HIGH);
delayMicroseconds(1);
ds1620Out(CMD, 8);
ds1620Out(rval, outbitcount);
digitalWrite(RST, LOW);
delay(15);
>

на этом программирование датчика завершено, останется сделать несложную схему управления реле.

Обратите внимание:
При подключении нагрузки к микросхеме DS1620 следует учесть, что любая токовая нагрузка (например светодиод) подключенная к выходам без усилителя приводит к разогреву корпуса микросхемы и как следствие — неточные показания

Создаем беспроводной термометр на Arduino

Узнайте, как использовать RF модуль 433 МГц совместно с ATMega328P-PU. В данной статье мы соберем схему из датчика DHT11 и радиочастотного передатчика. А также соберем приемное устройство с радиоприемником 433 МГц и LCD дисплеем.

Что нам потребуется

  • компьютер с установленной Arduino IDE (я использую версию 1.6.5);
  • библиотека VirtualWire (ссылка ниже); ;
  • ATMega328P;
  • программатор AVR MKII ISP; ; ; ; ; ;
  • компоненты из перечня элементов, приведенного ниже.

Введение

В данной статье я покажу вам, как собрать устройство, которое измеряет температуру и относительную влажность воздуха и посылает измеренные значения с помощью стандартного радиочастотного модуля 433 МГц. Датчик температуры и влажности, используемый в устройстве, – это DHT11.

Существует множество способов передачи небольшого объема данных с помощью Arduino или контроллеров ATMega. Один из них использует уже готовую библиотеку, подобную RCSwitch, Radiohead или VirtualWire. Кроме того, можно отправить необработанные данные с помощью встроенного в микроконтроллер модуля UART. Но использовать встроенный модуль UART не рекомендуется, так как приемник будет собирать и все помехи, и микроконтроллер будет работать не так, как предполагалось. В данной статье для передачи и приема данных я использую библиотеку VirtualWire. Эта библиотека работает с Arduino IDE 1.6.2 и 1.6.5.

Модуль передатчика 433 МГц, когда не передает данные, всё равно излучает радиочастотные колебания и передает шум. Он также может создавать помехи другим радиочастотным устройствам. Чтобы не допустить этого, я включаю его, когда необходимо передать данные, и выключаю его, когда передача закончена.

Аппаратная часть

Нам необходимы две структурные схемы. Одна для передающего устройства, вторая для приемного.

Передатчик

Передающая часть беспроводного термометра

  • способ прошивки микроконтроллера → ISP;
  • датчик для измерения температуры и влажности → DHT11;
  • микроконтроллер для обработки данных → ATMega32p;
  • способ беспроводной передачи данных → радиочастотный модуль 433 МГц.

Приемник

Приемная часть беспроводного термометра на Arduino

  • способ приема радиосигнала → радиочастотный модуль 433 МГц;
  • способ обработки принятых данных → Arduino Mega;
  • способ отображения температуры и влажности → 16×2 LCD.

Принципиальные схемы

Передатчик

Передающая часть беспроводного термометра на ATmega328 и Arduino Передающая часть беспроводного термометра на ATMega328p
(для увеличения масштаба можно кликнуть по картинке правой кнопкой мыши и выбрать «Открыть ссылку/изображение в новой вкладке/новом окне»)

В данном примере я не буду выводить неиспользуемые выводы микроконтроллера на внешние контакты термометра, после чего их можно было бы использовать для дальнейшего усовершенствования устройства. Здесь мы рассматриваем лишь идею для устройства и соберем его только на макетной плате.

Приемник

Приемная часть беспроводного термометра на Arduino Mega Приемная часть беспроводного термометра на Arduino Mega
(для увеличения масштаба можно кликнуть по картинке правой кнопкой мыши и выбрать «Открыть ссылку/изображение в новой вкладке/новом окне»)

Пожалуйста, обратите внимание, что приемник построен на базе платы Arduino Mega, которая не изображена на схеме. Для подключения платы Arduino Mega соедините с ней радиочастотный модуль и LCD дисплей согласно метка на схеме.

Читайте так же:
Регулировка давления в акпп f4a42

Перечень элементов

Передатчик

Перечень элементов передающей части беспроводного термометра на ATMega328p и Arduino Mega Перечень элементов передающей части беспроводного термометра на ATMega328p
(для увеличения масштаба можно кликнуть по картинке правой кнопкой мыши и выбрать «Открыть ссылку/изображение в новой вкладке/новом окне»)

Приемник

Перечень элементов приемной части беспроводного термометра на Arduino Mega Перечень элементов приемной части беспроводного термометра на Arduino Mega
(для увеличения масштаба можно кликнуть по картинке правой кнопкой мыши и выбрать «Открыть ссылку/изображение в новой вкладке/новом окне»)

Программа

Программа передатчика

Сперва рассмотрим программу передающей части:

Для передачи влажности и температуры в одном сообщении я соединяю их вместе. Сначала данные считываются в переменную как целые числа, потом целые числа преобразовываются в массив символов, а затем они соединяются друг с другом. На приемной стороне данные будут разделены на отдельные символы. Делая это, я ограничиваю себя двумя цифрами градусов. Если датчик находится в среде с температурой менее 10°C, я буду получать на дисплее символы мусора. Например, если температура составляет 20°C, а влажность – 45%, то будет передаваться сообщение 2045, и всё хорошо. Если температура равна 9°C, а влажность – 78%, то передастся сообщение 978x, где «x» – случайный символ. Поэтому, если вы будете собирать данный беспроводной термометр, я советую вам изменить программу для передачи правильных данных, когда температура будет меньше 10°C.

Программа приемника

Интересный способ использования библиотеки LiquidCrystal – это создание пользовательских символов. С помощью createChar я создал символ градусов. Таким же способом вы можете создать и свои собственные символы. Чтобы создать пользовательский символ или значок, вам необходимо объявить его, как массив из восьми байт, и «нарисовать», какие пиксели будут включены (1 – включен, 0 – выключен).

В функции setup() вы создаете его с помощью createChar . createChar принимает два аргумента: номер позиции для хранения символа и массив байт, в котором определено, какие пиксели будут отображаться. В нашем случае это lcd.createChar(1, degreesymbol) . Затем символ выводится на LCD с помощью функции lcd.write .

Заключение

В данной статье я использовал датчик температуры и влажности DHT11. Температура и влажность были преобразованы в массив символов, а затем переданы с помощью передатчика 433 МГц. На приемной стороне массив символов был разделен на пары и выведен на LCD. Для получения символа градусов я использовал функцию createChar библиотеки LiquidCrystal.

Загрузки

    (библиотека для Arduino для организации связи через радиомодули с использованием амплитудной манипуляции). .

Фото и видео

Передатчик

Передающая часть беспроводного термометра на ATMega328p и Arduino Передающая часть беспроводного термометра на ATMega328p

Приемник

Приемная часть беспроводного термометра на Arduino Приемная часть беспроводного термометра на Arduino

8 совместимых с Arduino датчиков температуры для ваших электронных проектов

Чтение значений температуры с помощью Arduino является очень полезной задачей. Существует большое разнообразие датчиков температуры с различными функциями, которые вы можете использовать в своих проектах.

В этой статье мы собрали 8 доступных датчиков температуры, совместимых с Arduino и другими платами разработки (такими как ESP32 или ESP8266).

1. DHT11

Датчик температуры и влажности DHT11

DHT11 это цифровой датчик температуры, который измеряет температуру и относительную влажность воздуха.

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

Ниже приведены наиболее важные технические характеристики датчика температуры DHT11:

  • Протокол связи: 1-Wire
  • Диапазон питания: от 3 до 5,5 В
  • Диапазон температур: от 0 до 50 ºC (+/- 2ºC)
  • Диапазон влажности: от 20 до 90% (+/- 5%)
  • Период выборки: 1 секунда
  • Библиотеки Arduino: Adafruit DHT Library, Adafruit Unified Sensor Library
Читайте так же:
Болты регулировки карбюратора бензопилы

2. DHT22

Датчик температуры и влажности DHT22

Датчик температуры DHT22 очень похож на DHT11. Он также измеряет температуру и влажность, и его распиновка такая же. Он немного дороже, но более точен и имеет более широкий диапазон измерения температуры и влажности.

Ниже приводим наиболее важные характеристики датчика температуры DHT22:

  • Протокол связи: 1-Wire
  • Диапазон питания : от 3 до 6 В
  • Диапазон температур: от -40 до 80 ºC (+/- 0,5ºC)
  • Диапазон влажности: от 0 до 100% (+/- 2%)
  • Период выборки: 2 секунды
  • Библиотеки Arduino: Adafruit DHT Library, Adafruit Unified Sensor Library

3. LM35DZ, LM335, LM34

Датчик температуры LM35DZ LM35

LM35DZ представляет собой линейный датчик температуры, который откалиброван непосредственно в градусах Цельсия. Аналоговый выход прямо пропорционален температуре в градусах Цельсия: 10 мВ на каждый градус Цельсия.

Этот датчик очень похож на LM335 (откалиброванный в Кельвинах) и LM34 (откалиброванный в градусах Фаренгейта).

Далее приведены наиболее важные характеристики датчика температуры LM35:

  • Протокол связи: аналоговый выход
  • Диапазон питания: от 4 до 30 В
  • Диапазон температур: от -55 до 150ºC
  • Точность: +/- 0,5ºC (при 25ºC)
  • Интерфейс с Arduino: analogRead ()

4. BMP180

Датчик атмосферного давления BMP180

Хотя BMP180 является датчиком атмосферного давления, он также может измерять температуру. Это очень удобно при создании проекта метеостанции.

Ниже приведены наиболее важные характеристики датчика BMP180, когда речь идет о показаниях температуры.

  • Протокол связи: I2C
  • Диапазон питания (для чипа): от 1,8 до 3,6 В
  • Диапазон питания (для модуля): от 3,3 до 5 В
  • Диапазон температур: от 0 до 65ºC
  • Точность: +/- 0,5ºC (при 25ºC)
  • Библиотеки Arduino: Adafruit BME085, Adafruit Unified Sensor Library

5. TMP36

Аналоговый датчик температуры TMP36

TMP36 — аналоговый датчик температуры. Он выводит аналоговое значение, пропорциональное температуре окружающей среды. Он очень похож на датчик температуры LM35.

Вот его основные характеристики:

  • Протокол связи: аналоговый выход
  • Диапазон питания: от 2,7 В до 5,5 В
  • Диапазон температур: от -40 ° C до + 125 ° C
  • Точность: +/- 1ºC (при 25ºC)
  • Интерфейс с Arduino: analogRead ()

6. LM75

Датчик температуры LM75

Датчик LM75 — еще один полезный датчик температуры. Он работает по шине I2C, то есть с Arduino этот датчик соединяется по линиям SDA и SCL.

Взгляните на следующую таблицу, где приведены сводные технические характеристики датчика LM75:

  • Протокол связи: I2C
  • Диапазон питания: от 3,0 до 5,5 В
  • Диапазон температур: от -55 до 125 ° C
  • Точность: +/- 2,0 ° C (в диапазоне от -55 до 125 ° C))
  • Библиотеки Arduino: Temperature_LM75_Derived

7. BME280

BME280 - барометрический датчик, измеряющий температуру и влажность.

BME280 является барометрическим датчиком, который также измеряет температуру и влажность. Он может обмениваться данными с микроконтроллером по шине I2C или SPI. Питание модуля BME280 составляет 3,3 В или 5 В.

В следующей таблице приведены сводные технические характеристики датчика BME280, когда речь идет о датчике температуры:

  • Протокол связи: I2C или SPI
  • Диапазон питания: от 1,7 до 3,6 В (для микросхемы) от 3,3 до 5 В для платы
  • Диапазон температур: от -40 до 85ºC
  • Точность: +/- 0,5ºC (при 25ºC)
  • Библиотеки Arduino: Adafruit BME280 library, Adafruit Unified Sensor Library

8. DS18B20

DS18B20 однопроводной цифровой датчик температуры

DS18B20 — цифровой дтчик температуры работающий по протоколу 1-Wire. Это означает, что для связи с Arduino требуется только одна линия данных (и GND).

Каждый датчик температуры DS18B20 имеет уникальный 64-битный серийный код. Это позволяет подключить несколько датчиков к одному проводу передачи данных. Таким образом, вы можете получать температуру от нескольких датчиков, используя всего один цифровой вывод Arduino.

Ниже приведены наиболее важные характеристики датчика температуры DS18B20:

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector