Kazalo:

Pridobite serijsko številko DS18B20 z Arduinom: 5 korakov
Pridobite serijsko številko DS18B20 z Arduinom: 5 korakov

Video: Pridobite serijsko številko DS18B20 z Arduinom: 5 korakov

Video: Pridobite serijsko številko DS18B20 z Arduinom: 5 korakov
Video: LDmicro 14: ЖК-дисплей I2C и часы реального времени DS3231 (программирование лестничной схемы ПЛК микроконтроллера с помощью LDmicro) 2024, November
Anonim
Pridobite serijsko številko DS18B20 z Arduinom
Pridobite serijsko številko DS18B20 z Arduinom

To je kratek vodnik o tem, kako pridobiti posamezne serijske številke vaših 1-žičnih temperaturnih senzorjev DS18B20.

To je priročno za projekte, ki zahtevajo več senzorjev.

Stvari, ki jih potrebujete:

  • Arduino 5v (UNO, Mega, Pro Mini itd.) - Arduino UNO R3 - AliExpress - eBay
  • Senzor temp. DS18B20 - AliExpress - eBay
  • 4,7 k - 1/4 w upor THT - AliExpress - eBay
  • Breadboard - AliExpress - eBay
  • Jumper žice - moški do moški - AliExpress - eBay
  • Računalnik z nameščenim Arduino IDE

Korak: Dodajte zahtevano knjižnico v Arduino IDE

V Arduino IDE dodajte potrebno knjižnico
V Arduino IDE dodajte potrebno knjižnico
  1. Odprite Arduino IDE (uporabljam 1.8.1)
  2. Kliknite "Skica" -> "Vključi knjižnico" -> "Upravljanje knjižnic …"
  3. Izberite iskalno vrstico in vnesite "dallas"
  4. Kliknite "DallasTemperature" in kliknite "Namesti"

Lahko pa tudi prenesete knjižnico od tukaj:

Ta knjižnica vključuje knjižnico OnWire.

Korak: Priključite DS18B20

Povežite DS18B20
Povežite DS18B20
Povežite DS18B20
Povežite DS18B20

Z uporabo plošče za kruh povežite +5V, GND in digitalni pin 2 (pin 2 je že nastavljen na vzorčni skici) iz Arduina z uporabo mostov za moške za moške.

DS18B20 povežite vzporedno s 3x priključnimi letvami na plošči.

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

Za način normalnega napajanja priključite 4,7K upor od +5V do žice Digital Pin 2 na plošči.

Naslednja povezava je odličen vir za 1-žični temperaturni senzor DS18B20.

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

3. korak: naložite primer skice "Single"

Naložite primer skice
Naložite primer skice
Naložite primer skice
Naložite primer skice

Ko ga povežete, ste pripravljeni naložiti Dallas Temperature "Single" SketchOpen Arduino IDE (uporabljam 1.8.1) Kliknite "File" -> "Examples" -> "Dallas Temperature" -> "Single", ki sem ga dodal z zamudo (5000); na vrstici 103, da mi vzamete čas za kopiranje serijske številkeIzberite ustrezen obrazec na deski "Orodja" -> "Plošča" Izberite ustrezna vrata "Orodja" -> "Vrata" Zdaj "Naloži" Skico "Skica" -> "Naloži" Kliknite "Orodja" -> "Serijski monitor" in se prepričajte, da se hitrost prenosa ujema z mojo 9600 Če skice niste naložili, preverite ploščo, vrata, gonilnike USB itd.

4. korak: Kopirajte serijsko številko

Kopirajte serijsko številko
Kopirajte serijsko številko
Kopirajte serijsko številko
Kopirajte serijsko številko

V "Serijskem monitorju" boste videli 4. vrstico "Naslov naprave 0: xxxxxxxxxxxxxxx"

To je serijska številka DS18B20

Če je "0000000000000000", je pri branju vašega DS18B20 prišlo do težave.

Označite ga z miško in pritisnite CTRL+C na tipkovnici, nato pa mimo njega v Beležnici

Za moje druge projekte moja koda uporablja niz teh številk. HEX niz sem preoblikoval v naslednjo obliko.

DeviceAddress 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}};

5. korak: Končano

Dokončano
Dokončano

Zdaj lahko v svoji kodi prepoznate vsak posamezen 1-žični temperaturni senzor DS18B20 in uporabite funkcijo, kot je ta:

float getTemperature (bajt j) {

sensors.requestTemperaturesByAddress (tempSensorSerial [j]);

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

povratna tempC;

}

Priporočena: