Innehållsförteckning:

Få serienumret på en DS18B20 med en Arduino: 5 steg
Få serienumret på en DS18B20 med en Arduino: 5 steg

Video: Få serienumret på en DS18B20 med en Arduino: 5 steg

Video: Få serienumret på en DS18B20 med en Arduino: 5 steg
Video: Как приумножить деньги, чтобы их становилось больше. 10 важных правил 2024, Juli
Anonim
Få serienumret på en DS18B20 med en Arduino
Få serienumret på en DS18B20 med en Arduino

Detta är en snabbguide om hur du får de individuella serienumren på dina DS18B20 1-trådiga temperaturgivare.

Detta är praktiskt för projekt som kräver flera sensorer.

Saker du behöver:

  • Arduino 5v (UNO, Mega, Pro Mini etc) - Arduino UNO R3 - AliExpress
  • Temp Sensor DS18B20 - AliExpress - eBay
  • 4,7k - 1/4w motstånd THT - AliExpress - eBay
  • Brödbräda - AliExpress - eBay
  • Jumper Wires - Man till Man - AliExpress - eBay
  • En dator med Arduino IDE installerat

Steg 1: Lägg till det obligatoriska biblioteket i Arduino IDE

Lägg till det obligatoriska biblioteket i Arduino IDE
Lägg till det obligatoriska biblioteket i Arduino IDE
  1. Öppna Arduino IDE (jag använder 1.8.1)
  2. Klicka på "Skiss" -> "Inkludera bibliotek" -> "Hantera bibliotek …"
  3. Välj sökfältet och skriv "dallas"
  4. Klicka på "DallasTemperature" och klicka på "Installera"

Alternativt kan du ladda ner biblioteket härifrån:

Detta bibliotek innehåller OnWire -biblioteket.

Steg 2: Anslut DS18B20

Anslut DS18B20
Anslut DS18B20
Anslut DS18B20
Anslut DS18B20

Använd ett brödbräda för att ansluta +5V, GND och Digital Pin 2 (Pin 2 är redan angiven i exempelskissen) från Arduino med manliga till manliga paneler.

Anslut DS18B20 parallellt med de 3x anslutningsremsorna på brödbrädet.

  • Pin 1 (GND) -> GND (Ground 0V)
  • Pin 2 (DATA) -> Digital Pin 2
  • Stift 3 (Vdd) -> +5V

För normalt strömläge ansluter du ett 4,7K motstånd från +5V till Digital Pin 2 -kabel på brödbrädet.

Följande länk är en bra resurs för DS18B20 1-tråds temperaturgivare.

www.tweaking4all.com/hardware/arduino/ardu…

Steg 3: Ladda exempelskissen "Single"

Ladda exempelskissen
Ladda exempelskissen
Ladda exempelskissen
Ladda exempelskissen

När du har kopplat upp den är du redo att ladda Dallas Temperature "Single" SketchOpen Arduino IDE (jag använder 1.8.1) Klicka på "File" -> "Exempel" -> "Dallas Temperature" -> "Single" lade jag till i fördröjning (5000); på rad 103 för att ge mig tid att kopiera serienumret Välj lämpligt kortformulär "Verktyg" -> "Tavla" Välj lämplig port "Verktyg" -> "Port" Nu "Ladda upp" Skissen "Skiss" -> "Ladda upp" Klicka på "Verktyg" -> "Seriell bildskärm" och se till att överföringshastigheterna matchar mina är 9600. Om du inte lade upp skissen, kontrollera ditt kort, port, USB -drivrutiner etc.

Steg 4: Kopiera serienumret

Kopiera serienumret
Kopiera serienumret
Kopiera serienumret
Kopiera serienumret

Från "Serial Monitor" ser du den fjärde raden "Device 0 Address: xxxxxxxxxxxxxxxx"

Detta är serienumret för DS18B20

Om det är "0000000000000000" finns det ett problem när du läser din DS18B20.

Markera den med musen och tryck på CTRL+C på tangentbordet och sedan förbi den i Anteckningar

För mina andra projekt använder min kod en rad av dessa nummer. Jag formaterade om HEX -strängen till följande format.

DeviceAddress tempSensorSerial [9] = {

{0x28, 0xFF, 0x07, 0xA6, 0x70, 0x17, 0x04, 0xB5}, {0x28, 0xFF, 0xB2, 0xA6, 0x70, 0x17, 0x04, 0x28}, {0x28, 0xFF, 0x42, 0x98, 0x70, 0x07, 0xD3}, {0x28, 0xFF, 0x86, 0xA8, 0x70, 0x17, 0x04, 0xA6}, {0x28, 0xFF, 0x2B, 0x65, 0x71, 0x17, 0x04, 0x76}, {0x28, 0xFF, 0x66, 0x62,, 0x17, 0x04, 0xF5}, {0x28, 0xFF, 0xD9, 0x9B, 0x70, 0x17, 0x04, 0x9C}, {0x28, 0xFF, 0x98, 0x6A, 0x71, 0x17, 0x04, 0xED}, {0x28, 0x,, 0x42, 0x71, 0x17, 0x04, 0x4C}};

Steg 5: Avslutad

Färdiga
Färdiga

Nu kan du identifiera varje enskild DS18B20 1-tråds temperaturgivare i din kod och använda en funktion som denna:

float getTemperature (byte j) {

sensors.requestTemperaturesByAddress (tempSensorSerial [j]);

float tempC = sensorer.getTempC (tempSensorSerial [j]);

returtempC;

}

Rekommenderad: