Innholdsfortegnelse:

Få serienummeret til en DS18B20 med en Arduino: 5 trinn
Få serienummeret til en DS18B20 med en Arduino: 5 trinn

Video: Få serienummeret til en DS18B20 med en Arduino: 5 trinn

Video: Få serienummeret til en DS18B20 med en Arduino: 5 trinn
Video: Lesson 12: Using Arduino Programming function and switch | SunFounder Robojax 2024, Juli
Anonim
Få serienummeret til en DS18B20 med en Arduino
Få serienummeret til en DS18B20 med en Arduino

Dette er en rask guide til hvordan du får de individuelle serienumrene til DS18B20 1-leders temperatursensorer.

Dette er praktisk for prosjekter som krever flere sensorer.

Ting du trenger:

  • Arduino 5v (UNO, Mega, Pro Mini etc) - Arduino UNO R3 - AliExpress
  • Temp Sensor DS18B20 - AliExpress - eBay
  • 4,7k - 1/4w motstand THT - AliExpress - eBay
  • Brødbrett - AliExpress - eBay
  • Jumper Wires - Mann til Mann - AliExpress - eBay
  • En datamaskin med Arduino IDE installert

Trinn 1: Legg til det nødvendige biblioteket i Arduino IDE

Legg til det nødvendige biblioteket i Arduino IDE
Legg til det nødvendige biblioteket i Arduino IDE
  1. Åpen Arduino IDE (jeg bruker 1.8.1)
  2. Klikk "Skisse" -> "Inkluder bibliotek" -> "Administrer biblioteker …"
  3. Velg søkefeltet og skriv "dallas"
  4. Klikk "DallasTemperature" og klikk "Installer"

Alternativt kan du laste ned biblioteket her:

Dette biblioteket inkluderer OnWire -biblioteket.

Trinn 2: Koble opp DS18B20

Koble opp DS18B20
Koble opp DS18B20
Koble opp DS18B20
Koble opp DS18B20

Ved hjelp av et brødbrett koble +5V, GND og Digital Pin 2 (Pin 2 er allerede angitt i eksempelskissen) fra Arduino ved å bruke Male til Male breadboard jumpers.

Koble DS18B20 parallelt med de 3x klemmelistene på brødbrettet.

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

For normal strømmodus, koble en 4,7K motstand fra +5V til Digital Pin 2 -ledningen på brødbrettet.

Følgende lenke er en flott ressurs for DS18B20 1-leders temperatursensor.

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

Trinn 3: Last inn eksempelskissen "Single"

Last inn eksempelskissen
Last inn eksempelskissen
Last inn eksempelskissen
Last inn eksempelskissen

Når du har koblet den til er du klar til å laste inn Dallas Temperature "Single" SketchOpen Arduino IDE (jeg bruker 1.8.1) Klikk "File" -> "Eksempler" -> "Dallas Temperature" -> "Single" la jeg til i forsinkelse (5000); på linje 103 for å gi meg tid til å kopiere serienummeret Velg riktig brettskjema "Verktøy" -> "Tavle" Velg riktig port "Verktøy" -> "Port" Nå "Last opp" Skissen "Skisse" -> "Last opp" Klikk "Verktøy" -> "Seriell skjerm", og kontroller at baudhastigheten samsvarer med min er 9600 Hvis du ikke lastet opp skissen, sjekk brettet, porten, USB -driverne etc.

Trinn 4: Kopier serienummeret

Kopier serienummeret
Kopier serienummeret
Kopier serienummeret
Kopier serienummeret

Fra "Serial Monitor" ser du den fjerde linjen "Device 0 Address: xxxxxxxxxxxxxxxx"

Dette er serienummeret til DS18B20

Hvis det er "0000000000000000", er det et problem med å lese DS18B20.

Marker den med musen, og trykk CTRL+C på tastaturet og deretter forbi den i Notisblokk

For mine andre prosjekter bruker koden min en rekke med disse tallene. Jeg formaterte HEX -strengen til følgende 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}};

Trinn 5: Ferdig

Ferdig
Ferdig

Nå kan du identifisere hver enkelt DS18B20 1-leder temperatursensor i koden din og bruke en funksjon som denne:

float getTemperature (byte j) {

sensors.requestTemperaturesByAddress (tempSensorSerial [j]);

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

retur tempC;

}

Anbefalt: