Technologie van temperatuursensoren

Aangepaste DS18B20-sensorsonde & 1-Draadkabelmontage

DS18B20 temperatuursensor 1-draads waterdichte kabel + adapterbord set

Wij bieden een ruim assortiment van de beste 1-Wire DS18B20 sensorconnectoren, inclusief Nanoflex, DisplayPort, USB, Zonne, SATA, HDMI, DAT IS IDEE, SAS & nog veel meer. Alle kabels worden vervaardigd volgens de hoogste industrienormen. Door Sensor Circuit Assembly te gebruiken voor het bouwen van dozen, kunt u zich concentreren op uw ontwerp en marketing, kosten verlagen, en profiteer van de voordelen van onze assemblagelijnen, QA-processen, en productie-expertise.

De DS18B20-sensor communiceert via de “1-Draad” protocol, wat betekent dat het één enkele datalijn gebruikt voor alle communicatie met een microcontroller, waardoor meerdere sensoren op dezelfde lijn kunnen worden aangesloten en kunnen worden geïdentificeerd door hun unieke 64-bits seriële code; deze enkele datalijn wordt hoog getrokken met een weerstand en de sensor verzendt gegevens door de lijn laag te trekken tijdens specifieke tijdslots om stukjes informatie te verzenden.

DS18B20 Temperatuursensor: De waterdichte sonde DS18B20 is ontworpen voor gebruik onder water, geschikt voor gebruik in natte of vochtige omgevingen zonder te worden beschadigd door water of vocht.
Voedingsspanning temperatuursensor: 3.0V ~ 5,25 V;
Bedrijfstemperatuurbereik:-55 ℃ tot +125 ℃ (-67 ℉ naar +257 ℉);
Biedt 9-bits tot 12-bits Celsius-temperatuurmetingen;
Adaptermodule is uitgerust met een pull-up-weerstand, en maakt rechtstreeks verbinding met de GPIO van de Raspberry Pi zonder externe weerstand;
Gebruik deze adaptermodulekit om het aansluiten van de waterdichte temperatuursensor op uw project te vereenvoudigen.

DS18B20 digitale temperatuursensorsonde & XH2.54 tot PH2.0-module

DS18B20 digitale temperatuursensorsonde & XH2.54 tot PH2.0-module

Door China gemaakte DS18B20-chiptemperatuuracquisitie TO-92 temperatuursensor

Door China gemaakte DS18B20-chiptemperatuuracquisitie TO-92 temperatuursensor

DS18B20 temperatuursensor 1-draads waterdichte kabel + adapterbord set

DS18B20 temperatuursensor 1-draads waterdichte kabel + adapterbord set

1. Belangrijkste punten over het 1-Wire-protocol:
Enkele datalijn:
Er is slechts één draad nodig voor de communicatie tussen de sensor en de microcontroller.
Half-duplex communicatie:
Gegevens kunnen in beide richtingen worden verzonden, maar slechts één richting tegelijk.
Parasitaire kracht:
De DS18B20 kan tijdens de communicatie rechtstreeks vanaf de datalijn worden gevoed, waardoor in sommige gevallen de noodzaak van een aparte stroomvoorziening wordt geëlimineerd.
Unieke apparaatadressen:
Elke DS18B20-sensor heeft een unieke 64-bits seriële code waarmee de microcontroller individuele sensoren op de bus kan identificeren en adresseren.
Communicatiestappen met een DS18B20:
1.1 Puls opnieuw instellen:
De microcontroller initieert de communicatie door de datalijn gedurende een bepaalde tijd laag te zetten (reset puls).
1.2 Aanwezigheidsimpuls:
Als er een DS18B20 op de bus aanwezig is, het zal reageren met een korte puls, wat de aanwezigheid ervan aangeeft.
1.3 ROM-opdracht:
De microcontroller verzendt een ROM-commando om de unieke 64-bits code van een specifieke sensor te lezen (“Match-ROM”) of om alle sensoren op de bus te adresseren (“Schipkamer”).
1.4 Functie commando:
Afhankelijk van de gewenste werking (zoals het aflezen van de temperatuur), de microcontroller stuurt een specifiek functiecommando naar de sensor.
1.5 Gegevensoverdracht:
Gegevens worden bit voor bit verzonden, waarbij de sensor de datalijn laag trekt om een ‘0’ en de lijn hoog laten gaan om een ​​‘1’ te sturen.

2. Gedetailleerde uitleg van het 1-Wire-communicatieprotocol van de DS18B20
De reden waarom DS18B20-sensoren op grote schaal worden gebruikt, is grotendeels te danken aan het unieke communicatieprotocol – 1-Draadcommunicatieprotocol. Dit protocol vereenvoudigt de vereisten voor hardwareverbindingen en biedt een efficiënte manier om gegevens te verzenden. In dit hoofdstuk wordt het werkingsmechanisme en het gegevensuitwisselingsproces van het 1-lijnscommunicatieprotocol diepgaand geanalyseerd om een ​​solide basis te leggen voor de daaropvolgende programmeerpraktijk..
2.1 Basisprincipes van het 1-draads communicatieprotocol
2.1.1 Kenmerken van het 1-Wire-communicatieprotocol:
DS18B20 1-Wire-communicatieprotocol wordt ook wel genoemd “enkele bus” technologie. Het heeft de volgende kenmerken: – Communicatie via één bus: Voor bidirectionele datatransmissie wordt slechts één datalijn gebruikt, waardoor de complexiteit van de bedrading aanzienlijk wordt verminderd in vergelijking met de traditionele meerdraads sensorcommunicatiemethode. – Verbinding met meerdere apparaten: Ondersteunt het aansluiten van meerdere apparaten op één databus, en identificeert en communiceert via apparaatidentificatiecodes. – Laag stroomverbruik: Tijdens de communicatie, het apparaat kan zich in een energiezuinige stand-bymodus bevinden wanneer het niet deelneemt aan de communicatie. – Hoge precisie: Met een kortere datatransmissietijd, het kan externe interferentie verminderen en de nauwkeurigheid van de gegevens verbeteren.
2.1.2 Gegevensformaat en timinganalyse van 1-draads communicatie
Het gegevensformaat van het 1-draads communicatieprotocol volgt een specifieke timingregel. Het omvat de timing van de initialisatie, schrijftiming en leestiming:
Initialisatietiming: De host start eerst de timing van de aanwezigheidsdetectie (Aanwezigheidspuls) door de bus een bepaalde tijd stil te zetten, en de sensor verzendt als reactie daarop een aanwezigheidsimpuls.
Schrijf timing: Wanneer de host een schrijftiming verzendt, het trekt eerst de bus ongeveer naar beneden 1-15 microseconden, laat vervolgens de bus los, en de sensor trekt de bus naar binnen 60-120 microseconden om te reageren.
Lees timing: De host waarschuwt de sensor om gegevens te verzenden door de bus naar beneden te trekken en los te laten, en de sensor zal het databit na een bepaalde vertraging op de bus uitvoeren.

Analoge apparaten DS18B20+, MAXIM programmeerbare resolutie 1-draads digitale thermometer

Analoge apparaten DS18B20+, MAXIM programmeerbare resolutie 1-draads digitale thermometer

DS18B20 12-bits 1-draads digitale temperatuursensor met 1 Meterkabel

DS18B20 12-bits 1-draads digitale temperatuursensor met 1 Meterkabel

DS18B20-sensorsonde speciaal voor het verzamelen van temperatuur en vochtigheid in koelketens

DS18B20-sensorsonde speciaal voor het verzamelen van temperatuur en vochtigheid in koelketens

2.2 Software-implementatie van datacommunicatie
2.2.1 Initialisatie en reset van 1-lijnscommunicatie
Op softwareniveau, initialisatie en reset van 1-Wire-communicatie is de eerste stap van communicatie. Het volgende is de pseudocode om dit proces te implementeren:

// Initialisatiefunctie voor OneWire-communicatie
ongeldig OneWire_Init() {
// Zet de bus in de ingangsmodus en schakel de pull-up-weerstand in
Stel PinMode in(DS18B20_PIN, INPUT_PULLUP);
// Wacht tot de bus stilstaat
VertragingMicroseconden(1);
// Stuur een resetpuls
OneWire_Reset();
}

// OneWire-communicatie-resetfunctie
ongeldig OneWire_Reset() {
// Trek de bus naar beneden
Stel PinMode in(DS18B20_PIN, OUTPUT_LOW);
VertragingMicroseconden(480);
// Laat de bus los
Stel PinMode in(DS18B20_PIN, INPUT_PULLUP);
VertragingMicroseconden(70);
// Wacht op de aanwezigheid van een polsslag
als (!Wacht op OneWirePresence())
// Er werd geen polsslag gedetecteerd, misschien is de sensor niet aangesloten of is de initialisatie mislukt
HandleFout();
VertragingMicroseconden(410);
}

// Wachten op de aanwezigheid van een polsslag
bool WaitForOneWirePresence() {
ReadPin retourneren(DS18B20_PIN) == 0; // Neem aan dat een laag niveau een signaalaanwezigheid is
}

2.2.2 Gegevens lezen en schrijven

Het lezen en schrijven van gegevens vormt het kernonderdeel van sensorcommunicatie. De volgende code laat zien hoe u een byte naar een eendraadsbus schrijft:
// Schrijf een byte naar een eendraadsbus
ongeldig OneWire_WriteByte(bytegegevens) {
voor (int ik = 0; i < 8; I ++) {
OneWire_WriteBit(gegevens & 0X01);
gegevens >>= 1;
}
}

// Schrijf een stukje naar een eendraadsbus
ongeldig OneWire_WriteBit(bitgegevens) {
Stel PinMode in(DS18B20_PIN, OUTPUT_LOW);
als (gegevens) {
// Laat de bus los tijdens het schrijven 1
Stel PinMode in(DS18B20_PIN, INPUT_PULLUP);
VertragingMicroseconden(1);
} anders {
// Blijf de bus laag trekken tijdens het schrijven 0
VertragingMicroseconden(60);
}
Stel PinMode in(DS18B20_PIN, INPUT_PULLUP);
VertragingMicroseconden(1);
}

Vervolgens is er de functie om een ​​byte te lezen:
// Lees een byte uit de eendraadsbus
byte OneWire_ReadByte() {
bytegegevens = 0;
voor (int ik = 0; i < 8; I ++) {
gegevens >>= 1;
als (OneWire_ReadBit())
gegevens |= 0x80;
}
Retourgegevens;
}

// Lees een stukje uit de eendraadsbus
bit OneWire_ReadBit() {
Stel PinMode in(DS18B20_PIN, OUTPUT_LOW);
Stel PinMode in(DS18B20_PIN, INPUT_PULLUP);
VertragingMicroseconden(3);
bool resultaat = ReadPin(DS18B20_PIN);
VertragingMicroseconden(57);
resultaat terug;
}

2.2.3 Verificatiemechanisme van OneWire-communicatie

Het OneWire-communicatieprotocol maakt gebruik van een eenvoudig verificatiemechanisme in het gegevensuitwisselingsproces, meestal door de geschreven gegevens terug te lezen om de juistheid van de gegevens te verifiëren. Het volgende is een voorbeeldcode voor het verifiëren van de geschreven gegevens:

bytegegevens = 0x55; // Stel dat de gegevens moeten worden verzonden

OneWire_WriteByte(gegevens); // Gegevens naar de OneWire-bus schrijven

byte readData = OneWire_ReadByte(); // Gegevens teruglezen van de OneWire-bus

als (leesGegevens != gegevens) {
HandleFout(); // Als de teruggelezen gegevens niet overeenkomen met de geschreven gegevens, de fout afhandelen