Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Отчет программирование датчика температуры DS18B20 на базе контроллера STM32F103C8Tx

Автор:   •  Май 27, 2022  •  Реферат  •  2,216 Слов (9 Страниц)  •  221 Просмотры

Страница 1 из 9

ОТЧЕТ

ПРОГРАММИРОВАНИЕ ДАТЧИКА ТЕМПЕРАТУРЫ DS18B20 НА БАЗЕ КОНТРОЛЛЕРА STM32F103C8Tx

по курсу: Микропроцессорная техника в мехатронике и робототехнике


В данной работе рассматривается работа с датчиком DS18B20 компании DALLAS является датчиком температуры. Температура измеряет в градусах по Цельсию. Измерения могут быть как 9-битной дискретности, так и 12-битной.

Распределяются данные биты следующим образом.

Я буду измерять температуру в 12-битном виде и самые младшие 4 бита будут хранить показания долей градуса, а остальные старшие 8 – сами градусы.

Подключается данный датчик по однопроводной технологии (1-wire).

Диапазон измерений – от -55 0C до +125 0C, но наивысшая точность показаний достигается в диапазоне от -10 0C до +85 0C/

Погрешность датчика – 0,5 градуса, поэтому нет смысла использовать все младшие биты.

Режим 1-wire у меня не организован аппаратно в контроллере, поэтому я буду весь протокол программировать.

У датчика всего 3 ножки. 2 из них ножки питания и одна – ножка данных. Данный датчик существует в двух видах корпуса – Dip и TO-92. Я буду использовать TO-92.  У каждого датчика есть уникальный 64-битный код, записанный в его ROM, записанного посредством лазерных технологий. В связи с этим на 1 провод можно подключить несколько таких датчиков. Но, так как я буду использовать только один датчик, то обращаться к нему буду другим способом, не используя ROM.

Подавая на датчик команду 44h последовательным кодом, тем самым заставляя датчик конвертировать температуру.

Посмотрим регистры, в которых хранится значение температуры после преобразования

[pic 1]

Рисунок 1 - формат регистра температуры

В четырех младших битах младшего регистра хранятся доли градусов, в четырех старших, а также в трех младших битах старшего регистра – целые значения градусов. В остальных битах – знак. Если 0, то плюс, если 1 – то минус. Также в технической документации написано, что нужно обязательно подтянуть резистор на информационную ножку датчика к питанию. Рекомендуемый номинал – 4,7 кОма. 

Схема будет следующая. Помещу датчик в плату. Между информационным выводом датчика и выводом питания подключу резистор. Питание на выводы питания подадам 3,3 вольта с отладочной платы, а информационный вывод датчика подключу к ножке PB11 микроконтроллера. Также подключу модуль USART-USB, не подводя к нему плюсовой электрод питания и также подключу программатор ST-Link V2, с него и подам питание на контроллер. Никаких отдельных источников питания использовать не буду, так как датчик почти ничего не потребляет. Получится вот такая сборка 

[pic 2]

Рисунок 2 – Схема подключения датчика DS18B20

Создам новый проект в CubeMX, выбрав контроллер STM32F103C8Tx.

Настрою тактирование от кварцевого резонатора

[pic 3]

Рисунок 3 - CubeMX

Включаю отладчик

[pic 4]

Рисунок 4 – включение отладчика

Настрою USART

[pic 5]

Рисунок 5 – Настройка USART

Включу ножку порта PC13, отвечающую за светодиод, на выход

[pic 6]

Рисунок 6 - ножка порта PC13

Также включу на вход ножку PB11, к которой буду подсоединять информационный контакт датчика

[pic 7]

Рисунок 7 - ножка порта PC11

Перейду в раздел Clock Configuration и настрою там частоты и переключатели следующим образом

[pic 8]

Рисунок 8 - раздел Clock Configuration 

Теперь перейду в раздел Configuration, USART трогать не будем, оставим настройки по умолчанию (скорость 115200 кбит/с), а вот ножке порта PC13 настроим чуть побыстрее

[pic 9]

Рисунок 9 - раздел Configuration, USART

Зайду в настройки проекта, выберу в качестве среды программирования Keil 5, а также присвою имя проекту по наименованию датчика

[pic 10]

Рисунок 10 – Настройки проекта

...

Скачать:   txt (27.9 Kb)   pdf (872.5 Kb)   docx (823.4 Kb)  
Продолжить читать еще 8 страниц(ы) »
Доступно только на Essays.club