Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Dit is een korte handleiding voor het verkrijgen van de individuele serienummers van uw DS18B20 1-draads temperatuursensoren.
Dit is handig voor projecten waarbij meerdere sensoren nodig zijn.
Dingen die je nodig hebt:
- Arduino 5v (UNO, Mega, Pro Mini enz.) - Arduino UNO R3 - AliExpress
- Temperatuursensor DS18B20 - AliExpress - eBay
- 4.7k - 1/4w Weerstand THT - AliExpress - eBay
- Breadboard - AliExpress - eBay
- Jumperdraden - Man naar Man - AliExpress - eBay
- Een computer waarop Arduino IDE is geïnstalleerd
Stap 1: voeg de vereiste bibliotheek toe aan Arduino IDE
- Open Arduino IDE (ik gebruik 1.8.1)
- Klik op "Schetsen" -> "Bibliotheek opnemen" -> "Bibliotheken beheren…"
- Selecteer de zoekbalk en typ "dallas"
- Klik op "DallasTemperature" en klik op "Installeren"
Als alternatief kunt u de bibliotheek hier downloaden:
Deze bibliotheek omvat de OnWire-bibliotheek.
Stap 2: Sluit de DS18B20 aan
Gebruik een breadboard om +5V, GND en Digital Pin 2 (Pin 2 is al ingesteld in de voorbeeldschets) vanaf de Arduino aan te sluiten met behulp van Male naar Male breadboard-jumpers.
Sluit de DS18B20 parallel aan op de 3x klemmenstroken op het breadboard.
- Pin 1 (GND) -> GND (aarde 0V)
- Pin 2 (DATA) -> Digitale Pin 2
- Pin 3 (Vdd) -> +5V
Sluit voor de normale stroommodus een weerstand van 4,7K van +5V aan op de digitale pin 2-draad op het breadboard.
De volgende link is een geweldige bron voor de DS18B20 1-draads temperatuursensor.
www.tweaking4all.com/hardware/arduino/ardu…
Stap 3: Laad de voorbeeldschets "Single"
Zodra je het hebt aangesloten, ben je klaar om de Dallas Temperature "Single" SketchOpen Arduino IDE te laden (ik gebruik 1.8.1) Klik op "File" -> "Voorbeelden" -> "Dallas Temperature" -> "Single" Ik heb toegevoegd met vertraging (5000); op regel 103 om me tijd te geven om het serienummer te kopiërenSelecteer het juiste bordformulier "Tools" -> "Board" Selecteer de juiste poort "Tools" -> "Port" "Upload" nu de Sketch "Sketch" -> "Upload" Klik op "Extra" -> "Seriële monitor" zorg ervoor dat de baudrates overeenkomen met de mijne is 9600. Als je schets niet is geüpload, controleer dan je bord, poort, USB-stuurprogramma's enz.
Stap 4: Kopieer het serienummer
Vanuit de "Serial Monitor" ziet u dat de 4e regel "Device 0 Address: xxxxxxxxxxxxxxxxxx" is
Dit is het serienummer van de DS18B20
Als het "000000000000000000" is, is er een probleem met het lezen van uw DS18B20.
Markeer het met je muis en druk op CTRL+C op je toetsenbord en plak het dan in Kladblok
Voor mijn andere projecten gebruikt mijn code een array van deze nummers. Ik heb de HEX-tekenreeks opnieuw geformatteerd naar het volgende formaat.
DeviceAddress tempSensorSerial[9]= {
{0x28, 0xFF, 0x07, 0xA6, 0x70, 0x17, 0x04, 0xB5}, {0x28, 0xFF, 0xB2, 0xA6, 0x70, 0x17, 0x04, 0x28}, {0x28, 0xFF, 0x42, 0x98, 0x7004, 0x17, 0x7004, 0xD3}, {0x28, 0xFF, 0x86, 0xA8, 0x70, 0x17, 0x04, 0xA6}, {0x28, 0xFF, 0x2B, 0x65, 0x71, 0x17, 0x04, 0x76}, {0x28, 0xFF, 0x66, 0x62, 0x66, 0x62,, 0x17, 0x04, 0xF5}, {0x28, 0xFF, 0xD9, 0x9B, 0x70, 0x17, 0x04, 0x9C}, {0x28, 0xFF, 0x98, 0x6A, 0x71, 0x17, 0x04, 0xED}, {0x2899, 0xFF, 0x2899, 0xFF, 0x2899, 0x42, 0x71, 0x17, 0x04, 0x4C} };
Stap 5: Voltooid
Nu kunt u elke afzonderlijke DS18B20 1-draads temperatuursensor in uw code identificeren en een functie als deze gebruiken:
float getTemperature(byte j){
sensors.requestTemperaturesByAddress(tempSensorSerial[j]);
float tempC = sensors.getTempC(tempSensorSerial[j]);
retourtempC;
}