Sensore di temperatura DS18x2x.

Il blocco (Figura 1) consente di utilizzare i sensori di temperatura DS18B20, DS18S20, DS1822 nel progetto.

                                                                                                  Figura 1 

Descrizione del sensore.

Ho a disposizione un sensore DS18B20, sulla base di questo sensore descriverò il funzionamento del blocco.
DS18B20 è un sensore di temperatura digitale ad alta precisione.
Caratteristiche principali:
  1. Intervallo: -55..125 °C.
  2. Precisione: ±0.5°C nel campo -10°C..85°C.
  3. Alimentazione: 3-5,5 V.
  4. Corrente assorbita: 1mA
  5. Interfaccia di comunicazione: 1-Wire (OneWire).
  6. Alloggiamento: 3-Pin TO-92(a), 8-Pin SO(b), 8-Pin µSOP(c), versione sigillata(d) (Figura 2).

                                                                                                  Figura 2 

Per mantenere stabile il trasferimento dei dati, dovrai collegare il resistore di pull-up da 4,7kΩ tra i pin di segnale (DQ) e di alimentazione (VDD). Un resistore di pull-up è strettamente necessario e viene installato vicino all'output del microcontrollore (Figura 3).

                                                                                                  Figura 3 

Un progetto può implementare più bus OneWire, a ogni bus si possono collegare più dispositivi. Nella finestra di dialogo delle impostazioni del blocco, è necessario specificare il bus OneWire a cui è collegato il sensore (il pin), l'indirizzo del sensore e il tipo di sensore (Figura 4).

                                                                                                  Figura 4 

L'indirizzo e il tipo di sensore possono essere trovati utilizzando lo strumento "Scanning the OneWire bus". Preferisco usare questo metodo per specificare separatamente l'indirizzo per ciascun sensore (facendo un segno su ciascun sensore). Inserendo manualmente l'indirizzo nelle impostazioni o da file salvati in precedenza. C'è una seconda opzione che è descritta di seguito.

La seconda opzione per specificare l'indirizzo e il tipo di sensore consiste nell'utilizzare un array. Questo metodo è conveniente se utilizzato in combinazione con il blocco "Scanning the bus OneWire" (Figura 5). 

Il blocco viene utilizzato per scansionare il bus OneWare e salvare i dati ricevuti in un array, per un ulteriore utilizzo di questi array nei blocchi sensore DS18x2x. Il blocco può essere parametrizzato nella finestra di modifica del blocco (Figura 6).

                                                                                                  Figura 6

Qui possiamo creare, selezionare da già esistenti, eliminare un array. Creeremo un array di tipo Byte con una dimensione di 9 elementi. I primi otto elementi contengono l'indirizzo del sensore, il nono elemento è il suo tipo (Figura 7).

                                                                                                  Figura 7 

La scansione avviene sul fronte di salita dell'impulso all'ingresso "En". Dopo la scansione, se il sensore viene trovato, un livelo logico alto appare all'output dell'array corrispondente (Figura 8).

                                                                                                  Figura 8 

Utilizzando lo stesso array in entrambi i blocchi, è possibile determinare automaticamente l'indirizzo e il tipo dell'array. 

Selezionando l'opzione "Array" e premendo il pulsante "Choose" nelle impostazioni del sensore, selezioniamo l'array creato per questo sensore. Qui possiamo anche creare un nuovo array premendo il pulsante "Create" (Figura 9).

                                                                                                  Figura 9

Quando la casella "The error output of the survey" è selezionata, l'output "Error" apparirà sul blocco e quando si verifica un errore di interrogazione del sensore, l'output sarà a livello logico alto. Selezionando la casella "Enable input of the poll" attiviamo l'input "En" che controllare l'interrogazione del sensore, il sensore verrà interrogato solo se è presente un livello logico alto a questo input. Qui puoi anche determinare la frequenza di interrogazione del sensore, scegliendo tra ogni ciclo (sconsigliato) o periodicamente indicando il tempo nel campo sottostante.

La casella "Parasite power".

La modalità "Parasite power" permette di collegare il sensore di temperatura al microcontrollore con soli due fili, cosa particolarmente importante quando il sensore è posto a notevole distanza dal controllore. La modalità "Parasite power" ha molte caratteristiche che puoi leggere nella scheda tecnica. La cosa principale è che in questa modalità non è garantito il funzionamento del sensore a temperature superiori a 100 °C, e necessario utilizzare un alimentatore esterno. In modalità "Parasite power", il pin VDD dal sensore è collegato a GND. In questa modalità di connessione il circuito non è sempre stabile e potrebbe guastarsi, ciò è dovuto alla bassa capacità del condensatore di alimentazione integrato (Figura 10).

                                                                                                  Figura 10

Collegare il sensore DS18B20 secondo lo schema di alimentazione "Parasite power" utilizzando circuiti esterni, tale schema funziona in modo più stabile del precedente (Figura 11).

                                                                                                  Figura 11 

È meglio non utilizzare inutilmente la modalità "Parasite power", poiché le prestazioni e la stabilità potrebbero risentirne. 

File FLPRog. 

Crea il tuo sito web gratis! Questo sito è stato creato con Webnode. Crea il tuo sito gratuito oggi stesso! Inizia