Sommario:

Ottieni il numero di serie di un DS18B20 con un Arduino: 5 passaggi
Ottieni il numero di serie di un DS18B20 con un Arduino: 5 passaggi

Video: Ottieni il numero di serie di un DS18B20 con un Arduino: 5 passaggi

Video: Ottieni il numero di serie di un DS18B20 con un Arduino: 5 passaggi
Video: creiamo un TERMOMETRO con ARDUINO da zero! 2024, Luglio
Anonim
Ottieni il numero di serie di un DS18B20 con un Arduino
Ottieni il numero di serie di un DS18B20 con un Arduino

Questa è una guida rapida su come ottenere i numeri di serie individuali dei sensori di temperatura a 1 filo DS18B20.

Questo è utile per i progetti che richiedono più sensori.

Cose di cui hai bisogno:

  • Arduino 5v (UNO, Mega, Pro Mini ecc.) - Arduino UNO R3 - AliExpress - eBay
  • Sensore di temperatura DS18B20 - AliExpress - eBay
  • 4.7k - Resistenza 1/4w THT - AliExpress - eBay
  • Tagliere - AliExpress - eBay
  • Cavi per ponticelli - Maschio a Maschio - AliExpress - eBay
  • Un computer con Arduino IDE installato

Passaggio 1: aggiungi la libreria richiesta all'IDE Arduino

Aggiungi la libreria richiesta all'IDE Arduino
Aggiungi la libreria richiesta all'IDE Arduino
  1. Apri Arduino IDE (sto usando 1.8.1)
  2. Fai clic su "Schizzo" -> "Includi libreria" -> "Gestisci librerie…"
  3. Seleziona la barra di ricerca e digita "dallas"
  4. Fare clic su "DallasTemperature" e fare clic su "Installa"

In alternativa puoi scaricare la Libreria da qui:

Questa libreria include la libreria OnWire.

Passaggio 2: collegare il DS18B20

Collega il DS18B20
Collega il DS18B20
Collega il DS18B20
Collega il DS18B20

Usando una breadboard, collega +5V, GND e Digital Pin 2 (il Pin 2 è già impostato nello schizzo di esempio) dall'Arduino usando i jumper della breadboard da maschio a maschio.

Collegare il DS18B20 in parallelo alle 3 morsettiere sulla breadboard.

  • Pin 1 (GND) -> GND (Terra 0V)
  • Pin 2 (DATI) -> Pin digitale 2
  • Pin 3 (Vdd) -> +5V

Per la modalità di alimentazione normale, collegare un resistore da 4,7 K da +5 V al filo del pin 2 digitale sulla breadboard.

Il seguente collegamento è un'ottima risorsa per il sensore di temperatura a 1 filo DS18B20.

www.tweaking4all.com/hardware/arduino/ardu…

Passaggio 3: caricare lo schizzo di esempio "Singolo"

Carica lo schizzo di esempio
Carica lo schizzo di esempio
Carica lo schizzo di esempio
Carica lo schizzo di esempio

Una volta collegato, sei pronto per caricare lo Sketch "Single" di Dallas Temperature Apri Arduino IDE (sto usando 1.8.1) Fai clic su "File" -> "Esempi" -> "Dallas Temperature" -> "Single" Ho aggiunto in ritardo (5000); sulla linea 103 per darmi il tempo di copiare il numero di serieSeleziona la tua scheda appropriata dal modulo "Strumenti" -> "Scheda" Seleziona la porta appropriata "Strumenti" -> "Porta"Ora "Carica" lo schizzo "Schizzo" -> "Carica" Fai clic su "Strumenti" -> "Monitor seriale" assicurati che il baud rate corrisponda al mio sia 9600 Se lo schizzo non è stato caricato, controlla la scheda, la porta, i driver USB ecc.

Passaggio 4: copia il numero di serie

Copia il numero di serie
Copia il numero di serie
Copia il numero di serie
Copia il numero di serie

Dal "Monitor seriale" vedrai che la 4a riga è "Device 0 Address: xxxxxxxxxxxxxxxx"

Questo è il numero di serie del DS18B20

Se è "0000000000000000", si è verificato un problema durante la lettura del DS18B20.

Evidenzialo con il mouse e premi CTRL+C sulla tastiera, quindi incollalo nel Blocco note

Per i miei altri progetti il mio codice utilizza un array di questi numeri. Ho riformattato la stringa HEX nel seguente formato.

DeviceAddress tempSensorSerial[9]= {

{0x28, 0xFF, 0x07, 0xA6, 0x70, 0x17, 0x04, 0xB5}, {0x28, 0xFF, 0xB2, 0xA6, 0x70, 0x17, 0x04, 0x28}, {0x28, 0xFF, 0x42, 0x98, 0x70, 0x17, 0, 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, 0xFF, 0xFF, 0x42, 0x71, 0x17, 0x04, 0x4C} };

Passaggio 5: finito

Finito
Finito

Ora puoi identificare ogni singolo sensore di temperatura a 1 filo DS18B20 nel tuo codice e utilizzare una funzione come questa:

float getTemperature(byte j){

sensori.requestTemperaturesByAddress(tempSensorSerial[j]);

float tempC = sensor.getTempC(tempSensorSerial[j]);

ritorno tempC;

}

Consigliato: