Vi erbjuder ett brett utbud av de bästa 1-Wire DS18B20-sensorkontakterna, inklusive Nanoflex, DisplayPort, USB, Sol, SATA, HDMI, DET ÄR IDÉ, SAS & många fler. Alla kablar är tillverkade enligt de högsta industristandarderna. Genom att använda Sensor Circuit Assembly för boxbyggen kan du fokusera på din design och marknadsföring, minska kostnaderna, och skörda frukterna av våra löpande band, QA-processer, och tillverkningsexpertis.
DS18B20-sensorn kommunicerar med hjälp av “1-Tråd” protokoll, vilket innebär att den använder en enda datalinje för all kommunikation med en mikrokontroller, gör att flera sensorer kan anslutas på samma linje och identifieras med deras unika 64-bitars seriella kod; denna enda datalinje dras högt med ett motstånd och sensorn sänder data genom att dra linjen lågt under specifika tidsluckor för att skicka informationsbitar.
DS18B20 temperaturgivare: Den vattentäta sonden DS18B20 är designad för användning under vatten, kan arbeta i våta eller fuktiga miljöer utan att skadas av vatten eller fukt.
Temperaturgivarens matningsspänning: 3.0V ~ 5,25V;
Drifttemperaturområde:-55 ℃ till +125 ℃ (-67 ℉ till +257 ℉);
Ger temperaturmätningar från 9-bitars till 12-bitars Celsius;
Adaptermodulen är utrustad med ett pull-up-motstånd, och ansluter direkt till GPIO på Raspberry Pi utan ett externt motstånd;
Använd denna adaptermodulsats för att förenkla anslutningen av den vattentäta temperatursensorn till ditt projekt.
1. Viktiga punkter om 1-Wire-protokollet:
Enkel datalinje:
Endast en tråd behövs för kommunikation mellan sensorn och mikrokontrollern.
Halvduplex kommunikation:
Data kan skickas åt båda hållen, men bara en riktning åt gången.
Parasitkraft:
DS18B20 kan drivas direkt från datalinjen under kommunikation, eliminerar behovet av en separat strömförsörjning i vissa fall.
Unika enhetsadresser:
Varje DS18B20-sensor har en unik 64-bitars seriell kod som gör att mikrokontrollern kan identifiera och adressera enskilda sensorer på bussen.
Kommunikationssteg med en DS18B20:
1.1 Återställ puls:
Mikrokontrollern initierar kommunikation genom att dra ned datalinjen under en viss tid (återställ pulsen).
1.2 Närvaropuls:
Om en DS18B20 finns på bussen, den kommer att svara med en kort puls, indikerar dess närvaro.
1.3 Romkommando:
Mikrokontrollern skickar ett ROM-kommando för att antingen läsa den unika 64-bitarskoden för en specifik sensor (“Matcha rom”) eller för att adressera alla sensorer på bussen (“Skeppsrum”).
1.4 Funktionskommando:
Beroende på önskad operation (som att läsa temperaturen), mikrokontrollern skickar ett specifikt funktionskommando till sensorn.
1.5 Dataöverföring:
Data överförs bit för bit, med sensorn som drar ned datalinjen för att skicka en ‘0’ och låta linjen gå högt för att skicka en "1".
2. Detaljerad förklaring av DS18B20:s 1-trådskommunikationsprotokoll
Anledningen till att DS18B20-sensorer används i stor utsträckning beror till stor del på dess unika kommunikationsprotokoll – 1-Trådkommunikationsprotokoll. Detta protokoll förenklar kraven för hårdvaruanslutningar och ger ett effektivt sätt att överföra data. Detta kapitel kommer att på djupet analysera arbetsmekanismen och datautbytesprocessen för 1-linjes kommunikationsprotokoll för att lägga en solid grund för efterföljande programmeringsövningar.
2.1 Grunderna i 1-Wire Communication Protocol
2.1.1 Funktioner i 1-trådskommunikationsprotokoll:
DS18B20 1-Wire Communication Protocol kallas också “enkel buss” teknologi. Den har följande funktioner: – Enkel busskommunikation: Endast en datalinje används för dubbelriktad dataöverföring, vilket avsevärt minskar komplexiteten i kabeldragningen jämfört med den traditionella flertrådssensorkommunikationsmetoden. – Anslutning till flera enheter: Stöder anslutning av flera enheter på en databuss, och identifierar och kommunicerar genom enhetsidentifikationskoder. – Låg strömförbrukning: Under kommunikation, enheten kan vara i ett standbyläge med låg effekt när den inte deltar i kommunikationen. – Hög precision: Med kortare dataöverföringstid, det kan minska externa störningar och förbättra datanoggrannheten.
2.1.2 Dataformat och tidsanalys av 1-trådskommunikation
Dataformatet för 1-trådskommunikationsprotokollet följer en specifik tidsregel. Det inkluderar initialiseringstid, skriv timing och läs timing:
Initialiseringstidpunkt: Värden startar först närvarodetekteringen (Närvaropuls) genom att dra ner bussen under en viss tid, och sensorn sänder sedan en närvaropuls som svar.
Skriv timing: När värden skickar en skrivtid, den drar först ner bussen i ungefär 1-15 mikrosekunder, släpper sedan bussen, och sensorn drar ner bussen in 60-120 mikrosekunder att svara.
Läs timing: Värden meddelar sensorn att skicka data genom att dra ner bussen och släppa den, och sensorn kommer att mata ut databiten på bussen efter en viss fördröjning.
2.2 Mjukvaruimplementering av datakommunikation
2.2.1 Initiering och återställning av 1-linjes kommunikation
På mjukvarunivå, initiering och återställning av 1-trådskommunikation är det första steget i kommunikationen. Följande är pseudokoden för att implementera denna process:
// OneWire-kommunikationsinitieringsfunktion
ogiltig OneWire_Init() {
// Ställ in bussen i ingångsläge och aktivera pull-up-motståndet
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
// Vänta tills bussen är ledig
Fördröj mikrosekunder(1);
// Skicka en återställningspuls
OneWire_Reset();
}
// OneWire-kommunikationsåterställningsfunktion
ogiltig OneWire_Reset() {
// Dra ner bussen
SetPinMode(DS18B20_PIN, OUTPUT_LOW);
Fördröj mikrosekunder(480);
// Släpp bussen
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
Fördröj mikrosekunder(70);
// Vänta på närvaron av en puls
om (!WaitForOneWirePresence())
// Ingen puls upptäcktes, kanske sensorn inte är ansluten eller så misslyckades initieringen
HandleError();
Fördröj mikrosekunder(410);
}
// Väntar på närvaron av en puls
bool WaitForOneWirePresence() {
returnera ReadPin(DS18B20_PIN) == 0; // Antag att låg nivå är en signalnärvaro
}
2.2.2 Dataläs- och skrivoperationer
Dataavläsning och skrivning är kärnan i sensorkommunikation. Följande kod visar hur man skriver en byte till en entrådsbuss:
// Skriv en byte till en entrådsbuss
ogiltig OneWire_WriteByte(byte data) {
för (int i = 0; i < 8; i++) {
OneWire_WriteBit(data & 0x01);
data >>= 1;
}
}
// Skriv lite till en entrådsbuss
ogiltig OneWire_WriteBit(bitdata) {
SetPinMode(DS18B20_PIN, OUTPUT_LOW);
om (data) {
// Släpp bussen när du skriver 1
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
Fördröj mikrosekunder(1);
} annan {
// Fortsätt att dra bussen lågt när du skriver 0
Fördröj mikrosekunder(60);
}
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
Fördröj mikrosekunder(1);
}
Nästa är funktionen för att läsa en byte:
// Läs en byte från entrådsbussen
byte OneWire_ReadByte() {
byte data = 0;
för (int i = 0; i < 8; i++) {
data >>= 1;
om (OneWire_ReadBit())
data |= 0x80;
}
returnera data;
}
// Läste lite från entrådsbussen
bit OneWire_ReadBit() {
SetPinMode(DS18B20_PIN, OUTPUT_LOW);
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
Fördröj mikrosekunder(3);
bool resultat = ReadPin(DS18B20_PIN);
Fördröj mikrosekunder(57);
returnera resultatet;
}
2.2.3 Verifieringsmekanism för OneWire-kommunikation
OneWire-kommunikationsprotokollet använder en enkel verifieringsmekanism i datautbytesprocessen, vanligtvis genom att läsa tillbaka de skrivna uppgifterna för att verifiera uppgifternas riktighet. Följande är en exempelkod för att verifiera de skrivna uppgifterna:
bytedata = 0x55; // Antag att de uppgifter som ska skickas
OneWire_WriteByte(data); // Skriv data till OneWire-bussen
byte readData = OneWire_ReadByte(); // Läs tillbaka data från OneWire-bussen
om (readData != data) {
HandleError(); // Om återläsningsdata inte stämmer överens med skrivna data, hantera felet
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





