Подключение датчика температуры DS18B20 к плате STM32F103C8


В этой статье мы рассмотрим подключение датчика температуры DS18B20 к плате STM32F103C8 (Blue Pill). Библиотека Arduino Dallas и библиотека OneWire не поддерживаются DS18B20. По этой причине нам приходится писать код без использования этих библиотек. В связи с этим код для работы с датчиком DS18B20 для STM32F103C8 немного длинный и сложный, а все режимы адресации определены в коде.

Подключение датчика температуры DS18B20 к плате STM32F103C8

DS18B20 — это однопроводной водонепроницаемый датчик, используемый для измерения температуры жидкости (и не только) в диапазоне от -55 до 125°C. Питание для чтения, записи и выполнения преобразований температуры может быть получено от самой линии передачи данных без необходимости во внешнем источнике питания. Поскольку каждый DS18B20 содержит уникальный серийный номер, несколько датчиков DS18B20 могут работать на одной и той же шине 1-Wire.

Также ранее на нашем сайте мы рассматривали подключение датчика температуры DS18B20 к другим микроконтроллерам и платам:

Необходимые компоненты

  1. Плата STM32F103C8 (STM32 Blue Pill) (купить на AliExpress).
  2. Maxim Integrated DS18B20 Programmable Resolution (цифровой датчик температуры DS18B20) (купить на AliExpress).
  3. Резистор 4,7 кОм (купить на AliExpress).
  4. Макетная плата.
  5. Соединительные провода.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Водонепроницаемый цифровой датчик температуры DS18B20

Это предварительно подключенная и водонепроницаемая версия датчика DS18B20. Удобно, когда вам нужно измерить что-то на большом расстоянии или во влажных условиях. Датчик может измерять температуру в диапазоне от -55 до 125 °C (от -67 °F до +257 °F). Кабель покрыт оболочкой из ПВХ.

Поскольку он цифровой, нет ухудшения сигнала даже на больших расстояниях. Эти 1-проводные цифровые датчики температуры довольно точны, т. е. ±0,5°C в большей части диапазона. Он может выдавать до 12 бит точности от встроенного цифро-аналогового преобразователя. Они отлично работают с любым микроконтроллером, использующим один цифровой вывод.

Водонепроницаемый цифровой датчик температуры DS18B20

Единственный недостаток в том, что они используют протокол Dallas 1-Wire, который довольно сложен и требует кучу кода для разбора коммуникации. Мы добавляем резистор 4,7 кОм, который требуется в качестве подтягивающего от линии DATA к линии VCC при использовании датчика.

Дополнительную информацию об этом датчике можно найти в техническом описании датчика DS18B20 .

Взаимодействие датчика температуры DS18B20 с STM32

Схема подключения датчика температуры DS18B20 к плате STM32F103C8 представлена на следующем рисунке.

Схема подключения датчика температуры DS18B20 к плате STM32F103C8

Датчик питается от контакта 3,3 В STM32, а GND датчика подключен к GND STM32. Аналогично цифровой контакт подключен к контакту PA8 платы. Цифровой контакт подключен через резистор 4,7 кОм.

Собранная на макетной плате конструкция проекта

Исходный код программы

Загрузите следующий код на плату STM32F103C8 для считывания температуры, измеренной DS18B20. Вы можете использовать любой метод для загрузки кода. Я использовал последовательный метод и загрузил код с помощью модуля преобразователя USB-TTL.

После загрузки кода откройте окно монитора последовательной связи и в нем немедленно начнет отображаться температура в комнате.

Тестирование работы проекта в окне монитора последовательной связи

(Проголосуй первым!)
Загрузка...
16 просмотров

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *