Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Ovo je brzi 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 za kratkospojnike - muški na muški - AliExpress - eBay
- Računalo s instaliranim Arduino IDE -om
Korak 1: Dodajte potrebnu knjižnicu u Arduino IDE
- Otvorite Arduino IDE (koristim 1.8.1)
- Kliknite "Sketch" -> "Include Library" -> "Manage Libraries …"
- Odaberite traku za pretraživanje i upišite "dallas"
- Pritisnite "DallasTemperature" i kliknite "Install"
Alternativno, biblioteku možete preuzeti odavde:
Ova knjižnica uključuje biblioteku OnWire.
Korak 2: 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 pomoću kratkospojnika za mušku ploču za muške.
Spojite DS18B20 paralelno s 3x priključnim letvicama na 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 ploči s osnovom.
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"
Nakon što ste ga povezali, spremni ste za učitavanje Dallas Temperature "Single" SketchOpen Arduino IDE -a (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" -> "Luka" Sada "Prenesi" Skicu "Sketch" -> "Upload" Kliknite "Alati" -> "Serijski monitor" i provjerite odgovaraju li brzine prijenosa moje 9600Ako niste skicirali skicu, provjerite svoju ploču, port, USB upravljačke programe itd.
Korak 4: Kopirajte serijski broj
Iz "Serijskog monitora" vidjet ćete četvrti redak "Device 0 Address: 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 tipkovnici, a zatim ga prođite u bilježnici
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, 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}};
Korak 5: Završeno
Sada možete identificirati svaki pojedinačni 1-žični 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]);
povratna tempC;
}