Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Tämä on pikaopas siitä, miten saat 1-johtimisen DS18B20-lämpötila-anturin yksittäiset sarjanumerot.
Tämä on kätevä projekteissa, jotka vaativat useita antureita.
Tarvitsemasi asiat:
- Arduino 5v (UNO, Mega, Pro Mini jne.) - Arduino UNO R3 - AliExpress - eBay
- Lämpötila -anturi DS18B20 - AliExpress - eBay
- 4.7k - 1/4w vastus THT - AliExpress - eBay
- Leipälauta - AliExpress - eBay
- Hyppyjohdot - uros -uros - AliExpress - eBay
- Tietokone, johon on asennettu Arduino IDE
Vaihe 1: Lisää vaadittu kirjasto Arduino IDE: hen
- Avaa Arduino IDE (käytän 1.8.1)
- Napsauta "Sketch" -> "Include Library" -> "Manage Libraries…"
- Valitse hakupalkki ja kirjoita "dallas"
- Napsauta "DallasTemperature" ja napsauta "Install"
Vaihtoehtoisesti voit ladata kirjaston täältä:
Tämä kirjasto sisältää OnWire -kirjaston.
Vaihe 2: Yhdistä DS18B20
Liitä leipälevyllä +5V, GND ja digitaalinen nasta 2 (nasta 2 on jo asetettu esimerkkiluonnoksessa) Arduinosta käyttämällä uros -uros -leipähyppyjä.
Kytke DS18B20 rinnakkain leipälevyn 3x -liitinliuskaan.
- Nasta 1 (GND) -> GND (Ground 0V)
- Nasta 2 (DATA) -> Digitaalinen nasta 2
- Nasta 3 (Vdd) -> +5V
Normaalia virransäästötilaa varten liitä 4,7 K: n vastus +5 V: sta leipälevyn digitaaliseen 2 -napaiseen johtoon.
Seuraava linkki on loistava resurssi 1-johtimiselle DS18B20-lämpötila-anturille.
www.tweaking4all.com/hardware/arduino/ardu…
Vaihe 3: Lataa esimerkkiluonnos "Single"
Kun olet kytkenyt sen, olet valmis lataamaan Dallas Temperature "Single" SketchOpen Arduino IDE (käytän 1.8.1) Napsauta "File" -> "Examples" -> "Dallas Temperature" -> "Single" Lisäsin viivästynyt (5000); rivillä 103 antaa minulle aikaa kopioida sarjanumeroValitse sopiva korttilomake "Työkalut" -> "Hallitus" Valitse sopiva portti "Työkalut" -> "Portti" Nyt "Lataa" luonnos "Luonnos" -> "Lataa" Napsauta "Työkalut" -> "Sarjamonitori" ja varmista, että siirtonopeudet vastaavat 9600 -arvoa. Jos luonnos ei lähettänyt, tarkista kortti, portti, USB -ohjaimet jne.
Vaihe 4: Kopioi sarjanumero
"Sarjamonitorista" näet neljännen rivin "Laite 0 Osoite: xxxxxxxxxxxxxxxx"
Tämä on sarjan DS18B20 sarjanumero
Jos se on "0000000000000000", DS18B20 -laitteen lukemisessa on ongelma.
Korosta se hiirellä ja paina näppäimistön CTRL+C -näppäintä ja ohita se sitten Muistiossa
Muissa projekteissani koodini käyttää näitä numeroita. Alustin HEX -merkkijonon seuraavaan muotoon.
DeviceAddress tempSensorSerial [9] = {
{0x28, 0xFF, 0x07, 0xA6, 0x70, 0x17, 0x04, 0xB5}, {0x28, 0xFF, 0xB2, 0xA6, 0x70, 0x17, 0x04, 0x28}, {0x28, 0xFF, 0x42, 0x98, 0x, 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}, 0x42, 0x71, 0x17, 0x04, 0x4C}};
Vaihe 5: Valmis
Nyt voit tunnistaa koodistasi kaikki yksittäiset 1-johtiminen DS18B20-lämpötila-anturit ja käyttää seuraavaa toimintoa:
float getTemperature (tavu j) {
sensors.requestTemperaturesByAddress (tempSensorSerial [j]);
float tempC = anturit.getTempC (tempSensorSerial [j]);
paluulämpötila;
}