Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Acesta este un ghid rapid despre cum să obțineți numerele de serie individuale ale senzorilor de temperatură DS18B20 cu 1 fir.
Acest lucru este la îndemână pentru proiectele care necesită mai mulți senzori.
Lucruri de care ai nevoie:
- Arduino 5v (UNO, Mega, Pro Mini etc) - Arduino UNO R3 - AliExpress - eBay
- Senzor de temperatură DS18B20 - AliExpress - eBay
- 4.7k - 1 / 4w rezistor THT - AliExpress - eBay
- Breadboard - AliExpress - eBay
- Jumper Wires - De la Tată la Tată - AliExpress - eBay
- Un computer cu Arduino IDE instalat
Pasul 1: Adăugați Biblioteca necesară la Arduino IDE
- Deschideți Arduino IDE (folosesc 1.8.1)
- Faceți clic pe „Schiță” -> „Includeți biblioteca” -> „Gestionați bibliotecile …”
- Selectați bara de căutare și tastați „Dallas”
- Faceți clic pe „DallasTemperature” și faceți clic pe „Instalați”
Alternativ, puteți descărca biblioteca de aici:
Această bibliotecă include biblioteca OnWire.
Pasul 2: conectați DS18B20
Folosind o placă de conectare conectați + 5V, GND și pinul digital 2 (pinul 2 este deja setat în schița de exemplu) de la Arduino folosind jumperii masculini la masculi.
Conectați DS18B20 paralel cu bornele de borne 3x de pe panou.
- Pinul 1 (GND) -> GND (sol 0V)
- Pinul 2 (DATA) -> Pinul digital 2
- Pinul 3 (Vdd) -> + 5V
Pentru modul normal de alimentare conectați un rezistor de 4.7K de la + 5V la firul pin digital 2 de pe panou.
Următorul link este o resursă excelentă pentru senzorul de temperatură DS18B20 cu 1 fir.
www.tweaking4all.com/hardware/arduino/ardu…
Pasul 3: Încărcați schița de exemplu „Singură”
După ce l-ați conectat, sunteți gata să încărcați Dallas Temperature "Single" SketchOpen Arduino IDE (folosesc 1.8.1) Faceți clic pe "File" -> "Exemple" -> "Dallas Temperature" -> "Single" pe care l-am adăugat în întârziere (5000); pe linia 103 pentru a-mi acorda timp să copiez numărul de serie Selectați formularul corespunzător de bord "Instrumente" -> "Consiliu" Selectați portul corespunzător "Instrumente" -> "Port" Acum "Încărcați" schița "Schiță" -> "Încărcați" Faceți clic pe „Instrumente” -> „Monitor serial” asigurați-vă că ratele baud se potrivesc cu ale mele sunt 9600 Dacă schița nu a încărcat verificați placa, portul, driverele USB etc.
Pasul 4: Copiați numărul de serie
Din „Serial Monitor” veți vedea a 4-a linie este „Device 0 Address: xxxxxxxxxxxxxxxx”
Acesta este numărul de serie al DS18B20
Dacă este „0000000000000000”, atunci există o problemă la citirea DS18B20.
Evidențiați-l cu mouse-ul și apăsați CTRL + C pe tastatura dvs. apoi treceți-l în Notepad
Pentru celelalte proiecte ale mele, codul meu folosește o serie de numere. Am reformatat șirul HEX la următorul format.
DeviceAddress tempSensorSerial [9] = {
{0x28, 0xFF, 0x07, 0xA6, 0x70, 0x17, 0x04, 0xB5}, {0x28, 0xFF, 0xB2, 0xA6, 0x70, 0x17, 0x04, 0x28}, {0x28, 0xFF, 0x42, 0x98, 0x70, 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, 0x, 0x42, 0x71, 0x17, 0x04, 0x4C}};
Pasul 5: Finalizat
Acum puteți identifica fiecare senzor de temperatură DS18B20 cu 1 fir în codul dvs. și puteți utiliza o funcție ca aceasta:
float getTemperature (octet j) {
sensors.requestTemperaturesByAddress (tempSensorSerial [j]);
float tempC = sensors.getTempC (tempSensorSerial [j]);
retur tempC;
}