Inhoudsopgave:

Het serienummer van een DS18B20 verkrijgen met een Arduino: 5 stappen
Het serienummer van een DS18B20 verkrijgen met een Arduino: 5 stappen

Video: Het serienummer van een DS18B20 verkrijgen met een Arduino: 5 stappen

Video: Het serienummer van een DS18B20 verkrijgen met een Arduino: 5 stappen
Video: Controleer de snelheid van de motor met temperatuur met behulp van DHT11, DHT22 en L298N 2024, November
Anonim
Krijg het serienummer van een DS18B20 met een Arduino
Krijg het serienummer van een DS18B20 met een Arduino

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

Voeg de vereiste bibliotheek toe aan Arduino IDE
Voeg de vereiste bibliotheek toe aan Arduino IDE
  1. Open Arduino IDE (ik gebruik 1.8.1)
  2. Klik op "Schetsen" -> "Bibliotheek opnemen" -> "Bibliotheken beheren…"
  3. Selecteer de zoekbalk en typ "dallas"
  4. 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

Sluit de DS18B20 aan
Sluit de DS18B20 aan
Sluit de DS18B20 aan
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"

Laad de voorbeeldschets
Laad de voorbeeldschets
Laad de voorbeeldschets
Laad de voorbeeldschets

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

Kopieer het serienummer
Kopieer het serienummer
Kopieer het serienummer
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

Afgewerkt
Afgewerkt

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;

}

Aanbevolen: