Satura rādītājs:

Iegūstiet DS18B20 sērijas numuru ar Arduino: 5 soļi
Iegūstiet DS18B20 sērijas numuru ar Arduino: 5 soļi

Video: Iegūstiet DS18B20 sērijas numuru ar Arduino: 5 soļi

Video: Iegūstiet DS18B20 sērijas numuru ar Arduino: 5 soļi
Video: Измерение 5A-30A переменного и постоянного тока с использованием ACS712 с библиотекой Robojax 2024, Novembris
Anonim
Iegūstiet DS18B20 sērijas numuru ar Arduino
Iegūstiet DS18B20 sērijas numuru ar Arduino

Šis ir īss ceļvedis, kā iegūt DS18B20 1 vadu temperatūras sensoru atsevišķos sērijas numurus.

Tas ir ērti projektiem, kuriem nepieciešami vairāki sensori.

Nepieciešamās lietas:

  • Arduino 5v (UNO, Mega, Pro Mini utt.) - Arduino UNO R3 - AliExpress - eBay
  • Temperatūras sensors DS18B20 - AliExpress - eBay
  • 4.7k - 1/4w rezistors THT - AliExpress - eBay
  • Maizes dēlis - AliExpress - eBay
  • Džemperu vadi - no vīriešiem līdz vīriešiem - AliExpress - eBay
  • Dators ar instalētu Arduino IDE

1. darbība: pievienojiet nepieciešamo bibliotēku Arduino IDE

Pievienojiet nepieciešamo bibliotēku Arduino IDE
Pievienojiet nepieciešamo bibliotēku Arduino IDE
  1. Atveriet Arduino IDE (es izmantoju 1.8.1)
  2. Noklikšķiniet uz "Skice" -> "Iekļaut bibliotēku" -> "Pārvaldīt bibliotēkas …"
  3. Atlasiet meklēšanas joslu un ierakstiet "dallas"
  4. Noklikšķiniet uz "DallasTemperature" un noklikšķiniet uz "Install"

Varat arī lejupielādēt bibliotēku šeit:

Šī bibliotēka ietver OnWire bibliotēku.

2. darbība: pievienojiet DS18B20 vadu

Pievienojiet DS18B20 vadu
Pievienojiet DS18B20 vadu
Pievienojiet DS18B20 vadu
Pievienojiet DS18B20 vadu

Izmantojot maizes dēli, pievienojiet +5V, GND un digitālo tapu 2 (piespraude jau ir iestatīta parauga skicē) no Arduino, izmantojot maizes dēļa džemperus no vīriešiem līdz vīriešiem.

Pievienojiet DS18B20 paralēli maizes dēļa 3x spaiļu sloksnēm.

  • 1. tapa (GND) -> GND (0 V zemējums)
  • 2. tapa (DATI) -> Digitālā tapa 2
  • 3. tapa (Vdd) -> +5V

Normālai strāvas režīmam pievienojiet 4,7K rezistoru no +5V līdz maizes dēļa digitālajam 2 kontakta vadam.

Šī saite ir lielisks resurss DS18B20 1 vadu temperatūras sensoram.

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

3. darbība. Ielādējiet parauga skici “Viens”

Ielādējiet parauga skici
Ielādējiet parauga skici
Ielādējiet parauga skici
Ielādējiet parauga skici

Kad esat to pievienojis, esat gatavs ielādēt Dalasas temperatūras "Single" SketchOpen Arduino IDE (es izmantoju 1.8.1) Noklikšķiniet uz "File" -> "Examples" -> "Dallas Temperature" -> "Single" I added kavēšanās (5000); 103. rindā, lai dotu man laiku sērijas numura kopēšanai Noklikšķiniet uz "Rīki" -> "Seriālais monitors" un pārliecinieties, vai datu pārraides ātrums atbilst manam 9600. Ja skice nav augšupielādēta, pārbaudiet tāfeles, porta, USB draiverus utt.

4. darbība: kopējiet sērijas numuru

Kopējiet sērijas numuru
Kopējiet sērijas numuru
Kopējiet sērijas numuru
Kopējiet sērijas numuru

No "Sērijas monitora" jūs redzēsit 4. rindu "Device 0 Address: xxxxxxxxxxxxxxxx"

Šis ir DS18B20 sērijas numurs

Ja tas ir “0000000000000000”, tad, lasot jūsu DS18B20, radās problēma.

Iezīmējiet to ar peli un nospiediet tastatūras taustiņu kombināciju CTRL+C, pēc tam - Notepad

Citiem projektiem mans kods izmanto šo skaitļu masīvu. Es pārformatēju HEX virkni šādā formātā.

DeviceAddress tempSensorSerial [9] = {

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

5. solis: pabeigts

Pabeigts
Pabeigts

Tagad savā kodā varat identificēt katru atsevišķu DS18B20 1 vadu temperatūras sensoru un izmantot šādu funkciju:

float getTemperature (baits j) {

sensors.requestTemperaturesByAddress (tempSensorSerial [j]);

pludiņa tempC = sensori.getTempC (tempSensorSerial [j]);

atgriešanās tempC;

}

Ieteicams: