| Ваш IP: 3.239.7.207 | Online(28) - гости: 10, боты: 18 | Загрузка сервера: 3.54 ::::::::::::

CJMCU LM75 — модуль датчика температуры (Arduino)

Модуль CJMCU LM75 представляет собой цифровой датчик температуры на ИМС LM75A. Датчик температуры использует шину I2C, что дает возможность подключения одновременно до 8 температурных датчиков.

  • Диапазон температур:  -55°C … +125°C (±2°C)
  • Разрешение: 11 бит
  • Напряжение питания: 2.8 В … 5.5 В

Дополнительно в модуле датчика имеется цифровой выход OS который может менять свое логическое состояние в зависимости от 2-х программируемых температурных отметок. OS — это выход с открытым стоком, для нормальной работы выхода на плате модуля установлен подтягивающий резистор и светодиод сигнализирующий состояние выхода. Максимальный выходной ток выхода 10 мА.

Для установки адреса на шине отвечают выходы, A0, A1 и A2, перед подключением необходимо установить перемычки к VDD или GND.

Начальный адрес I2C 0x48, перемычки адреса позволяют менять три младших разряда адреса:

  • BIN 1001000 = 0x48 | A0 = 0, A1 = 0, A2 = 0
  • BIN 1001001 = 0x49 | A0 = 0, A1 = 0, A2 = 1
  • BIN 1001010 = 0x50 | A0 = 0, A1 = 1, A2 = 0
  • BIN 1001011 = 0x51 | A0 = 0, A1 = 1, A2 = 1
  • BIN 1001100 = 0x52 | A0 = 1, A1 = 0, A2 = 0
  • BIN 1001101 = 0x53 | A0 = 1, A1 = 0, A2 = 1
  • BIN 1001110 = 0x54 | A1 = 0, A1 = 0, A2 = 0
  • BIN 1001111 = 0x55 | A0 = 1, A1 = 0, A2 = 1

Управление LM75 осуществляется при помощи 4 регистров:

Регистр Conf определяет режим работы выхода OS, режим работы — запись 8 бит

Если бит OS_COMP_INT равен 0, то выход OS работает следующим образом:

Если температура поднимается выше значения в регистре Tos — выход OS переходит в активное состояние. Он останется в этом состоянии до тех пор, пока температура не упадет ниже значения в регистре Thyst. Это режим называется OS comparator mode.

Если бит OS_COMP_INT равен 1, то выход OS работает следующим образом:

Если температура поднимается выше значения в регистре Tos — выход переходит в активное состояние. И остается в нем до тех пор, пока не будет прочитано значение регистра Temp. Когда регистр температуры будет прочитан, OS  переключается в неактивное состояние и находится в нем до тех пор, пока температура не станет ниже значения в регистре Thyst. Тогда он опять переходит в активное состояние, пока не будет прочитано значение регистра Temp. В этом режиме можно контролировать уход температуры за пределы обозначенного регистрами Tos и Thyst диапазона. Нижней границей будет Thyst, а верхней — Tos. Это режим называется OS interrupt mode.

Бит SHUTDOWN отвечает за спящий режим. Если SHUTDOWN равен 0, то устройство активно. Если SHUTDOWN = 1, то устройство переходит в спящий режим. При этом ток потребления снижается до 100 мкА.

Бит OS_F_QUE определяет кол-во измерений температуры после которого будет опрос регистров Tos и Thyst.

Бит OS_POL меняет полярность выхода OS.

Регистр Temp содержит значение измеренной температуры, режим работы — чтение 16 бит

Чтение регистра Temp производится в два этапа, сначала читаем старший байт, потом младший. Так как регистр содержит информацию об температуре с разрешением 11 бит, то 5 младших битов младшего байта игнорируются.

При этом старший байт содержит целое число градусов, а младшие байт дробную часть градуса (1 бит = 0,125°C).

Регистры Tos и Thyst содержат температурные значения для срабатывания выхода OS, режим работы — запись 16 бит

Регистр Tos отвечает за верхнее значение диапазона регулировки температуры, регистр Thyst за нижнее значение.

Значение температуры записываемое в регистры Tos и Thyst кратно 0,5°С, при этом передается число int получаемое путем умножения на 2 числа float температуры регулировки. Например если температура регулировки 25,5°С, то передается число int 51.

Регистры Tos и Thyst 16 бит, но передаваемое значение температуры 9 бит. При этом старший байт содержит целое число градусов, а младший байт дробную часть градуса (1 бит = 0,5°C).

При отключении питания данные регистров Tos и Thyst не сохраняются (по умолчанию Tos = 80°C, Thyst = 75°С).

Ниже показан скетч демонстрирующий работу цифрового датчика температуры. В монитор порта выводится значение измеренной температуры и логическое состояние выхода OS. Состояние выхода контролируется входом D2 который подключен к OS.

#include <Wire.h>

float thyst_x = 29.0;
float tos_x   = 30.0;

void setup(){
  Wire.begin();
  Serial.begin(9600);
  pinMode(2, INPUT_PULLUP);
  /// CONF REG
  Wire.beginTransmission(0x48);
  Wire.write(0x01);// conf reg
  Wire.write(0b00000000);// data 00000000
  Wire.endTransmission();
  
  ///  Thyst
  Wire.beginTransmission(0x48);
  Wire.write(0x02);
  Wire.write((int(thyst_x*2)) >> 1);
  Wire.write((int(thyst_x*2) & 1) << 7);
  Wire.endTransmission();
  
   ///  Tos
  Wire.beginTransmission(0x48);
  Wire.write(0x03);
  Wire.write((int(tos_x*2)) >> 1);
  Wire.write((int(tos_x*2) & 1) << 7);
  Wire.endTransmission();
}

void loop(){ 
  Serial.println( lm75() );
  Serial.println(digitalRead(2));
  delay(1000);
}

float lm75(){
   /// TEMP REG
  Wire.beginTransmission(0x48);
  Wire.write(0x00); // temp reg
  Wire.endTransmission();
  Wire.requestFrom(0x48, 2);
  while(Wire.available() < 2); 
  float value = (((Wire.read() << 8) | Wire.read()) >> 5)*0.125 ; 
  return value;
  }

В скетче указаны значения температуры регулирования:

float thyst_x = 29.0;

float tos_x   = 30.0;

Выход OS работает следующим образом — при включении датчика при температуре ниже 29°С выход OS активен, на его выходе лог. 1. Как только температура достигает 30°С выход OS переходит в неактивное состояние, на его выходе лог. 0. При достижении температуры ниже 29°С, выход OS снова переходит в активное состояние.

Температуры повысилась до 30 и выше °С, выход OS = 0

Температуры понизилась до 29 и ниже °С, выход OS = 1

lm75A.pdf

Добавить комментарий

Войти с помощью: 

Случайные статьи

  • Бестрансформаторный источник питания 12 В / 15 мА

    Бестрансформаторный источник питания 12 В / 15 мА

    Некоторые схемы которые имеют небольшой ток потребления, поэтому для их работы можно использовать простые бестрансформаторные источники питания. В подобных источниках питания целесообразно использовать диодный мост, для увеличения величины выходного тока и меньшей пульсации выходного напряжения, что позволяет использовать конденсаторный фильтр меньшей емкости. Поэтому в предложенной схеме VD3 VD4 используются как …Подробнее...
  • Секундомер на ATtiny2313 (Arduino IDE)

    Секундомер на ATtiny2313 (Arduino IDE)

    На базе ATtiny2313 можно собрать простой секундомер. Информация выводится на дисплей LCD1602. Для управления секундомером используются три кнопки — СТАРТ, СТОП, СБРОС. Минимальный шаг секундомера 0,1 секунда, максимальное время измерения 24 часа. Кнопки СТОП и СТАРТ работают через прерывания IN0 и INT1 (пример — https://rcl-radio.ru/?p=94273), время тактируется при помощи таймера …Подробнее...
  • Часы-будильник на PIC16F877A

    Часы-будильник на PIC16F877A

    На рисунке показана схема часов с будильником. Часы отображают часы, минуты и секунды, будильник только часы и минуты. Дополнительной опцией часов является термометр, датчик температуры LM35 подключен к выводу 9 (AN6) микроконтроллера. После подачи питания на микроконтроллер необходимо установить правильное время, сделать это можно при помощи кнопки «Установка времени», при …Подробнее...
  • Автоматическая регулировка усиления

    Автоматическая регулировка усиления

    Автоматическая регулировка усиления  (АРУ) регулирует выходной сигнал в определенных пределах, при разном уровне входного сигнала.В результате устраняются различия громкости, которые могут раздражать, при смене каналов радиоприемника, телевизора… Полевой транзистор VT1 используется как переменное сопротивление. Это значение может  от бесконечности до 150Ω, тем самым регулируя усиление ОУ на TL072.Подробнее...
  • Регулируемый блок питания с цифровым управлением

    Схема регулируемого блока питания м цифровым управлением состоит из регулятора положительного напряжен7ия на KM317, КПОМ декадного счетчика CD4017, таймера NE555 и регулятора отрицательного напряжения на LM7912. Напряжение сети понижается трансформатором до напряжения +/-12В при токе 1А во вторичной обмотке, далее оно выпрямляется. С1-С5 емкостной фильтр постоянного напряжения. Светодиод LED1 сигнализирует …Подробнее...