Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Toto je rýchly sprievodca k získaniu jednotlivých sériových čísel vašich 1-vodičových snímačov teploty DS18B20.
To je praktické pre projekty, ktoré vyžadujú viac senzorov.
Veci, ktoré potrebujete:
- Arduino 5v (UNO, Mega, Pro Mini atď.) - Arduino UNO R3 - AliExpress - eBay
- Snímač teploty DS18B20 - AliExpress - eBay
- 4,7 k - 1/4w odpor THT - AliExpress - eBay
- Breadboard - AliExpress - eBay
- Prepojovacie vodiče - od muža k mužovi - AliExpress - eBay
- Počítač s nainštalovaným Arduino IDE
Krok 1: Pridajte požadovanú knižnicu do Arduino IDE
- Otvorte Arduino IDE (používam 1.8.1)
- Kliknite na „Skica“-> „Zahrnúť knižnicu“-> „Spravovať knižnice …“
- Vyberte vyhľadávací panel a zadajte „dallas“
- Kliknite na „Teplota Dallasu“a potom na „Inštalovať“
Knižnicu si môžete alternatívne stiahnuť tu:
Táto knižnica obsahuje knižnicu OnWire.
Krok 2: Pripojte DS18B20
Pripojte pomocou dosky na chlieb +5 V, GND a digitálny kolík 2 (kolík 2 je už nastavený v príklade náčrtu) z Arduina pomocou prepojok prepojovacieho panelu medzi mužmi a mužmi.
Pripojte DS18B20 paralelne k 3x svorkovniciam na doske.
- Pin 1 (GND) -> GND (uzemnenie 0V)
- Pin 2 (DATA) -> Digitálny pin 2
- Pin 3 (Vdd) -> +5V
Pre režim normálneho napájania pripojte 4,7K odpor od +5V k vodiču Digital Pin 2 na doske.
Nasledujúci odkaz je skvelým zdrojom pre 1-vodičový snímač teploty DS18B20.
www.tweaking4all.com/hardware/arduino/ardu…
Krok 3: Načítajte ukážkový náčrt „Single“
Akonáhle to budete mať zapojené, ste pripravení načítať Dallas Temperature „Single“SketchOpen Arduino IDE (používam 1.8.1) Kliknite na „Súbor“-> „Príklady“-> „Teplota v Dallase“-> „Single“, ktoré som pridal s oneskorením (5000); na riadku 103, aby som dostal čas na skopírovanie sériového číslaVyberte si príslušný formulár na nástenke „Nástroje“-> „Doska“Vyberte príslušný port „Nástroje“-> „Port“Teraz „Nahrať“náčrt „Skica“-> „Odovzdať“Kliknite na „Nástroje“-> „Sériový monitor“a uistite sa, že sa prenosové rýchlosti zhodujú s mojimi 9600 Ak ste skicu neodovzdali, skontrolujte dosku, port, ovládače USB atď.
Krok 4: Skopírujte sériové číslo
Z „Sériového monitora“uvidíte, že 4. riadok je „Adresa zariadenia 0: xxxxxxxxxxxxxxxxxx“
Toto je sériové číslo DS18B20
Ak je „000000000000000000“, potom je problém s čítaním vášho DS18B20.
Zvýraznite ho myšou, stlačte klávesy CTRL+C na klávesnici a potom ho vložte do programu Poznámkový blok
Pre moje ďalšie projekty môj kód používa rad týchto čísel. HEXový reťazec som naformátoval na nasledujúci formát.
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}, FF, 0x28,, 0x42, 0x71, 0x17, 0x04, 0x4C}};
Krok 5: Hotovo
Teraz môžete vo svojom kóde identifikovať každý jednotlivý 1-vodičový snímač teploty DS18B20 a používať funkciu ako je táto:
float getTemperature (byte j) {
sensor.requestTemperaturesByAddress (tempSensorSerial [j]);
float tempC = sensor.getTempC (tempSensorSerial [j]);
návratová teplotaC;
}