Рубрики
Проекты на STM32

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

В этой статье мы рассмотрим подключение датчика температуры DS18B20 к плате STM32F103C8 (Blue Pill). Библиотека Arduino Dallas и библиотека OneWire не поддерживаются DS18B20. По этой причине нам приходится писать код без использования этих библиотек. В связи с этим код для работы с датчиком 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 бит точности от встроенного цифро-аналогового преобразователя. Они отлично работают с любым микроконтроллером, использующим один цифровой вывод.

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

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

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

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

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

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

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

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

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

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