Нудиме широк асортиман на најдобрите конектори за сензор со 1-жица DS18B20, вклучувајќи го и Nanoflex, DisplayPort, USB, Соларни, SATA, HDMI, ТОА Е ИДЕЈАТА, САС & многу повеќе. Сите кабли се произведени според највисоките индустриски стандарди. Користењето на склопување на колото на сензорот за конструкции на кутии ви овозможува да се фокусирате на вашиот дизајн и маркетинг, намалување на трошоците, и искористете ги придобивките од нашите склопувачки линии, ОК процеси, и производствена експертиза.
Сензорот DS18B20 комуницира со помош на “1-Жица” протокол, што значи дека користи единствена податочна линија за сета комуникација со микроконтролер, овозможувајќи повеќе сензори да се поврзат на иста линија и да се идентификуваат со нивниот единствен 64-битен сериски код; оваа единечна податочна линија се повлекува високо со отпор и сензорот ги пренесува податоците со повлекување на линијата ниско за време на одредени временски слотови за да испрати делови од информации.
Сензор за температура DS18B20: Водоотпорната сонда DS18B20 е дизајнирана за подводна употреба, способни да работат во влажни или влажни средини без да бидат оштетени од вода или влага.
Напон на напојување на сензорот за температура: 3.0V ~ 5,25 V;
Оперативен опсег на температура:-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-от”) или да ги адресирате сите сензори во автобусот (“Прескокнете го ROM-от”).
1.4 Команда за функција:
Во зависност од саканата операција (како температура за читање), микроконтролерот испраќа одредена функционална команда до сензорот.
1.5 Пренос на податоци:
Податоците се пренесуваат бит-по-бит, при што сензорот ја повлекува линијата за податоци ниско за да испрати a ‘0’ и оставајќи ја линијата да оди високо за да испрати „1“.
2. Детално објаснување за протоколот за комуникација со 1-жица на DS18B20
Причината зошто сензорите DS18B20 се широко користени во голема мера се должи на неговиот уникатен протокол за комуникација – 1-Протокол за жична комуникација. Овој протокол ги поедноставува барањата за хардверски врски и обезбедува ефикасен начин за пренос на податоци. Ова поглавје длабоко ќе го анализира работниот механизам и процесот на размена на податоци на 1-линискиот комуникациски протокол за да постави цврста основа за последователна програмска пракса.
2.1 Основи на протоколот за комуникација со 1 жица
2.1.1 Карактеристики на протоколот за комуникација со 1 жица:
Се нарекува и DS18B20 1-Wire Communication Protocol “единечен автобус” технологија. Ги има следните карактеристики: – Единечна автобуска комуникација: За двонасочен пренос на податоци се користи само една податочна линија, што во голема мера ја намалува сложеноста на жици во споредба со традиционалниот метод на комуникација со повеќежичен сензор. – Поврзување со повеќе уреди: Поддржува поврзување на повеќе уреди на една магистрала за податоци, и идентификува и комуницира преку кодови за идентификација на уреди. – Ниска потрошувачка на енергија: За време на комуникацијата, уредот може да биде во состојба на подготвеност со мала моќност кога не учествува во комуникацијата. – Висока прецизност: Со пократко време за пренос на податоци, може да ги намали надворешните пречки и да ја подобри точноста на податоците.
2.1.2 Формат на податоци и анализа на тајмингот на 1-жица комуникација
Форматот на податоци на протоколот за комуникација со 1 жица следи одредено правило за тајминг. Вклучува време на иницијализација, пишувај тајминг и читај тајминг:
Време на иницијализација: Домаќинот прво го започнува времето за откривање присуство (Пулс на присуство) со влечење на автобусот одредено време, а сензорот потоа испраќа пулс на присуство како одговор.
Напишете го времето: Кога домаќинот испраќа тајминг за пишување, прво го спушта автобусот околу 1-15 микросекунди, потоа го ослободува автобусот, и сензорот го спушта автобусот внатре 60-120 микросекунди за да одговори.
Прочитајте го времето: Домаќинот го известува сензорот да испрати податоци со повлекување на автобусот и отпуштање, а сензорот по одредено доцнење ќе го издаде податочниот бит на магистралата.
2.2 Софтверска имплементација на комуникација на податоци
2.2.1 Иницијализација и ресетирање на 1-линиска комуникација
На софтверско ниво, иницијализација и ресетирање на 1-Wire комуникација е првиот чекор на комуникацијата. Следното е псевдо-кодот за спроведување на овој процес:
// Функција за иницијализација на комуникацијата OneWire
неважечки OneWire_Init() {
// Поставете ја магистралата во режим на внесување и овозможете го отпорникот за повлекување
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
// Почекајте автобусот да биде неактивен
ОдложувањеМикросекунди(1);
// Испратете ресетиран пулс
OneWire_Reset();
}
// Функција за ресетирање на комуникацијата OneWire
неважечки OneWire_Reset() {
// Повлечете го автобусот
SetPinMode(DS18B20_PIN, OUTPUT_LOW);
ОдложувањеМикросекунди(480);
// Ослободете го автобусот
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
ОдложувањеМикросекунди(70);
// Почекајте присуство на пулс
ако (!WaitForOneWirePresence())
// Не беше откриен пулс, можеби сензорот не е поврзан или иницијализацијата не успеа
Handle Error();
ОдложувањеМикросекунди(410);
}
// Чекајќи присуство на пулс
bool WaitForOneWirePresence() {
врати ReadPin(DS18B20_PIN) == 0; // Да претпоставиме дека ниското ниво е присуство на сигнал
}
2.2.2 Операции за читање и пишување податоци
Операциите за читање и пишување податоци се основниот дел од комуникацијата со сензорите. Следниот код покажува како да напишете бајт во едножична магистрала:
// Напишете бајт во едножична магистрала
неважечки OneWire_WriteByte(бајт податоци) {
за (int i = 0; јас < 8; јас++) {
OneWire_WriteBit(податоци & 0x01);
податоци >>= 1;
}
}
// Напишете малку во едножичен автобус
неважечки OneWire_WriteBit(бит податоци) {
SetPinMode(DS18B20_PIN, OUTPUT_LOW);
ако (податоци) {
// Ослободете го автобусот кога пишувате 1
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
ОдложувањеМикросекунди(1);
} друго {
// Продолжете да го влечете автобусот ниско кога пишувате 0
ОдложувањеМикросекунди(60);
}
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
ОдложувањеМикросекунди(1);
}
Следна е функцијата за читање бајт:
// Прочитајте бајт од едножичниот автобус
бајт OneWire_ReadByte() {
бајт податоци = 0;
за (int i = 0; јас < 8; јас++) {
податоци >>= 1;
ако (OneWire_ReadBit())
податоци |= 0x80;
}
врати податоци;
}
// Прочитајте малку од едножичниот автобус
бит OneWire_ReadBit() {
SetPinMode(DS18B20_PIN, OUTPUT_LOW);
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
ОдложувањеМикросекунди(3);
bool резултат = ReadPin(DS18B20_PIN);
ОдложувањеМикросекунди(57);
повратен резултат;
}
2.2.3 Механизам за верификација на OneWire комуникација
Протоколот за комуникација OneWire користи едноставен механизам за верификација во процесот на размена на податоци, обично со читање на пишаните податоци за да се потврди точноста на податоците. Следното е примерок код за проверка на напишаните податоци:
бајт податоци = 0x55; // Да претпоставиме дека податоците што треба да се испратат
OneWire_WriteByte(податоци); // Запишете податоци во магистралата OneWire
бајт readData = OneWire_ReadByte(); // Прочитајте ги податоците од автобусот OneWire
ако (прочитај Податоци != податоци) {
Handle Error(); // Ако податоците за читање не се совпаѓаат со запишаните податоци, се справи со грешката
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





