Taula de continguts:
2025 Autora: John Day | [email protected]. Última modificació: 2025-01-13 06:57
Aquesta és una guia ràpida sobre com obtenir els números de sèrie individuals dels vostres sensors de temperatura de 1 fil DS18B20.
Això és útil per a projectes que requereixen diversos sensors.
Coses que necessiteu:
- Arduino 5v (UNO, Mega, Pro Mini, etc.) - Arduino UNO R3 - AliExpress - eBay
- Sensor de temperatura DS18B20 - AliExpress - eBay
- Resistència THT de 4,7 k - 1 / 4w - AliExpress - eBay
- Taula de pa - AliExpress - eBay
- Jumper Wires - Home a Home - AliExpress - eBay
- Un equip amb Arduino IDE instal·lat
Pas 1: afegiu la biblioteca necessària a Arduino IDE
- Obre Arduino IDE (estic fent servir 1.8.1)
- Feu clic a "Esbós" -> "Inclou biblioteca" -> "Gestiona les biblioteques …"
- Seleccioneu la barra de cerca i escriviu "dallas"
- Feu clic a "DallasTemperature" i feu clic a "Instal·la"
També podeu descarregar la biblioteca des d’aquí:
Aquesta biblioteca inclou la biblioteca OnWire.
Pas 2: connecteu el DS18B20
Mitjançant una placa de connexió connecteu + 5V, GND i el pin digital 2 (el pin 2 ja està definit a l’esquema d’exemple) de l’Arduino mitjançant ponts de taulers de panell masculí a masculí.
Connecteu el DS18B20 paral·lelament a les tires de borns 3x de la placa.
- Pin 1 (GND) -> GND (terra 0V)
- Pin 2 (DADES) -> Pin digital 2
- Pin 3 (Vdd) -> + 5V
Per al mode d’alimentació normal, connecteu una resistència de 4,7 K de + 5 V al cable digital Pin 2 a la placa.
El següent enllaç és un recurs excel·lent per al sensor de temperatura 1 fil DS18B20.
www.tweaking4all.com/hardware/arduino/ardu…
Pas 3: carregueu l'exemple de croquis "Individual"
Un cop ho tingueu connectat, ja podreu carregar l'IDE SketchOpen Arduino "Single" de Dallas Temperature (estic fent servir 1.8.1) Feu clic a "File" -> "Exemples" -> "Dallas Temperature" -> "Single" que he afegit en retard (5000); a la línia 103 per donar-me temps de copiar el número de sèrie. Seleccioneu el formulari corresponent "Eines" -> "Tauler" Seleccioneu el port adequat "Eines" -> "Port" Ara "Pengeu" l'esbós "Esbós" -> "Penja" Feu clic a "Eines" -> "Monitor de sèrie" i assegureu-vos que la velocitat de transmissió coincideixi amb la meva és de 9600.
Pas 4: copieu el número de sèrie
Des del "Monitor de sèrie" veureu que la quarta línia és "Adreça del dispositiu 0: xxxxxxxxxxxxxxxx"
Aquest és el número de sèrie del DS18B20
Si és "0000000000000000", hi ha un problema en llegir el vostre DS18B20.
Ressalteu-lo amb el ratolí i premeu CTRL + C al teclat i després passeu-lo al Bloc de notes
Per als meus altres projectes, el meu codi utilitza una sèrie d'aquests números. He reformatat la cadena HEX amb el format següent.
DeviceSdress tempSensorSerial [9] = {
{0x28, 0xFF, 0x07, 0xA6, 0x70, 0x17, 0x04, 0xB5}, {0x28, 0xFF, 0xB2, 0xA6, 0x70, 0x17, 0x04, 0x28}, {0x28, 0xFF, 0x42, 0x98, 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, 0x, 0x42, 0x71, 0x17, 0x04, 0x4C}};
Pas 5: finalitzat
Ara podeu identificar cada sensor de temperatura 1 fil DS18B20 al vostre codi i utilitzar una funció com aquesta:
float getTemperature (byte j) {
sensors.requestTemperaturesByAddress (tempSensorSerial [j]);
floC tempC = sensors.getTempC (tempSensorSerial [j]);
retorn tempC;
}