Sadržaj:

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

Video: Nabavite serijski broj DS18B20 s Arduinom: 5 koraka

Video: Nabavite serijski broj DS18B20 s Arduinom: 5 koraka
Video: FLProg10: датчик температуры DS18B20 | ESP32 NodeMCU | Визуальное программирование для Arduino 2024, Novembar
Anonim
Nabavite serijski broj DS18B20 s Arduinom
Nabavite serijski broj DS18B20 s Arduinom

Ovo je kratki 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 kratkospojnika - muško - muško - AliExpress - eBay
  • Računar sa instaliranim Arduino IDE -om

Korak 1: Dodajte potrebnu biblioteku u Arduino IDE

Dodajte potrebnu biblioteku u Arduino IDE
Dodajte potrebnu biblioteku 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. Kliknite "DallasTemperature" i kliknite "Install"

Alternativno, možete preuzeti biblioteku ovdje:

Ova biblioteka uključuje biblioteku OnWire.

Korak 2: Povežite DS18B20

Povežite DS18B20
Povežite DS18B20
Povežite DS18B20
Povež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 koristeći kratkospojnike za mušku ploču za muške.

Spojite DS18B20 paralelno na 3x priključne trake na matičnoj 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 matičnoj ploči.

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 ga povežete, spremni ste za učitavanje Dallas temperature "Single" SketchOpen Arduino IDE (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" -> "Port" Sada "Prenesi" Skicu "Sketch" -> "Upload" Kliknite "Alati" -> "Serijski monitor" i provjerite odgovaraju li brzine prijenosa moje 9600Ako skicu niste prenijeli, provjerite 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 4. red "Adresa uređaja 0: 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 tastaturi, a zatim ga prođite u Notepadu

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, 0x04, 0x70, 0x04, 0x04, 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

Finished
Finished

Sada možete identificirati svaki pojedinačni jednožilni 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]);

return tempC;

}

Preporučuje se: