Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Ovo je kratki 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 kratkospojnika - muško - muško - AliExpress - eBay
- Računar sa instaliranim Arduino IDE -om
Korak 1: Dodajte potrebnu biblioteku 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"
- Kliknite "DallasTemperature" i kliknite "Install"
Alternativno, možete preuzeti biblioteku ovdje:
Ova biblioteka 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 koristeći kratkospojnike za mušku ploču za muške.
Spojite DS18B20 paralelno na 3x priključne trake na matičnoj 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 matičnoj ploči.
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 ga povežete, spremni ste za učitavanje Dallas temperature "Single" SketchOpen Arduino IDE (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" -> "Port" Sada "Prenesi" Skicu "Sketch" -> "Upload" Kliknite "Alati" -> "Serijski monitor" i provjerite odgovaraju li brzine prijenosa moje 9600Ako skicu niste prenijeli, provjerite ploču, port, USB upravljačke programe itd.
Korak 4: Kopirajte serijski broj
Iz "Serijskog monitora" vidjet ćete 4. red "Adresa uređaja 0: 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 tastaturi, a zatim ga prođite u Notepadu
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, 0x04, 0x70, 0x04, 0x04, 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 jednožilni 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]);
return tempC;
}