Introduction: Овај чланак детаљно објашњава примену прилагођеног дигиталног сензора температуре ДС18Б20 у изградњи дигиталног термометра. Укључујући принцип рада, хардверска веза, програмирање софтвера и имплементација симулације. Обезбедите комплетан дијаграм симулације протуеса, Ц изворни код и анализа резултата како би помогли читаоцима да дубоко разумеју и вежбају употребу ДС18Б20.
Parameter information: напајање: 3.0У – 5.5У; Adjustable resolution: 9 – 12 бит; Температурни опсег: -55 ℃ to +125 ℃; Output : црвена (ВЦЦ), жута (DATA), црна (ГНД);
What you get: you will get 4 DS18B20 temperature sensors, 4 adapter modules and 4 female to female jumper wires; The adapter module has a pull-up resistor, which can be compatible with Raspberry Pi without an external resistor;
DS18B20 temperature sensor: the size of stainless steel housing is approx. 6 к 50 mm/ 0.2 к 2 инча, and the digital temperature thermal cable has a total length of approx. 1 m/ 39.4 инча, which is long enough to meet your needs;
Quality material: the probe is made of quality stainless steel material, which is waterproof, moisture-proof and not easy to rust, so as to prevent short circuits;
Широка примена: this DS18B20 temperature sensor is compatible with Raspberry Pi, and is widely applied in temperature monitoring of cable trench, котао, zer, agricultural greenhouse, clean room, итд.
1. DS18B20 sensor characteristics
The DS18B20 sensor plays a key role in the field of modern temperature monitoring. It can measure temperature with high accuracy, and its resolution can be adjusted according to needs, so as to achieve temperature monitoring with different degrees of precision. Додатно, the small size of DS18B20 makes it suitable for use in environments with limited space, and its easy-to-use characteristics reduce the technical threshold from beginners to professionals.
Before further exploring the performance parameters of DS18B20, it is necessary to first understand its working principle. DS18B20 communicates temperature data through digital signals, што доноси погодност прикупљању података о температури. У поређењу са традиционалним аналогним сензорима температуре, дигитални сензори као што је ДС18Б20 могу пружити прецизнија очитавања и мање су осетљиви на шум током преноса сигнала.
Да бисте у потпуности искористили ове предности ДС18Б20, морамо имати дубоко разумевање његових параметара перформанси. Ови параметри укључују опсег мерења температуре, тачност, резолуцију, и напон напајања. Ови параметри не одређују само да ли ДС18Б20 може да задовољи потребе специфичних апликација, али и утичу на перформансе и поузданост целог система.
У овом поглављу, детаљно ћемо представити параметре перформанси ДС18Б20, анализирати његов принцип рада, и истражите његове предности у различитим применама. Кроз ове садржаје, readers will gain a deeper understanding of DS18B20 sensors and lay a solid foundation for subsequent more complex applications and programming.
2. Detailed explanation of DS18B20’s 1-Wire communication protocol
The reason why DS18B20 sensors are widely used is largely due to its unique communication protocol – 1-Wire communication protocol. This protocol simplifies the requirements for hardware connections and provides an efficient way to transmit data. This chapter will deeply analyze the working mechanism and data exchange process of the 1-line communication protocol to lay a solid foundation for subsequent programming practice.
2.1 Basics of 1-Wire Communication Protocol
2.1.1 Features of 1-Wire Communication Protocol:
DS18B20 1-Wire Communication Protocol is also called “сингле бус” технологије. It has the following features: – Single bus communication: За двосмерни пренос података користи се само једна линија података, што у великој мери смањује сложеност ожичења у поређењу са традиционалном методом комуникације сензора са више жица. – Веза са више уређаја: Подржава повезивање више уређаја на једној магистрали података, и идентификује и комуницира преко идентификационих кодова уређаја. – Мала потрошња енергије: Током комуникације, уређај може бити у стању приправности мале енергије када не учествује у комуникацији. – Висока прецизност: Са краћим временом преноса података, може смањити спољне сметње и побољшати тачност података.
2.1.2 Формат података и анализа времена 1-жичне комуникације
Формат података 1-вире комуникационог протокола прати одређено временско правило. Укључује време иницијализације, време писања и време читања:
Тајминг иницијализације: Домаћин прво покреће време детекције присуства (Пулс присутности) повлачењем аутобуса на одређено време, а сензор затим шаље импулс присутности као одговор.
Напишите тајминг: Када домаћин пошаље време писања, прво повуче аутобус за око 1-15 микросекунде, затим пушта аутобус, и сензор повлачи сабирницу 60-120 микросекунде за одговор.
Прочитајте тајминг: Домаћин обавештава сензор да пошаље податке тако што повуче сабирницу и отпусти је, а сензор ће дати бит података на магистралу након одређеног кашњења.
3. Метод хардверског повезивања термометра
Повезивање хардвера је први и најважнији корак у изградњи дигиталног термометра. Исправна веза између сензора ДС18Б20 и микроконтролера ће обезбедити тачан пренос података и обезбедиће солидну основу за даље програмирање софтвера и обраду података. Ово поглавље ће детаљно представити принципе дизајна интерфејса између ДС18Б20 и микроконтролера и специфичне кораке повезивања кола, и покривају релевантан садржај напајања и кондиционирања сигнала.
3.1 Интерфејс између ДС18Б20 и микроконтролера
3.1.1 Принципи пројектовања кола интерфејса
Дизајн кола интерфејса ДС18Б20 треба да прати неколико основних принципа како би се обезбедио стабилан и ефикасан рад уређаја:
Стабилно напајање: ДС18Б20 може добити напајање из линије података “ДК” (звани “паразитски режим напајања”), или се може самостално напајати екстерним напајањем. Без обзира који метод се користи, напајање мора бити стабилно да би се спречиле грешке у преносу података узроковане флуктуацијама напајања.
Интегритет сигнала: Пошто ДС18Б20 преноси податке кроз једну линију, signal integrity is particularly critical. It is necessary to consider the anti-interference ability of the signal and the matching of the electrical characteristics of the signal.
Circuit protection: Overcurrent protection and electrostatic discharge (ESD) protection measures should be included in the circuit design to avoid damage to the sensor or microcontroller.
3.1.2 Specific steps for circuit connection
Connecting DS18B20 to a microcontroller usually follows the following steps:
Прикључак за напајање: Connect the VDD pin of DS18B20 to a 3.3V or 5V power supply (depending on the voltage level of the microcontroller), and the GND pin to the ground line.
Data line connection: The DQ pin is connected to a digital I/O pin of the microcontroller. In order to ensure the stability of data transmission, може се додати пулл-уп отпорник између линије података и напајања, са типичном вредношћу од 4,7кΩ до 10кΩ.
Ресетовање и обрада пулсних пинова присутности: Нормално, пин за ресетовање (РСТ) и пулсни пин присутности (ПАР) од ДС18Б20 не морају бити повезани споља, они су интерно коришћени сигнали.
У овом одељку, дизајнирали смо основно коло преко којег се сензор температуре ДС18Б20 може повезати са микроконтролером. Следи пример дијаграма кола заснованог на Ардуино Уно и одговарајућем опису:
дијаграм тока ЛР
ДС18Б20 — |ВДД| 5У
ДС18Б20 — |ГНД| ГНД
ДС18Б20 — |ДК| 2
ДК — |Пулл-уп| 5У
Међу њима, ДС18Б20 представља дигитални температурни сензор, 5В је излазна снага микроконтролера, ГНД је жица за уземљење, и 2 представља Ардуино пин бр. 2, који се користи за пренос података. Веза између ДК и 5В представља пулл-уп отпорник.
3.2 Напајање и кондиционирање сигнала
3.2.1 Избор начина напајања
ДС18Б20 обезбеђује два начина напајања:
Паразитски режим напајања: У овом режиму, линија података (ДК) не може само да преноси податке, али и напајање ДС18Б20. У овом тренутку, напон високог нивоа на линији података треба да буде најмање 3,0В да би се обезбедила довољна струја напајања. Овај режим се обично користи када је дужина магистрале кратка и када пренос података није пречест.
Режим екстерног напајања: У овом режиму, ДС18Б20 има независни улаз за напајање ВДД. Напајање помоћу екстерног напајања може побољшати јачину сигнала сензора и побољшати способност заштите од сметњи, који је погодан за пренос на велике удаљености или чест пренос података.
3.2.2 Филтрирање и стабилизација сигнала
Да би се обезбедила стабилност сигнала и тачно очитавање података, сигнал треба правилно филтрирати и стабилизовати:
Отпорник за повлачење: Отпорник за повлачење се додаје између линије за податке и извора напајања како би се осигурало да је линија података у стању високог нивоа када је неактивна.
Де-јиттер коло: Да би се елиминисала погрешна очитавања узрокована сметњама у линији или тренутним флуктуацијама напона, сигнал се може софтверски отклонити на страни микроконтролера.
ЕСД заштита: Компоненте ЕСД заштите (као што су ТВС диоде) се додају на портове сензора и микроконтролера како би се спречила оштећења изазвана електростатичким пражњењем.
Овај одељак даље разрађује факторе које треба узети у обзир при избору напајања и кондиционирања сигнала у облику табеле:
| Пројекат | Паразитски режим напајања | Режим екстерног напајања | Опис | | — | — | — | — | | Применљиви сценарији | Кратке линије, ретки подаци | Дуги редови, чести подаци | Изаберите у складу са стварним сценаријима примене | | Стабилност напајања | Ниже | Више | Екстерно напајање се препоручује за дуге линије или високе фреквенције | | Цост | Ниже | Више | Спољно напајање захтева додатне компоненте за управљање напајањем | | Анти-интерференција | Слабије | Јаче | Спољно напајање је погодније за окружења са високим сметњама |
Горе наведене методе повезивања и стратегије обраде сигнала могу ефикасно интегрисати сензор температуре ДС18Б20 у било који систем микроконтролера. Следеће поглавље ће вам представити како да користите језик Ц:
Пракса функционалног програмирања ДС18Б20:
4. ДС18Б20 дигитални термометар Ц програмирање језика
4.1 Основа програмирања и припрема окружења
4.1.1 Идеје за дизајн програма и конструкција оквира
Пре него што почнете да пишете програм на језику Ц дигиталног термометра ДС18Б20, прво треба да успоставите основне идеје дизајна програма. Сензор ДС18Б20 комуницира са микроконтролером преко 1-вире комуникационог протокола. Стога, главни задатак програма је имплементација повезаних операција 1-вире комуникационог протокола, укључујући иницијализацију ДС18Б20, слање инструкција, очитавање података о температури, и претварање и приказивање прочитаних података.
Програмски оквир је грубо подељен на следеће делове:
Иницијализација: Иницијализујте микроконтролер и сензор ДС18Б20.
Главна петља: Садржи петљу која непрекидно чита податке сензора.
1-библиотека функција жичне комуникације: Садржи функције за имплементацију једножичног комуникационог протокола.
Обрада података: Претворите необрађене податке које враћа сензор у читљиве вредности температуре.
Приказ излаза: Прикажите обрађене податке о температури на ЛЦД екрану или их пренесите на рачунар преко серијског порта.
4.1.2 Конструкција и конфигурација развојног окружења
У циљу програмирања и развоја дигиталног термометра ДС18Б20, потребно је да припремите развојно окружење и да га на одговарајући начин конфигуришете. Следе основни кораци за развој:
Изаберите развојно окружење: Изаберите одговарајуће интегрисано развојно окружење (ИДЕ) према врсти микроконтролера, као што је за развој заснован на микроконтролеру серије АРМ Цортек-М. Можете користити Кеил МДК или СТМ32ЦубеИДЕ.
Конфигуришите компајлер: According to the IDE used, configure the compiler to ensure that the C language code can be compiled correctly.
Build the hardware development board: Select a suitable microcontroller development board, such as based on STM32, ESP32, итд.
Connect the development board: Connect the DS18B20 sensor to the specified pin of the microcontroller through the 1-wire communication protocol.
Write code: Create a new C language project in the IDE and start writing program code.
Compile and debug: Use the IDE tool to compile the code and run it on the development board for debugging.
#укључити <stdio.h>
// DS18B20 first-line communication function library declaration
воид ДС18Б20_Инит();
void DS18B20_Reset();
воид ДС18Б20_ВритеБите(unsigned char dat);
unsigned char DS18B20_ReadByte();
int DS18B20_ReadTemperature();
инт маин() {
// Initialize DS18B20 sensor
ДС18Б20_Хеат();
// Главна петља
док(1) {
// Read temperature value
int temperature = DS18B20_ReadTemperature();
// Излазна вредност температуре на серијски порт или други уређај за приказ
принтф(“Тренутна температура: %d\n”, температура);
}
повратак 0;
}
4.2 Имплементација програма очитавања температуре ДС18Б20
4.2.1 Изградња библиотеке функција једножичне комуникације
Да би се остварило очитавање температуре ДС18Б20, прво морате да направите једножичну библиотеку комуникационих функција. Следе методе имплементације неколико кључних функција:
ДС18Б20_Хеат(): Иницијализујте временско подешавање једножичне комуникације.
ДС18Б20_Ресет(): Ресетујте сензор и откријте његов пулс.
ДС18Б20_ВритеБите(unsigned char dat): Упишите бајт података у сензор.
ДС18Б20_РеадБите(): Прочитајте бајт података са сензора.
ДС18Б20_РеадТемпературе(): Прочитајте температуру и претворите је.
Имплементација библиотеке функција једножичне комуникације ДС18Б20 је прилично компликована јер захтева прецизну контролу промена нивоа пинова да би се пратио једножични комуникациони протокол. Следи пример имплементације функције:
void DS18B20_Reset() {
// Редослед ресетовања једнолинијске комуникације, укључујући повлачење линије података, кашњење, пуштајући аутобус, и детектовање пулса присутности
// …
}
Сврха ове функције је да пошаље импулс за ресетовање ДС18Б20. Након што је ресетовање успешно, ДС18Б20 ће вратити пулс присутности.
4.2.2 Имплементација алгоритма очитавања температуре
Очитавање вредности температуре сензора ДС18Б20 је компликованији процес, јер је потребно у одређеном тајмингу послати специфична упутства сензору и исправно прочитати враћене податке. Алгоритам за очитавање вредности температуре је следећи:
Ресетујте сензор.
Пошаљите “брод РИМ” команда (0кЦЦ).
Пошаљите “претворити температуру” команда (0к44).
Сачекајте да се конверзија заврши.
Пошаљите “читај регистар” команда (0кБЕ).
Прочитајте два бајта података о температури.
The following code shows how to read the temperature value of the DS18B20:
int DS18B20_ReadTemperature() {
unsigned char temp_low, temp_high;
unsigned int temp;
// Reset the sensor and skip ROM instructions
ДС18Б20_Ресет();
ДС18Б20_ВритеБите(0кЦЦ); // Skip ROM commands
// Send conversion temperature command
ДС18Б20_ВритеБите(0к44);
// Сачекајте да се конверзија заврши. Here you need to wait according to the conversion time of DS18B20
// …
// Reset the sensor and read the temperature data
ДС18Б20_Ресет();
ДС18Б20_ВритеБите(0кЦЦ); // Skip ROM commands
ДС18Б20_ВритеБите(0кБЕ); // Read register command
// Read two bytes of data
temp_low = DS18B20_ReadByte();
temp_high = DS18B20_ReadByte();
// Combine two bytes of data into a 16-bit integer
темп = (temp_high << 8) | temp_low;
// Return the temperature value, converting appropriately based on the resolution of the DS18B20
повратна темп;
}
4.2.3 Program debugging and exception handling
When writing a DS18B20 reading program, program debugging and exception handling are very important. During debugging, можда ћете морати да користите помоћника за отклањање грешака серијског порта да бисте проверили да ли је вредност излазне температуре тачна, или користите логички анализатор за праћење времена сигнала прве линије комуникације. Управљање изузецима треба да узме у обзир кварове хардвера, грешке у комуникацији, и абнормални одговори ДС18Б20.
Следе неке стратегије за отклањање грешака и руковање изузетцима:
Верификација података: Након сваког прочитаног податка, користите контролни збир или бит за проверу да бисте потврдили тачност података.
Хватање изузетака: Додајте механизам за хватање изузетака у програм, као што је механизам поновног покушаја временског ограничења, ресетујте сензор, итд.
Информације о отклањању грешака: Додајте довољно излазних информација за отклањање грешака у програм да бисте помогли у проналажењу проблема.
инт маин() {
// Initialize DS18B20 sensor
ДС18Б20_Хеат();
// Главна петља
док(1) {
инт температура;
// Очитајте температуру и проверите грешке
температура = ДС18Б20_РеадТемпературе();
ако (температура < 0) {
принтф(“Грешка при очитавању температуре!\н”);
// Можете изабрати да покушате поново или друге механизме за руковање грешкама
} друго {
принтф(“Тренутна температура: %d\n”, температура);
}
}
повратак 0;
}
Ово поглавље представља основе програмирања на језику Ц и припрему окружења за дигитални термометар ДС18Б20, као и спровођење програма очитавања температуре, и наглашава важност отклањања грешака у програму и руковања изузетцима. Кроз увод у ово поглавље, читаоци треба да буду у стању да изграде развојно окружење, разумеју важност библиотеке комуникационих функција прве линије, и написати основни програм за очитавање температуре. У наредним поглављима ће се даље бавити конструкцијом и коришћењем окружења за симулацију Протеус, обезбеђујући симулациони метод испитивања за стварну монтажу хардвера.
5. Протеус симулациони дијаграм и анализа резултата симулације
5.1 Proteus simulation environment construction
5.1.1 Basic operation of Proteus software
Before starting to build the simulation model of the DS18B20 digital thermometer, you first need to understand and master the basic operation of Proteus software. Proteus is a powerful electronic circuit simulation software that can not only design circuit schematics, but also design circuit PCB layouts and provide simulation functions. Here are some key steps to help you get started with Proteus:
Open the Proteus software and create a new project.
Search and select the required components in the component library, such as DS18B20 sensors, microcontrollers, напајања, connecting wires, итд.
Drag the selected components to the design area and use the mouse to place and layout them.
Use the wiring tool to connect the pins of each component to form a complete circuit.
Double-click a component or wire to modify its properties, such as resistance value, power supply voltage, итд.
Make sure all components are connected correctly and check for errors or omissions.
5.1.2 Create a DS18B20 simulation project
The steps to create a simulation project for the DS18B20 digital thermometer are as follows:
Start Proteus and select “New Project” to create a new project.
After setting the project name and location, click “Следеће”.
Select a project template, као што су “Microprocessor Based”, and click “Следеће”.
In the “Project Items” tab, check “Include default components” and select a microcontroller (such as PIC, AVR, итд.) and a DS18B20 sensor.
Click “Finish” to complete the project creation.
Следеће, create a circuit schematic:
Select the “PICK DEVICE” tool, find and select the microcontroller and DS18B20 sensor in the component library.
Use the “PLACE DEVICE” tool to place the selected component in the design area.
Use the “ВИРЕ” tool to connect the microcontroller and the relevant pins of the DS18B20 sensor.
After completing the connection, use the “ТЕКСТ” tool to add annotations to the circuit diagram for easy understanding and modification.
5.2 Simulation test and data analysis
5.2.1 Set simulation parameters and conditions
Before starting the simulation, you need to set the parameters and conditions for the simulation run:
Double-click the microcontroller component to enter the property setting interface.
Select the previously written program file path at “Program File”.
Set the power supply parameters to ensure that both the microcontroller and the DS18B20 sensor have the correct power supply voltage.
Следеће, set the time parameters for the simulation:
In the simulation control panel, select “Global Settings”.
Adjust the simulation speed and maximum simulation time.
Set appropriate breakpoints to analyze data during the simulation process.
5.2.2 Simulate and read temperature data
Run the simulation and simulate temperature data:
Click the “Play” button in the simulation control panel to start the simulation.
Use the “DEBUG” tool to view the program running status and variable values.
Simulate the DS18B20 sensor to read the temperature value, which is usually achieved by modifying the virtual thermometer in the simulation environment.
To read temperature data in the simulation, you can refer to the following steps:
Find the temperature simulation settings in the properties of the DS18B20 component.
Modify the temperature value to test the system response under different temperature conditions.
Observe how the microcontroller program processes the temperature data.
5.2.3 Result Analysis and Troubleshooting
Analyze the simulation results and confirm the performance of the thermometer:
Monitor the data in the output window to check whether the temperature reading is accurate.
Use the logic analyzer tool to monitor whether the data communication process is normal.
Check for any abnormal signals or unstable outputs.
Perform fault diagnosis and debugging:
If the temperature reading is inaccurate or there is an error, check the connection method and configuration of the DS18B20.
Analyze the program code to ensure that the first-line communication and data conversion algorithms are implemented correctly.
Use the “Stop” function of the simulation software to pause the simulation and observe the current status of the system.
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





