2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
SI7050 - это цифровой датчик температуры, работающий по протоколу связи I2C и обеспечивающий высокую точность во всем диапазоне рабочих напряжений и температур. Такая высокая точность датчика достигается за счет новой обработки сигналов и аналоговой конструкции. В эти датчики встроена память на кристалле, в которой хранятся данные калибровки, что облегчает их использование в широком диапазоне. Вот его демонстрация с Arduino Nano.
Шаг 1: Что вам нужно..
1. Arduino Nano
2. SI7050
3. Кабель I²C
4. I²C Shield для Arduino Nano.
Шаг 2: Подключение:
Возьмите щит I2C для Arduino Nano и аккуратно наденьте его на контакты Nano.
Затем подключите один конец кабеля I2C к датчику SI7050, а другой конец - к экрану I2C.
Подключения показаны на картинке выше.
Шаг 3: Код:
Код arduino для SI7050 можно загрузить из нашего репозитория github - DCUBE Store.
Вот ссылка на то же самое:
github.com/DcubeTechVentures/SI7050/blob/master/Arduino/SI7050.ino
Мы включаем библиотеку Wire.h для облегчения связи датчика I2c с платой Arduino.
Вы также можете скопировать код отсюда, он выглядит следующим образом:
// Распространяется по свободной лицензии.
// Используйте его как хотите, для получения прибыли или бесплатно, при условии, что он соответствует лицензиям на связанные с ним работы.
// SI7050
// Этот код предназначен для работы с модулем SI7050_I2CS I2C Mini
#включают
// Адрес SI7050 I2C 0x40 (64)
#define Addr 0x40
установка void ()
{
// Инициализируем связь I2C как МАСТЕР
Wire.begin ();
// Инициализируем последовательную связь, устанавливаем скорость передачи = 9600
Serial.begin (9600);
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Остановить передачу I2C
Wire.endTransmission ();
задержка (300);
}
пустой цикл ()
{
данные типа int без знака [2];
// Запуск передачи I2C
Wire.beginTransmission (адрес);
// Отправляем команду измерения температуры, NO HOLD MASTER
Wire.write (0xF3);
// Остановить передачу I2C
Wire.endTransmission ();
задержка (500);
// Запрос 2 байта данных
Wire.requestFrom (Адрес, 2);
// Считываем 2 байта данных
// temp msb, temp lsb
если (Wire.available () == 2)
{
данные [0] = Wire.read ();
данные [1] = Wire.read ();
}
// Конвертируем данные
float temp = ((данные [0] * 256.0) + данные [1]);
float ctemp = ((175.72 * temp) / 65536.0) - 46,85;
float ftemp = ctemp * 1.8 + 32;
// Выводим данные на последовательный монитор
Serial.print («Температура в градусах Цельсия:»);
Serial.print (ctemp);
Serial.println ("C");
Serial.print («Температура по Фаренгейту:»);
Serial.print (ftemp);
Serial.println ("F");
задержка (500);
}
Шаг 4: Приложения:
SI7050 может быть включен в различные системы, включая компьютерное оборудование, портативные потребительские устройства и медицинское оборудование. Этот датчик может использоваться в цепях холодильных складов, отслеживании активов, а также в различных промышленных системах управления. Он также играет ключевую роль в защите аккумулятора.