Taula de continguts:

Obteniu el número de sèrie d'un DS18B20 amb un Arduino: 5 passos
Obteniu el número de sèrie d'un DS18B20 amb un Arduino: 5 passos

Vídeo: Obteniu el número de sèrie d'un DS18B20 amb un Arduino: 5 passos

Vídeo: Obteniu el número de sèrie d'un DS18B20 amb un Arduino: 5 passos
Vídeo: FLProg10: датчик температуры DS18B20 | ESP32 NodeMCU | Визуальное программирование для Arduino 2024, De novembre
Anonim
Obteniu el número de sèrie d'un DS18B20 amb un Arduino
Obteniu el número de sèrie d'un DS18B20 amb un Arduino

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

Afegiu la biblioteca obligatòria a Arduino IDE
Afegiu la biblioteca obligatòria a Arduino IDE
  1. Obre Arduino IDE (estic fent servir 1.8.1)
  2. Feu clic a "Esbós" -> "Inclou biblioteca" -> "Gestiona les biblioteques …"
  3. Seleccioneu la barra de cerca i escriviu "dallas"
  4. 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

Connecteu el DS18B20
Connecteu el DS18B20
Connecteu el DS18B20
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"

Carregueu l'exemple de croquis
Carregueu l'exemple de croquis
Carregueu el croquis d’exemple
Carregueu el croquis d’exemple

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

Copieu el número de sèrie
Copieu el número de sèrie
Copieu el número de sèrie
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

Acabat
Acabat

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;

}

Recomanat: