| Ваш IP: 3.233.219.62 | Online(51) - гости: 13, боты: 38 | Загрузка сервера: 0.85 ::::::::::::

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

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

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

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

  • Часы на БИС К145ИК1901

    Принципиальная схема часов на БИС К145ИК1901 приведена на рис. Основные функциональные узлы электронных часов объединены в кристалле БИС: генератор, счетчики минут и часов, формирователь семиэлементного кода для управления катод-люминесцентными индикаторами (выводы 13, 14, 16 — 20), формирователь сигналов выборки индикатора (выводы 44 — 47), устройство установки времени (будильник), компаратор, обеспечивающий …Подробнее...
  • FM — приемник на TDA7000

    ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ: Стабилизированное питание: Vcc = 9 ~ 12V Частота приема: 88 ~ 108MHz Ток потребления: 100mA Элементная база: Все сопротивлений — 1/4W. R1 47K R2 22K R3 100K R4 39K R5 10 P1 10K потенциометр логарифмической P2 100K линейный потенциометра C1 39pF керамические C2 47pF керамические C3 2,2 нФ …Подробнее...
  • ФНЧ для сабвуфера

    ФНЧ для сабвуфера

    На рисунке показана простая схема ФНЧ для сабвуфера. В схеме используется ОУ ua741. Схема достаточно проста, имеет низкую стоимость и не нуждается в настройке после сборки. Частота среза ФНЧ 80 Гц. Для работы ФНЧ для сабвуфера необходим двухполярный источник питания ±12 В.Подробнее...
  • Усилитель мощности 6 Вт на TDA7245A

    Усилитель мощности 6 Вт на TDA7245A

    Усилитель мощности на TDA7245A с фиксированным усилением предназначен для использования в бытовой аудиотехнике. Микросхема снабжена функциями STAND-BY и тепловой защитой. Усилитель на базе TDA7245A обладает следующими техническими характеристиками: Номинальное напряжение питания 16,5В Напряжение питания 12…30В Ток покоя 17…25мА в зависимости от напряжения питания Выходная мощность при КНИ=10% 12Вт Выходная мощность …Подробнее...
  • TDA8931 — УМЗЧ 20Вт

    TDA8931 — УМЗЧ 20Вт

    TDA8931 — усилитель мощности звуковой частоты класса D. Выходная мощность усилителя 20 Вт. КПД усилителя более 90%, что позволяет использовать микросхему TDA8931 без внешнего радиатора. Напряжение питания микросхемы TDA8931 может быть в пределах от 12 до 35В, КНИ не более 0,02% при выходной мощности 1Вт (Vp=22В, Rн=4 Ом). Микросхема снабжена защитой от …Подробнее...