цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Arduino и датчик температуры MCP9808: схема подключения и код программы



Arduino и датчик температуры MCP9808: схема подключения и код программы

Автор: Mike(admin) от 7-12-2023, 23:55

MCP9808 представляет собой универсальный и точный датчик температуры с широким рабочим диапазоном, идеально подходящий для большинства повседневных применений. Датчик использует стандарт шины I2C, что делает его пригодным для использования практически со всеми микроконтроллерами и макетными платами, с которыми вы сталкиваетесь. Данном материале рассматривается, как подключить и использовать коммутационный модуль Adafruit MCP9808, чтобы практически в кратчайшие сроки использовать этот датчик температуры в ваших индивидуальных проектах.


Arduino и датчик температуры MCP9808: схема подключения и код программы

MCP9808 может работать в диапазоне температур от -40°C до +125°C, одновременно обеспечивая исключительную точность около четверти градуса Цельсия. Как упоминалось ранее, устройство использует I2C, что позволяет ему взаимодействовать практически со всеми широко используемыми микроконтроллерами. Коммутатор Adafruit MCP9808 также предлагает три настраиваемых адресных контакта, которые позволяют подключать до восьми модулей MCP9808 к одной шине I2C. Широкий диапазон поддерживаемых напряжений питания и низкое потребление тока (200 мкА) делают эту плату отличным выбором для широкого спектра проектов.


Arduino и датчик температуры MCP9808: схема подключения и код программы

Для подключения этого модуля к Arduino (или любой другой плате разработки) требуется всего четыре провода. Эта коммутационная плата работает с любым напряжением от 2,7 В до 5,5 В. Два из этих проводов подают питание на плату, два других действуют как линии связи.


Arduino и датчик температуры MCP9808: схема подключения и код программы

Коммутационный модуль Adafruit MCP9808 позволяет выбирать адрес I2C путем подачи сигналов логического уровня на адресные контакты A0, A1 и A2. Однако благодаря встроенным понижающим резисторам вы также можете оставить эти контакты плавающими. При этом устройство будет использовать свой стандартный адрес I2C. MCP9808 может отправлять сигнал прерывания, как только измеряет температуру за пределами программируемой области. Если устройство обнаруживает значение, выходящее за пределы допустимого диапазона, оно может отправить сигнал прерывания через свой сигнальный вывод. Обратите внимание, что для использования этого контакта вам необходимо добавить внешний подтягивающий резистор.


Действительно, устройство будет использовать свой стандартный адрес I2C, когда все адресные контакты остаются плавающими. Этот базовый адрес – 0x18. Если вы привяжете нулевой адрес к VDD, устройство увеличит свой базовый адрес I2C на единицу, и новый адрес модуля будет 0x19. Если подключить A1 к VDD, устройство прибавит двойку к своему базовому адресу. Привязка A2 к VDD приводит к увеличению базового адреса модуля на три. Вы можете использовать все три адресных контакта для создания до восьми различных адресов I2C.


Arduino и датчик температуры MCP9808: схема подключения и код программы

Модуль Adafruit MCP9808 имеет готовую к использованию библиотеку Arduino, которую можно удобно загрузить и установить с помощью Arduino IDE. Чтобы начать работу с MCP9808 с использованием Arduino IDE, откройте менеджер библиотек IDE и установите пакет библиотеки Adafruit MCP9808. После этого вы сможете скомпилировать и загрузить следующую тестовую программу, которая периодически запрашивает текущую температуру у коммутационного модуля.



#include <Wire.h>
#include "Adafruit_MCP9808.h"

Adafruit_MCP9808 sensor = Adafruit_MCP9808();
unsigned long lastRead = 0;

void setup()
{
  Serial.begin(9600);

  if (!sensor.begin(0x18))
  {
	Serial.println("Unable to connect to the MCP9808 breakout board!");
	Serial.println("Check your connections and verify the address is correct.");
	while (1);
  }
    
  Serial.println("MCP9808 initialized!");

  Serial.println("Waking up MCP9808.... ");
  sensor.wake();

  // Вы можете использовать следующую функцию, чтобы вернуть датчик в спящий режим
  // sensor.shutdown_wake(1);

  // Настройка разрешения
  //  0	0.5°C   	30 мс
  //  1	0.25°C  	65 мс
  //  2	0.125°C 	130 мс
  //  3	0.0625°C	250 мс
  sensor.setResolution(1);
}

void loop()
{
  if(millis() - lastRead > 2000)
  {
	// Считываем температуру и показываем результат:
	float temp_c = sensor.readTempC();
	float temp_f = sensor.readTempF();
    
	Serial.print("Temperature: ");
	Serial.print(temp_c, 2);
	Serial.print("°C (");
	Serial.print(temp_f, 2);
	Serial.println("°F)");

	lastRead = millis();
  }
}

В последовательном мониторе мы можем видеть результат каждые 2 секунды.


Arduino и датчик температуры MCP9808: схема подключения и код программы

MCP9808 – полезный датчик температуры с большим рабочим диапазоном и высокой точностью. Датчик может работать при температуре от -40°C до +125°C с точностью +/- 0,25°C. Благодаря интерфейсу I2C вы можете использовать этот крошечный модуль практически с любой платой разработки и микроконтроллером. Чтобы использовать его с Arduino, подключите контакты питания и линии связи I2C. Три дополнительных адресных контакта позволяют подключить до восьми модулей MCP9808 к одной шине I2C. Модуль Adafruit MCP9808 поставляется с библиотекой Arduino, которая позволяет быстро запустить модуль.




© digitrode.ru


Теги: Arduino, датчик температуры




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

Комментарии:

Оставить комментарий