Cuprins:

Obțineți numărul de serie al unui DS18B20 cu un Arduino: 5 pași
Obțineți numărul de serie al unui DS18B20 cu un Arduino: 5 pași

Video: Obțineți numărul de serie al unui DS18B20 cu un Arduino: 5 pași

Video: Obțineți numărul de serie al unui DS18B20 cu un Arduino: 5 pași
Video: FLProg10: Senzor de temperatură DS18B20 | ESP32 NodeMCU | Programare încorporată vizuală Arduino 2024, Iulie
Anonim
Obțineți numărul de serie al unui DS18B20 cu un Arduino
Obțineți numărul de serie al unui DS18B20 cu un Arduino

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

Adăugați biblioteca necesară la ID-ul Arduino
Adăugați biblioteca necesară la ID-ul Arduino
  1. Deschideți Arduino IDE (folosesc 1.8.1)
  2. Faceți clic pe „Schiță” -> „Includeți biblioteca” -> „Gestionați bibliotecile …”
  3. Selectați bara de căutare și tastați „Dallas”
  4. 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

Conectați DS18B20
Conectați DS18B20
Conectați DS18B20
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ă”

Încărcați schița de exemplu
Încărcați schița de exemplu
Încărcați schița de exemplu
Încărcați schița de exemplu

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

Copiați numărul de serie
Copiați numărul de serie
Copiați numărul de serie
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

Terminat
Terminat

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;

}

Recomandat: