Sadržaj:

Dobijte serijski broj DS18B20 s Arduinom: 5 koraka
Dobijte serijski broj DS18B20 s Arduinom: 5 koraka

Video: Dobijte serijski broj DS18B20 s Arduinom: 5 koraka

Video: Dobijte serijski broj DS18B20 s Arduinom: 5 koraka
Video: Lesson 12: Using Arduino Programming function and switch | SunFounder Robojax 2024, Studeni
Anonim
Nabavite serijski broj DS18B20 s Arduinom
Nabavite serijski broj DS18B20 s Arduinom

Ovo je brzi vodič o tome kako dobiti pojedinačne serijske brojeve vaših 1-žičnih temperaturnih senzora DS18B20.

Ovo je zgodno za projekte koji zahtijevaju više senzora.

Stvari koje su vam potrebne:

  • Arduino 5v (UNO, Mega, Pro Mini itd.) - Arduino UNO R3 - AliExpress - eBay
  • Senzor temperature DS18B20 - AliExpress - eBay
  • 4.7k - 1/4w otpornik THT - AliExpress - eBay
  • Breadboard - AliExpress - eBay
  • Žice za kratkospojnike - muški na muški - AliExpress - eBay
  • Računalo s instaliranim Arduino IDE -om

Korak 1: Dodajte potrebnu knjižnicu u Arduino IDE

Dodajte potrebnu knjižnicu u Arduino IDE
Dodajte potrebnu knjižnicu u Arduino IDE
  1. Otvorite Arduino IDE (koristim 1.8.1)
  2. Kliknite "Sketch" -> "Include Library" -> "Manage Libraries …"
  3. Odaberite traku za pretraživanje i upišite "dallas"
  4. Pritisnite "DallasTemperature" i kliknite "Install"

Alternativno, biblioteku možete preuzeti odavde:

Ova knjižnica uključuje biblioteku OnWire.

Korak 2: Povežite DS18B20

Ožičite DS18B20
Ožičite DS18B20
Ožičite DS18B20
Ožičite DS18B20

Pomoću ploče za kruh spojite +5V, GND i digitalni pin 2 (pin 2 je već postavljen na primjeru skice) s Arduina pomoću kratkospojnika za mušku ploču za muške.

Spojite DS18B20 paralelno s 3x priključnim letvicama na ploči.

  • Pin 1 (GND) -> GND (uzemljenje 0V)
  • Pin 2 (DATA) -> Digitalni pin 2
  • Pin 3 (Vdd) -> +5V

Za normalni način napajanja spojite 4.7K otpornik od +5V na žicu Digital Pin 2 na ploči s osnovom.

Sljedeća veza odličan je izvor za jednožilni temperaturni osjetnik DS18B20.

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

Korak 3: Učitajte primjer skice "Pojedinačno"

Učitajte primjer skice
Učitajte primjer skice
Učitajte primjer skice
Učitajte primjer skice

Nakon što ste ga povezali, spremni ste za učitavanje Dallas Temperature "Single" SketchOpen Arduino IDE -a (koristim 1.8.1) Kliknite "File" -> "Primjeri" -> "Dallas Temperature" -> "Single" dodao sam u kašnjenju (5000); na liniji 103 da biste mi dali vremena za kopiranje serijskog brojaOdaberite odgovarajući obrazac na ploči "Alati" -> "Ploča" Odaberite odgovarajući port "Alati" -> "Luka" Sada "Prenesi" Skicu "Sketch" -> "Upload" Kliknite "Alati" -> "Serijski monitor" i provjerite odgovaraju li brzine prijenosa moje 9600Ako niste skicirali skicu, provjerite svoju ploču, port, USB upravljačke programe itd.

Korak 4: Kopirajte serijski broj

Kopirajte serijski broj
Kopirajte serijski broj
Kopirajte serijski broj
Kopirajte serijski broj

Iz "Serijskog monitora" vidjet ćete četvrti redak "Device 0 Address: xxxxxxxxxxxxxxx"

Ovo je serijski broj DS18B20

Ako je "0000000000000000", onda postoji problem pri čitanju vašeg DS18B20.

Označite ga mišem i pritisnite CTRL+C na tipkovnici, a zatim ga prođite u bilježnici

Za moje druge projekte moj kôd koristi niz ovih brojeva. Preformatirao sam HEX niz u sljedeći format.

Adresa uređaja tempSensorSerial [9] = {

{0x28, 0xFF, 0x07, 0xA6, 0x70, 0x17, 0x04, 0xB5}, {0x28, 0xFF, 0xB2, 0xA6, 0x70, 0x17, 0x04, 0x28}, {0x28, 0xFF, 0x42, 0x98, 0x70, 0x42, 0x04, 0x70, 0x42, 0x04, 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, 0xF,, 0x42, 0x71, 0x17, 0x04, 0x4C}};

Korak 5: Završeno

Završeno
Završeno

Sada možete identificirati svaki pojedinačni 1-žični temperaturni osjetnik DS18B20 u svom kodu i koristiti funkciju poput ove:

float getTemperature (bajt j) {

sensors.requestTemperaturesByAddress (tempSensorSerial [j]);

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

povratna tempC;

}

Preporučeni: