Введение: В этой статье подробно объясняется применение специального цифрового датчика температуры DS18B20 при создании цифрового термометра.. Включая принцип работы, аппаратное соединение, программирование программного обеспечения и реализация моделирования. Предоставить полную схему моделирования protues, Исходный код C и анализ результатов помогут читателям глубже понять и попрактиковаться в использовании DS18B20..
Информация о параметрах: источник питания: 3.0В – 5.5В; Регулируемое разрешение: 9 – 12 кусочек; Температурная диапазон: -55 ℃ до +125 ℃; Выход : красный (ВКК), желтый (ДАННЫЕ), черный (Земля);
Что вы получаете: ты получишь 4 Датчики температуры DS18B20, 4 адаптерные модули и 4 перемычки между женщинами и женщинами; Модуль адаптера имеет подтягивающий резистор., который может быть совместим с Raspberry Pi без внешнего резистора;
Датчик температуры DS18B20: размер корпуса из нержавеющей стали составляет ок.. 6 х 50 мм/ 0.2 х 2 дюйм, а цифровой температурный термокабель имеет общую длину ок.. 1 м/ 39.4 дюйм, которого достаточно для удовлетворения ваших потребностей;
Качественный материал: зонд изготовлен из качественного материала из нержавеющей стали., который является водонепроницаемым, влагостойкий и не легко ржавеет, во избежание коротких замыканий;
Широкое применение: этот датчик температуры DS18B20 совместим с Raspberry Pi, и широко применяется для контроля температуры кабельной траншеи., котел, что, сельскохозяйственная теплица, чистая комната, и т. д..
1. Характеристики датчика DS18B20
Датчик DS18B20 играет ключевую роль в области современного мониторинга температуры.. Он может измерять температуру с высокой точностью., и его разрешение может быть скорректировано в соответствии с потребностями, для достижения контроля температуры с различной степенью точности. Кроме того, небольшой размер DS18B20 делает его пригодным для использования в условиях ограниченного пространства, и его простые в использовании характеристики снижают технический порог от новичков до профессионалов..
Прежде чем продолжить изучение параметров производительности DS18B20, надо сначала понять принцип его работы. DS18B20 передает данные о температуре посредством цифровых сигналов., что обеспечивает удобство сбора данных о температуре. По сравнению с традиционными аналоговыми датчиками температуры, цифровые датчики, такие как DS18B20, могут обеспечивать более точные показания и менее чувствительны к шуму во время передачи сигнала..
Чтобы в полной мере использовать эти преимущества DS18B20, мы должны иметь глубокое понимание параметров его производительности. К этим параметрам относится диапазон измерения температуры., точность, разрешение, и напряжение питания. Эти параметры не только определяют, сможет ли DS18B20 удовлетворить потребности конкретных приложений., но также влияют на производительность и надежность всей системы.
В этой главе, мы подробно представим параметры производительности DS18B20, проанализировать принцип его работы, и изучить его преимущества в различных приложениях. Через это содержимое, читатели получат более глубокое понимание датчиков DS18B20 и заложат прочную основу для последующих более сложных приложений и программирования..
2. Подробное объяснение протокола связи 1-Wire DS18B20.
Причина широкого использования датчиков DS18B20 во многом связана с его уникальным протоколом связи. – 1-Протокол проводной связи. Этот протокол упрощает требования к аппаратным соединениям и обеспечивает эффективный способ передачи данных.. В этой главе будет глубоко проанализирован рабочий механизм и процесс обмена данными однострочного протокола связи, чтобы заложить прочную основу для последующей практики программирования..
2.1 Основы протокола однопроводной связи
2.1.1 Особенности протокола связи 1-Wire:
Протокол однопроводной связи DS18B20 также называется “одиночный автобус” технология. Он имеет следующие особенности: – Единая шинная связь: Для двунаправленной передачи данных используется только одна линия данных., что значительно снижает сложность проводки по сравнению с традиционным методом связи с многопроводными датчиками.. – Подключение нескольких устройств: Поддерживает подключение нескольких устройств к одной шине данных., и идентифицирует и передает данные через идентификационные коды устройства. – Низкое энергопотребление: Во время общения, устройство может находиться в режиме ожидания с низким энергопотреблением, когда не участвует в общении. – Высокая точность: С более коротким временем передачи данных, это может уменьшить внешние помехи и повысить точность данных.
2.1.2 Формат данных и временной анализ однопроводной связи
Формат данных протокола однопроводной связи соответствует определенному правилу синхронизации.. Он включает в себя время инициализации, время записи и время чтения:
Время инициализации: Хост сначала запускает отсчет времени обнаружения присутствия (Пульс присутствия) опустив автобус на определенный период времени, и датчик затем отправляет импульс присутствия в ответ.
Время записи: Когда хост отправляет время записи, сначала он сбивает автобус примерно на 1-15 микросекунд, затем отпускает автобус, и датчик тянет автобус вниз 60-120 микросекунды на ответ.
Чтение времени: Хост уведомляет датчик о необходимости отправки данных, отключая шину и отпуская ее., и датчик выведет бит данных на шину после определенной задержки.
3. Способ подключения оборудования термометра
Подключение оборудования — первый и самый важный шаг в создании цифрового термометра.. Правильное соединение датчика DS18B20 и микроконтроллера обеспечит точную передачу данных и послужит прочной основой для дальнейшего программирования и обработки данных.. В этой главе подробно представлены принципы проектирования интерфейса между DS18B20 и микроконтроллером, а также конкретные этапы подключения схемы., и охватить соответствующее содержание электропитания и формирования сигнала.
3.1 Интерфейс между DS18B20 и микроконтроллером
3.1.1 Принципы проектирования интерфейсных схем
Конструкция схемы интерфейса DS18B20 должна соответствовать нескольким основным принципам, чтобы обеспечить стабильную и эффективную работу устройства.:
Стабильный источник питания: DS18B20 может получать питание от линии передачи данных. “ДК” (называется “режим паразитного питания”), или он может получать независимое питание от внешнего источника питания. Независимо от того, какой метод используется, источник питания должен быть стабильным, чтобы предотвратить ошибки передачи данных, вызванные колебаниями напряжения питания..
Целостность сигнала: Поскольку DS18B20 передает данные по одной линии, целостность сигнала особенно важна. Необходимо учитывать помехоустойчивость сигнала и соответствие электрических характеристик сигнала..
Защита цепи: Защита от перегрузки по току и электростатический разряд (ЭСР) меры защиты должны быть включены в схему схемы, чтобы избежать повреждения датчика или микроконтроллера..
3.1.2 Конкретные шаги по подключению цепи
Подключение DS18B20 к микроконтроллеру обычно выполняется следующим образом.:
Подключение к питанию: Подключите вывод VDD DS18B20 к источнику питания 3,3 В или 5 В. (в зависимости от уровня напряжения микроконтроллера), и контакт GND к линии заземления.
Подключение линии передачи данных: Вывод DQ подключен к цифровому выводу ввода/вывода микроконтроллера.. Для обеспечения стабильности передачи данных, между линией передачи данных и источником питания можно добавить подтягивающий резистор, с типичным значением от 4,7 до 10 кОм.
Обработка вывода импульса сброса и присутствия: Обычно, контакт сброса (РСТ) и контакт импульса присутствия (номинальная стоимость) DS18B20 не требует внешнего подключения, это сигналы внутреннего использования.
В этом разделе, мы разработали базовую схему, посредством которой датчик температуры DS18B20 можно подключить к микроконтроллеру. Ниже приведен пример принципиальной схемы на базе Arduino Uno и соответствующее описание.:
блок-схема LR
ДС18Б20 — |ВДД| 5В
ДС18Б20 — |Земля| Земля
ДС18Б20 — |ДК| 2
ДК — |Остановить| 5В
Среди них, DS18B20 представляет собой цифровой датчик температуры., 5V — выходная мощность микроконтроллера., GND — это заземляющий провод, и 2 представляет номер контакта Arduino. 2, который используется для передачи данных. Соединение между DQ и 5 В представляет собой подтягивающий резистор..
3.2 Электропитание и формирование сигнала
3.2.1 Выбор способа питания
DS18B20 обеспечивает два способа подачи питания.:
Режим паразитного питания: В этом режиме, линия данных (ДК) может не только передавать данные, но также питает DS18B20. В это время, напряжение высокого уровня на линии передачи данных должно быть не менее 3,0 В, чтобы обеспечить достаточный ток источника питания.. Этот режим обычно используется, когда длина шины небольшая и передача данных происходит не слишком часто..
Режим внешнего источника питания: В этом режиме, DS18B20 имеет независимый вход питания VDD.. Питание от внешнего источника питания может повысить мощность сигнала датчика и улучшить его помехоустойчивость., который подходит для передачи на большие расстояния или частой передачи данных.
3.2.2 Фильтрация и стабилизация сигнала
Для обеспечения стабильности сигнала и точного считывания данных, сигнал необходимо правильно отфильтровать и стабилизировать:
Подтягивающий резистор: Подтягивающий резистор добавляется между линией передачи данных и источником питания, чтобы гарантировать, что линия данных находится в состоянии высокого уровня в режиме ожидания..
Схема устранения дрожания: Для исключения ошибочных показаний, вызванных помехами в сети или мгновенными колебаниями напряжения., сигнал может быть устранен программным способом на стороне микроконтроллера.
Защита от электростатического разряда: Компоненты защиты от электростатического разряда (например TVS-диоды) добавляются к портам датчиков и микроконтроллеров для предотвращения повреждений, вызванных электростатическим разрядом.
В этом разделе более подробно рассматриваются факторы, которые следует учитывать при выборе источника питания и формирования сигнала, в виде таблицы.:
| Проект | Режим паразитного питания | Режим внешнего питания | Описание | | — | — | — | — | | Применимые сценарии | Короткие линии, редкие данные | Длинные очереди, частые данные | Выбирайте в соответствии с реальными сценариями применения | | Стабильность электропитания | Ниже | Выше | Внешний источник питания рекомендуется для длинных линий или высоких частот. | | Расходы | Ниже | Выше | Для внешнего источника питания требуются дополнительные компоненты управления питанием. | | защита от помех | Слабее | Сильнее | Внешний источник питания больше подходит для условий с высоким уровнем помех. |
Вышеуказанные методы подключения и стратегии обработки сигналов позволяют эффективно интегрировать датчик температуры DS18B20 в любую систему микроконтроллера.. В следующей главе мы познакомимся с тем, как использовать язык C для:
Практика функционального программирования DS18B20:
4. Программирование цифрового термометра DS18B20 на языке C
4.1 Основы программирования и подготовка среды
4.1.1 Идеи дизайна программы и построение структуры
Прежде чем начать писать программу на языке C для цифрового термометра DS18B20., сначала вам необходимо сформулировать основные идеи дизайна программы. Датчик DS18B20 обменивается данными с микроконтроллером по однопроводному протоколу связи.. Поэтому, основной задачей программы является реализация сопутствующих операций протокола связи 1-wire., включая инициализацию DS18B20, отправка инструкций, чтение данных о температуре, и преобразование и отображение считанных данных.
Структура программы условно разделена на следующие части.:
Инициализация: Инициализируйте микроконтроллер и датчик DS18B20..
Основной цикл: Содержит цикл, который непрерывно считывает данные датчиков..
1-библиотека функций проводной связи: Содержит функции для реализации протокола однопроводной связи..
Обработка данных: Преобразование необработанных данных, возвращаемых датчиком, в читаемые значения температуры..
Выход дисплея: Отобразите обработанные данные о температуре на ЖК-экране или выведите их на компьютер через последовательный порт..
4.1.2 Построение и настройка среды разработки
Для программирования и разработки цифрового термометра DS18B20, вам необходимо подготовить среду разработки и настроить ее соответствующим образом. Ниже приведены основные шаги для разработки.:
Выберите среду разработки: Выберите подходящую интегрированную среду разработки. (IDE) по типу микроконтроллера, например для разработки на базе микроконтроллера серии ARM Cortex-M. Вы можете использовать Keil MDK или STM32CubeIDE..
Настройка компилятора: По используемой IDE, настройте компилятор, чтобы гарантировать правильную компиляцию кода языка C.
Сборка платы разработки аппаратного обеспечения: Выберите подходящую плату разработки микроконтроллера., например на базе STM32, ЭСП32, и т. д..
Подключите плату разработки: Подключите датчик DS18B20 к указанному выводу микроконтроллера по протоколу связи 1-wire..
Написать код: Создайте новый проект на языке C в IDE и начните писать программный код..
Компилировать и отлаживать: Используйте инструмент IDE для компиляции кода и запуска его на плате разработки для отладки..
#включать <stdio.h>
// Объявление библиотеки функций связи первой линии DS18B20
недействительный DS18B20_Init();
аннулирование DS18B20_Reset();
недействительный DS18B20_WriteByte(беззнаковый символ, данные);
беззнаковый символ DS18B20_ReadByte();
int DS18B20_ReadTemperature();
int главный() {
// Инициализация датчика DS18B20
DS18B20_Heat();
// Основной цикл
пока(1) {
// Считайте значение температуры
int температура = DS18B20_ReadTemperature();
// Вывод значения температуры на последовательный порт или другое устройство отображения.
printf(“Текущая температура: %дн”, температура);
}
возвращаться 0;
}
4.2 Реализация программы считывания температуры DS18B20
4.2.1 Построение библиотеки функций однопроводной связи
Чтобы реализовать показания температуры DS18B20, сначала вам нужно создать библиотеку функций однопроводной связи. Ниже приведены методы реализации нескольких ключевых функций.:
DS18B20_Heat(): Инициализация синхронизации однопроводной связи.
DS18B20_Сброс(): Сбросьте датчик и определите его пульс..
DS18B20_WriteByte(беззнаковый символ, данные): Записать байт данных в датчик.
DS18B20_ReadByte(): Считать байт данных с датчика.
DS18B20_ReadTemperature(): Считайте температуру и преобразуйте ее.
Реализация библиотеки функций однопроводной связи DS18B20 довольно сложна, поскольку требует точного контроля изменений уровня выводов для соблюдения протокола однопроводной связи.. Ниже приведен пример реализации функции.:
аннулирование DS18B20_Reset() {
// Последовательность сброса однолинейной связи, включая отключение линии передачи данных, задерживать, выпуск автобуса, и обнаружение импульса присутствия
// …
}
Целью этой функции является подача импульса сброса на DS18B20.. После успешного сброса, DS18B20 вернет импульс присутствия.
4.2.2 Реализация алгоритма считывания температуры
Считывание значения температуры датчика DS18B20 – более сложный процесс., потому что необходимо отправить датчику определенные инструкции в определенный момент времени и правильно прочитать возвращаемые данные. Алгоритм считывания значения температуры следующий.:
Сброс датчика.
Отправьте “корабль РИМ” команда (0хСС).
Отправьте “конвертировать температуру” команда (0х44).
Дождитесь завершения преобразования.
Отправьте “прочитать регистр” команда (0xBE).
Считайте два байта данных о температуре..
Следующий код показывает, как считать значение температуры DS18B20.:
int DS18B20_ReadTemperature() {
беззнаковый символ temp_low, temp_high;
беззнаковая внутренняя температура;
// Сбросьте датчик и пропустите инструкции ПЗУ.
DS18B20_Сброс();
DS18B20_WriteByte(0хСС); // Пропустить команды ПЗУ
// Отправить команду температуры преобразования
DS18B20_WriteByte(0х44);
// Дождитесь завершения преобразования. Здесь нужно подождать по времени преобразования DS18B20
// …
// Сбросьте датчик и прочтите данные о температуре.
DS18B20_Сброс();
DS18B20_WriteByte(0хСС); // Пропустить команды ПЗУ
DS18B20_WriteByte(0xBE); // Чтение команды регистрации
// Прочитайте два байта данных
temp_low = DS18B20_ReadByte();
temp_high = DS18B20_ReadByte();
// Объедините два байта данных в 16-битное целое число.
Temp = (temp_high << 8) | temp_low;
// Вернуть значение температуры, соответствующее преобразование на основе разрешения DS18B20
температура возврата;
}
4.2.3 Отладка программы и обработка исключений
При написании программы чтения DS18B20, отладка программы и обработка исключений очень важны. Во время отладки, вам может потребоваться использовать помощник по отладке последовательного порта, чтобы проверить правильность значения выходной температуры., или используйте логический анализатор для контроля синхронизации сигнала первой линии связи.. Обработка исключений должна учитывать аппаратные сбои., ошибки связи, и аномальные реакции DS18B20.
Ниже приведены некоторые стратегии отладки и обработки исключений.:
Проверка данных: После каждого чтения данных, используйте контрольную сумму или контрольный бит, чтобы подтвердить правильность данных.
Перехват исключений: Добавьте в программу механизм перехвата исключений, например, механизм повтора по тайм-ауту, сбросить датчик, и т. д..
Информация об отладке: Добавьте в программу достаточное количество отладочной информации, чтобы помочь обнаружить проблему..
int главный() {
// Инициализация датчика DS18B20
DS18B20_Heat();
// Основной цикл
пока(1) {
внутренняя температура;
// Считайте температуру и проверьте наличие ошибок.
температура = DS18B20_ReadTemperature();
если (температура < 0) {
printf(“Ошибка чтения температуры!\н”);
// Вы можете выбрать повторную попытку или другие механизмы обработки ошибок.
} еще {
printf(“Текущая температура: %дн”, температура);
}
}
возвращаться 0;
}
В этой главе представлены основы программирования на языке C и подготовка среды для цифрового термометра DS18B20., а также реализация программы считывания температуры, и подчеркивает важность отладки программ и обработки исключений.. Благодаря введению этой главы, читатели должны уметь создавать среду разработки, понять важность библиотеки функций первой линии связи, и напишите базовую программу измерения температуры. В следующих главах мы более подробно рассмотрим создание и использование среды моделирования Proteus., предоставление метода имитационных испытаний для реальной сборки оборудования.
5. Диаграмма моделирования Proteus и анализ результатов моделирования
5.1 Создание среды моделирования Proteus
5.1.1 Основные операции с программным обеспечением Proteus
Прежде чем приступить к созданию имитационной модели цифрового термометра DS18B20, сначала вам необходимо понять и освоить основные операции программного обеспечения Proteus.. Proteus — мощное программное обеспечение для моделирования электронных схем, которое может не только проектировать принципиальные схемы., но также проектировать схемы печатных плат и обеспечивать функции моделирования.. Вот несколько ключевых шагов, которые помогут вам начать работу с Proteus.:
Откройте программу Proteus и создайте новый проект..
Найдите и выберите необходимые компоненты в библиотеке компонентов., например датчики DS18B20, микроконтроллеры, источники питания, соединительные провода, и т. д..
Перетащите выбранные компоненты в область дизайна и используйте мышь, чтобы разместить и расположить их..
Используйте инструмент для подключения проводов, чтобы соединить контакты каждого компонента, чтобы сформировать полную цепь..
Дважды щелкните компонент или провод, чтобы изменить его свойства., например, значение сопротивления, напряжение источника питания, и т. д..
Убедитесь, что все компоненты подключены правильно, и проверьте наличие ошибок или упущений..
5.1.2 Создайте проект моделирования DS18B20.
Шаги по созданию проекта моделирования цифрового термометра DS18B20 следующие.:
Запустите Протеус и выберите “Новый проект” создать новый проект.
После установки названия и местоположения проекта, щелкнуть “Следующий”.
Выберите шаблон проекта, такой как “Микропроцессорный”, и нажмите “Следующий”.
В “Элементы проекта” вкладка, проверять “Включить компоненты по умолчанию” и выбираем микроконтроллер (например ПИК, АВР, и т. д.) и датчик DS18B20.
Нажмите “Заканчивать” завершить создание проекта.
Следующий, создать принципиальную схему:
Выберите “ВЫБРАТЬ УСТРОЙСТВО” инструмент, найдите и выберите микроконтроллер и датчик DS18B20 в библиотеке компонентов.
Используйте “РАЗМЕСТИТЬ УСТРОЙСТВО” инструмент для размещения выбранного компонента в области проектирования.
Используйте “ПРОВОЛОКА” инструмент для подключения микроконтроллера и соответствующих контактов датчика DS18B20.
После завершения подключения, использовать “ТЕКСТ” инструмент для добавления аннотаций к принципиальной схеме для облегчения понимания и модификации.
5.2 Моделирование и анализ данных
5.2.1 Установите параметры и условия моделирования
Прежде чем начать симуляцию, вам необходимо установить параметры и условия для запуска моделирования:
Дважды щелкните компонент микроконтроллера, чтобы войти в интерфейс настройки свойств..
Выберите ранее записанный путь к файлу программы по адресу “Программный файл”.
Установите параметры источника питания, чтобы гарантировать, что и микроконтроллер, и датчик DS18B20 имеют правильное напряжение питания..
Следующий, установить временные параметры для моделирования:
В панели управления симуляцией, выбирать “Глобальные настройки”.
Отрегулируйте скорость моделирования и максимальное время моделирования..
Установите соответствующие точки останова для анализа данных в процессе моделирования..
5.2.2 Моделирование и чтение данных о температуре
Запустите симуляцию и смоделируйте данные о температуре.:
Нажмите кнопку “Играть” кнопка на панели управления симуляцией, чтобы запустить симуляцию.
Используйте “ОТЛАЖИВАТЬ” инструмент для просмотра состояния работы программы и значений переменных.
Имитируйте датчик DS18B20 для считывания значения температуры., что обычно достигается путем модификации виртуального термометра в среде моделирования..
Чтобы прочитать данные о температуре в моделировании, вы можете обратиться к следующим шагам:
Найдите настройки моделирования температуры в свойствах компонента DS18B20..
Измените значение температуры, чтобы проверить реакцию системы в различных температурных условиях..
Понаблюдайте, как программа микроконтроллера обрабатывает данные о температуре..
5.2.3 Анализ результатов и устранение неполадок
Проанализируйте результаты моделирования и подтвердите работоспособность термометра.:
Следите за данными в окне вывода, чтобы проверить точность показаний температуры..
Используйте инструмент логического анализатора, чтобы проверить, нормальный ли процесс передачи данных..
Проверьте наличие аномальных сигналов или нестабильных выходов..
Выполните диагностику неисправностей и отладку:
Если показания температуры неточны или имеется ошибка, проверьте способ подключения и конфигурацию DS18B20.
Проанализируйте программный код, чтобы убедиться, что алгоритмы связи первой линии и преобразования данных реализованы правильно..
Используйте “Останавливаться” функция программного обеспечения моделирования для приостановки моделирования и наблюдения за текущим состоянием системы.
English
Afrikaans
العربية
বাংলা
bosanski jezik
Български
Català
粤语
中文(简体)
中文(漢字)
Hrvatski
Čeština
Nederlands
Eesti keel
Suomi
Français
Deutsch
Ελληνικά
हिन्दी; हिंदी
Magyar
Bahasa Indonesia
Italiano
日本語
한국어
Latviešu valoda
Lietuvių kalba
македонски јазик
Bahasa Melayu
Norsk
پارسی
Polski
Português
Română
Русский
Cрпски језик
Slovenčina
Slovenščina
Español
Svenska
ภาษาไทย
Türkçe
Українська
اردو
Tiếng Việt





