Ми пропонуємо широкий асортимент найкращих роз'ємів датчиків 1-Wire DS18B20, включаючи Nanoflex, DisplayPort, USB, Сонячна, SATA, HDMI, ЦЕ ІДЕЯ, SAS & багато іншого. Усі кабелі виготовляються відповідно до найвищих промислових стандартів. Використання сенсорної схеми для зборки коробок дозволяє зосередитися на дизайні та маркетингу, зменшити витрати, і скористайтеся перевагами наших складальних ліній, Процеси контролю якості, та виробничий досвід.
Датчик DS18B20 спілкується за допомогою “1-Дріт” протокол, це означає, що він використовує одну лінію передачі даних для зв’язку з мікроконтролером, дозволяє підключати декілька датчиків до однієї лінії та ідентифікувати їх унікальним 64-бітним серійним кодом; ця єдина лінія даних підтягується до високого рівня за допомогою резистора, і датчик передає дані, підтягуючи лінію до низького рівня протягом певних часових інтервалів для надсилання бітів інформації.
Датчик температури DS18B20: Водонепроникний зонд DS18B20 призначений для використання під водою, здатний працювати у вологому середовищі, не пошкоджуючись водою чи вологою.
Напруга живлення датчика температури: 3.0V ~ 5,25 В;
Діапазон робочих температур:-55 ℃ до +125 ℃ (-67 ℉ до +257 ℉);
Забезпечує вимірювання температури від 9 до 12 біт за Цельсієм;
Модуль адаптера оснащений підтягуючим резистором, і безпосередньо підключається до GPIO Raspberry Pi без зовнішнього резистора;
Використовуйте цей комплект адаптерного модуля, щоб спростити підключення водонепроникного датчика температури до вашого проекту.
1. Ключові моменти про протокол 1-Wire:
Єдина лінія даних:
Для зв'язку між датчиком і мікроконтролером потрібен лише один дріт.
Напівдуплексний зв'язок:
Дані можуть надсилатися в обох напрямках, але лише в одному напрямку за раз.
Сила паразитів:
DS18B20 може живитися безпосередньо від лінії передачі даних під час зв'язку, усунення необхідності окремого джерела живлення в деяких випадках.
Унікальні адреси пристроїв:
Кожен датчик DS18B20 має унікальний 64-бітний послідовний код, який дозволяє мікроконтролеру ідентифікувати та адресувати окремі датчики на шині..
Етапи зв’язку з DS18B20:
1.1 Скинути пульс:
Мікроконтролер ініціює зв’язок, перетягуючи лінію передачі даних у низький рівень на певний час (скинути імпульс).
1.2 Пульс присутності:
Якщо в автобусі є DS18B20, він відповість коротким імпульсом, вказуючи на його присутність.
1.3 команда ROM:
Мікроконтролер надсилає команду ROM або для читання унікального 64-бітного коду певного датчика (“Матч ПЗУ”) або для адресації всіх датчиків на шині (“Пропустити ROM”).
1.4 Команда функції:
Залежно від бажаної операції (як температура читання), мікроконтролер надсилає певну функціональну команду датчику.
1.5 Передача даних:
Дані передаються побітово, з датчиком, підтягуючи лінію даних до низького рівня, щоб надіслати a ‘0’ і дозволити лінії піднятися високо, щоб надіслати «1».
2. Детальне пояснення протоколу зв’язку 1-Wire DS18B20
Причина, чому датчики DS18B20 широко використовуються, в основному пов’язана з його унікальним протоколом зв’язку – 1-Протокол дротового зв'язку. Цей протокол спрощує вимоги до апаратних з’єднань і забезпечує ефективний спосіб передачі даних. У цьому розділі детально проаналізовано робочий механізм і процес обміну даними протоколу зв’язку з 1 лінією, щоб закласти міцну основу для подальшої практики програмування..
2.1 Основи протоколу зв'язку 1-Wire
2.1.1 Особливості протоколу зв'язку 1-Wire:
DS18B20 1-Wire Communication Protocol також називається “один автобус” технології. Він має такі особливості: – Одношинне спілкування: Для двонаправленої передачі даних використовується лише одна лінія даних, що значно зменшує складність підключення в порівнянні з традиційним багатодротовим методом зв’язку датчиків. – Підключення кількох пристроїв: Підтримує підключення кількох пристроїв до однієї шини даних, ідентифікує та спілкується за допомогою ідентифікаційних кодів пристрою. – Низьке енергоспоживання: Під час спілкування, пристрій може перебувати в режимі очікування з низьким енергоспоживанням, коли не бере участі в спілкуванні. – Висока точність: З меншим часом передачі даних, це може зменшити зовнішнє втручання та підвищити точність даних.
2.1.2 Формат даних і аналіз часу 1-провідного зв'язку
Формат даних протоколу зв’язку 1-wire відповідає певному правилу синхронізації. Він включає час ініціалізації, час запису та час читання:
Час ініціалізації: Хост спочатку починає відлік часу виявлення присутності (Пульс присутності) шляхом зупинки автобуса на певний період часу, а потім датчик надсилає у відповідь імпульс присутності.
Напишіть терміни: Коли хост надсилає час запису, він спочатку тягне автобус приблизно на 1-15 мікросекунди, потім випускає автобус, і датчик затягує автобус 60-120 мікросекунди для відповіді.
Прочитайте хронометраж: Хост сповіщає датчик про надсилання даних, потягнувши шину вниз і відпустивши її, і датчик виведе біт даних на шину після певної затримки.
2.2 Програмна реалізація передачі даних
2.2.1 Ініціалізація та скидання 1-лінії зв'язку
На програмному рівні, Ініціалізація та скидання зв’язку 1-Wire є першим кроком зв’язку. Нижче наведено псевдокод для реалізації цього процесу:
// Функція ініціалізації зв'язку OneWire
void OneWire_Init() {
// Переведіть шину в режим введення та ввімкніть підтягуючий резистор
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
// Зачекайте, поки автобус простоїть
Затримка мікросекунд(1);
// Надішліть імпульс скидання
OneWire_Reset();
}
// Функція скидання зв'язку OneWire
void OneWire_Reset() {
// Спустіть автобус
SetPinMode(DS18B20_PIN, ВИХІД_НИЗЬКИЙ);
Затримка мікросекунд(480);
// Відпустіть автобус
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
Затримка мікросекунд(70);
// Дочекайтеся наявності пульсу
якщо (!WaitForOneWirePresence())
// Пульсу не виявлено, можливо, датчик не підключений або не вдалося виконати ініціалізацію
HandleError();
Затримка мікросекунд(410);
}
// Очікування наявності пульсу
bool WaitForOneWirePresence() {
повернути ReadPin(DS18B20_PIN) == 0; // Припустимо, що низький рівень є наявністю сигналу
}
2.2.2 Операції читання та запису даних
Операції читання та запису даних є основною частиною комунікації датчиків. Наступний код показує, як записати байт в однопровідну шину:
// Записати байт в однопровідну шину
void OneWire_WriteByte(байт даних) {
для (int i = 0; i < 8; i++) {
OneWire_WriteBit(даних & 0x01);
даних >>= 1;
}
}
// Напишіть трохи на однопровідну шину
void OneWire_WriteBit(бітові дані) {
SetPinMode(DS18B20_PIN, ВИХІД_НИЗЬКИЙ);
якщо (даних) {
// Під час письма відпустіть автобус 1
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
Затримка мікросекунд(1);
} інше {
// Продовжуйте тягнути шину низько під час письма 0
Затримка мікросекунд(60);
}
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
Затримка мікросекунд(1);
}
Далі йде функція читання байта:
// Прочитайте байт з однопровідної шини
байт OneWire_ReadByte() {
байтові дані = 0;
для (int i = 0; i < 8; i++) {
даних >>= 1;
якщо (OneWire_ReadBit())
даних |= 0x80;
}
повернути дані;
}
// Почитайте трохи з однопровідної шини
біт OneWire_ReadBit() {
SetPinMode(DS18B20_PIN, ВИХІД_НИЗЬКИЙ);
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
Затримка мікросекунд(3);
логічний результат = ReadPin(DS18B20_PIN);
Затримка мікросекунд(57);
повернути результат;
}
2.2.3 Механізм перевірки зв'язку OneWire
Протокол зв'язку OneWire використовує простий механізм перевірки в процесі обміну даними, зазвичай шляхом зчитування записаних даних для перевірки правильності даних. Нижче наведено приклад коду для перевірки записаних даних:
байт даних = 0x55; // Припустимо, що дані, які потрібно надіслати
OneWire_WriteByte(даних); // Запис даних на шину OneWire
byte readData = OneWire_ReadByte(); // Зчитування даних із шини OneWire
якщо (readData != дані) {
HandleError(); // Якщо зчитані дані не збігаються із записаними даними, виправити помилку
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





