Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Toto je rychlý průvodce, jak získat jednotlivá sériová čísla vašich 1-vodičových snímačů teploty DS18B20.
To je užitečné pro projekty, které vyžadují více senzorů.
Věci, které potřebujete:
- Arduino 5v (UNO, Mega, Pro Mini atd.) - Arduino UNO R3 - AliExpress - eBay
- Teplotní senzor DS18B20 - AliExpress - eBay
- 4,7k - 1/4w odpor THT - AliExpress - eBay
- Breadboard - AliExpress - eBay
- Propojovací vodiče - od muže k muži - AliExpress - eBay
- Počítač s nainstalovaným Arduino IDE
Krok 1: Přidejte požadovanou knihovnu do Arduino IDE
- Otevřete Arduino IDE (používám 1.8.1)
- Klikněte na „Skica“-> „Zahrnout knihovnu“-> „Spravovat knihovny…“
- Vyberte vyhledávací panel a zadejte „dallas“
- Klikněte na „DallasTemperature“a klikněte na „Instalovat“
Knihovnu si také můžete stáhnout zde:
Tato knihovna obsahuje knihovnu OnWire.
Krok 2: Zapojte DS18B20
Pomocí prkénka připojte +5V, GND a digitální pin 2 (pin 2 je již nastaven v příkladu náčrtu) z Arduina pomocí propojovacích propojek mezi muži a muži.
Připojte DS18B20 paralelně k 3x svorkovnici na desce.
- Pin 1 (GND) -> GND (Ground 0V)
- Pin 2 (DATA) -> Digitální pin 2
- Pin 3 (Vdd) -> +5V
Pro režim normálního napájení připojte 4,7K odpor od +5V k vodiči Digital Pin 2 na desce.
Následující odkaz je skvělým zdrojem pro 1vodičové teplotní čidlo DS18B20.
www.tweaking4all.com/hardware/arduino/ardu…
Krok 3: Načtěte ukázkový náčrt „Single“
Jakmile to budete mít zapojené, jste připraveni načíst Dallas Temperature „Single“SketchOpen Arduino IDE (používám 1.8.1) Klikněte na „Soubor“-> „Příklady“-> „Dallas Teplota“-> „Single“jsem přidal se zpožděním (5 000); na řádku 103 mi dejte čas na zkopírování sériového čísla Vyberte příslušný formulář desky „Nástroje“-> „Deska“Vyberte příslušný port „Nástroje“-> „Port“Nyní „Nahrát“skicu „Skica“-> „Nahrát“Klikněte na „Nástroje“-> „Sériový monitor“a ujistěte se, že přenosové rychlosti odpovídají mým 9600 Pokud jste skicu nenahráli, zkontrolujte desku, port, ovladače USB atd.
Krok 4: Zkopírujte sériové číslo
Ze „Sériového monitoru“uvidíte, že 4. řádek je „Adresa zařízení 0: xxxxxxxxxxxxxxxxxx“
Toto je sériové číslo DS18B20
Pokud je „000000000000000000“, pak je problém se čtením vašeho DS18B20.
Zvýrazněte ji myší a stiskněte klávesy CTRL+C na klávesnici a poté ji vložte do Poznámkového bloku
Pro mé další projekty můj kód používá řadu těchto čísel. Přeformátoval jsem HEX řetězec do následujícího formátu.
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, 0x, 0x17, 0x04, 0xF5}, {0x28, 0xFF, 0xD9, 0x9B, 0x70, 0x17, 0x04, 0x9C}, {0x28, 0xFF, 0x98, 0x6A, 0x71, 0x17, 0x04, 0xED}, 0F28,, 0x42, 0x71, 0x17, 0x04, 0x4C}};
Krok 5: Hotovo
Nyní můžete ve svém kódu identifikovat každý jednotlivý 1vodičový snímač teploty DS18B20 a používat funkci jako je tato:
float getTemperature (byte j) {
sensor.requestTemperaturesByAddress (tempSensorSerial [j]);
float tempC = sensor.getTempC (tempSensorSerial [j]);
návrat tempC;
}