Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
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
- Odprite Arduino IDE (uporabljam 1.8.1)
- Kliknite "Skica" -> "Vključi knjižnico" -> "Upravljanje knjižnic …"
- Izberite iskalno vrstico in vnesite "dallas"
- 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
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"
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
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
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;
}