| Ваш IP: 44.197.197.23 | Online(35) - гости: 8, боты: 27 | Загрузка сервера: 0.64 ::::::::::::

MCP9800/1/2/3 — высокоточный цифровой датчик температуры

Высокоточный цифровой датчик температуры MCP9800/1/2/3 компании Microchip Technology Inc выпускается в миниатюрных корпусах SOT-23-5, MSOP-8 и SOIC-8. Может работать с разрешением 9, 10, 11 и 12 бит. Имеет небольшой рабочий ток порядка  200 мкА. Работает в диапазоне температур от -55°C до +125°C. Основное назначение — измерение температуры окружающей среды.

Основные параметры датчика MCP9800/1/2/3:

  •  Точность с 12-битным разрешением:
    •  ±0,5°C (тип.) при +25°C
    • ±1°C (макс.) от -10°C до +85°C
    • ±2°C (макс.) от -10°C до +125°C
    • ±3°C (макс.) от -55°C до +125°С
  • Выбираемое пользователем разрешение: 9-12 бит
  • Диапазон рабочего напряжения: от 2,7 В до 5,5 в
  • 2-проводный интерфейс: совместимость с I2C ™ / SMBus
  • Рабочий ток: 200 мкА (тип.)
  • Ток отключения: 1 мкА (макс.)
  • Время измерения:
    • 9-bit — 30 ms 33 samples/sec (typ.)
    • 10-bit  — 60 ms 17 samples/sec (typ.)
    • 11-bit  — 120 ms 8 samples/sec (typ.)
    • 12-bit  — 240 ms 4 samples/sec (typ.)

Вывод ALERT — выход управления нагревательным элементов, сигнала тревоги. Позволяет программно задавать значения температуры регулирования по двум значениям температуры: Tset и Thyst, для верхнего и нижнего значения температуры.

 

Пока температура ниже Thyst выход ALERT неактивен, как только значение окружающей температуры превысит значение Thyst, выход ALERT станет активным, при достижении температуры значения Tset, выход ALERT снова станет неактивным, далее при уменьшении температуры ниже значения Thyst выход ALERT снова станет активным (можно инвертировать выход ALERT).

Датчики температуры MCP9800/1/2/3  имеют разные настраиваемые и назначенные на заводе изготовителе адреса. Старшие биты адреса не меняются (1001), младшие три бита можно изменить подав на выводы A2, A1, A0 напряжение питания или GND.

Управление датчиком температуры осуществляется при помощи четырех регистров:

  • 00 = Temperature Register
  • 01 = Configuration Register
  • 10 = Temperature Hysteresis Register
  • 11 = Temperature Limit-set Register

Первый регистр Temperature Register (16 бит) позволяет считывать значение измеренной температуры.

В зависимости от разрядности в младшем бите (7:0) считываются старшие биты 7:4 которые содержать дробную часть температуры (0,5 0,25 0,125 0,0625 °С).

Второй регистр Configuration Register (8 бит) который позволят настроить все параметры датчика.

Третий и четвертый регистры Temperature Hysteresis Register, Temperature Limit-set Register позволяют установить параметры Tset и Thyst. Эти регистры 16 бит, но передавать нужно только 9 бит. Разрешение температуры регулирования четно 0,5 °С.

В младшем байте в старшем бите передается четное 0,5 °С значение температуры.

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

Выход ALERT подключите ко входу D2 платы Arduino (Nano Uno), выход D13 (светодиод на плате) используется как индикатор работы выхода ALERT.

#define ADDR 0x4D
 
#include <Wire.h>
void setup(){
    Wire.begin();    
    Serial.begin(9600);
    pinMode(2,INPUT); 
    pinMode(13,OUTPUT);
} 
 
void loop(){
    Serial.println(wire9800(26.0, 27.5, 12),4);
    if(digitalRead(2)==HIGH){digitalWrite(13,HIGH);}else{digitalWrite(13,LOW);}
    delay(1000);
}
 
float wire9800(float regL, float regH, byte bites){
  byte minus;
  /// TEMPERATURE LIMIT-SET REGISTER 9 BIT
  if(regH<0){minus=0b10000000;}else{minus=0b00;}
  Wire.beginTransmission(ADDR);
  Wire.write (0x02);
  Wire.write (int(regH) + minus);
  Wire.write ((int(regH*10)&0b01)<<7);
  Wire.endTransmission();
  /// TEMPERATURE HYSTERESIS REGISTER 9 BIT
  if(regL<0){minus=0b10000000;}else{minus=0b00;}
  Wire.beginTransmission(ADDR);
  Wire.write (0x03);
  Wire.write (int(regL) + minus);
  Wire.write ((int(regL*10)&0b01)<<7);
  Wire.endTransmission();
  ///  CONFIGURATION REGISTER
  Wire.beginTransmission(ADDR);
  Wire.write (0x01);
  Wire.write (0b00000000 + ((bites-9) << 5));
  Wire.endTransmission();
  ///  AMBIENT TEMPERATURE REGISTER
  Wire.beginTransmission(ADDR);
  Wire.write (0x00);
  Wire.endTransmission();
  delay(10);
  Wire.requestFrom(ADDR,2);
  while(Wire.available()<2);
  float value;
  switch(bites){
  case 9:   value = Wire.read() + float(Wire.read()>>7)*0.5;break;
  case 10:  value = Wire.read() + float(Wire.read()>>6)*0.25;break;
  case 11:  value = Wire.read() + float(Wire.read()>>5)*0.125;break;
  case 12:  value = Wire.read() + float(Wire.read()>>4)*0.0625;break;
  }
  return value;
  }

Температура считывается и задаются все остальные параметры с помощью одной функции:

wire9800(Thyst, Tset, разрядность)

Где:

  • Thyst — нижний предел значения регулируемой температуры (четное 0,5 °С)
  • Tset — верхний предел значения регулируемой температуры (четное 0,5 °С)
  • разрядность — от 9 до 12 бит (разрешение 0,5 0,25 0,125 0,0625 °С)

Форум — http://forum.rcl-radio.ru/viewtopic.php?pid=2656#p2656

Даташит — mcp9800.pdf

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

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

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

  • Реле времени для фотопечати

    Основные параметры: Диапазон выдержек I — 1…6с II — 5,5…33с III — 31…186с Стабильность выдержки 2% Потребляемая мощность 2,5Вт К сети реле времени подключают тумблером S1. Для смены кадров фотоувеличитель включают выключателем S4. При выключенном положении тумблера S1 его контакты S1.2 шунтирует симистор V16 и напряжение сети поступает непосредственно на …Подробнее...
  • Комбинированный биостимулятор

    На рисунке показана схема простого биостимулятора, он совмещает в себе 2-а уст-ва: прибор для электропунктуры и фотостимулятор биологически активных точек (БАТ) организма. Стимулятор может работать в режиме непрерывной генерации ( используем переключатель SA1). Режимы работы стимулятора можно менять переключателями SA1 SA2. Схема биостимулятора проста и после сборки в налаживании не …Подробнее...
  • Автогенераторы на элементах ТТЛ

    При помощи элементов ТТЛ можно изготовить автогенераторы у которых выходная частота превышает 30 МГц. Для того чтобы автогенератор быстро возбуждался и работал стабильно во всем диапазоне внешних воздействий, усилительная линейка должна быть не инвертирующей с большим коэффициентом усиления Ku, который по возможности следует стабилизировать. Схемы простых автогенераторов показаны на рисунках …Подробнее...
  • К1055ХВ7Р — ИС УПРАВЛЕНИЯ РЕЛЕ ВКЛЮЧЕНИЯ ЛАМП АВТОМОБИЛЯ

    К1055ХВ7Р — ИС УПРАВЛЕНИЯ РЕЛЕ ВКЛЮЧЕНИЯ ЛАМП АВТОМОБИЛЯ

    Микросхема К1055ХВ7Р является интегральной схемой управления реле включения ламп автомобиля. Она изготовлена по уникальной биполярной технологии, разработанной для класса ИС, ориентированных на применение в бортовой сети автомобилей. ИС предназначена для работы в качестве мощного счетного триггера в составе реле включения задних противотуманных огней, реле включения передних противотуманных огней, реле включения / переключения ближнего и дальнего света автомобиля с …Подробнее...
  • Домашняя метеостанция (Arduino)

    Домашняя метеостанция (Arduino)

    В домашней метеостанции будут использоваться следующие компоненты: Arduino Nano модуль DS3231 — часы реального времени модуль BMP280 — датчик атмосферного давления и температуры (измерение атмосферного давления в мм.рт.ст и  температуры в комнате) модуль 18B20 — цифровой датчик температуры (измерение температуры на улице) модуль DHT11 — датчик влажности LCD 1602  на базе …Подробнее...