Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/ognigiorno.com/wp-content/plugins/math-comment-spam-protection/math-comment-spam-protection.php:1) in /var/www/html/ognigiorno.com/wp-includes/feed-rss2.php on line 8 sensore – OgniGiorno.com https://www.ognigiorno.com insieme tutti i giorni Sun, 13 Mar 2011 20:28:21 +0000 en-US hourly 1 https://wordpress.org/?v=5.8.10 Il sensore di temperatura DS1775 https://www.ognigiorno.com/2009/03/26/il-sensore-di-temperatura-ds1775.html https://www.ognigiorno.com/2009/03/26/il-sensore-di-temperatura-ds1775.html#respond Thu, 26 Mar 2009 12:42:38 +0000 http://www.ognigiorno.com/?p=240 Read More »Il sensore di temperatura DS1775]]> Il DS1775 prodotto da Dallas Semiconductors è un sensore di temperatura/termostato che può essere utilizzato nei nostri circuiti, pilotato da un controllore tramite il protocollo I2C.
Le applicazioni sono molteplici: termometro digitale, termostato, controllo di temperatura interna al circuito, registratore di temperatura, …
Purtroppo è disponibile solo nel package SOT23, quindi per utilizzarlo va necessariamente realizzato un circuito stampato abbastanza preciso. Suggerisco il metodo con il ferro da stiro e carta patinata.
dspr1775

Come tutti i dispositivi I2C, dobbiamo ragionare per locazioni di memoria: scriviamo o leggiamo valori da indirizzi precisi. Questo sensore di temperatura utilizza 4 locazioni differenti:
00h – contiene il valore della temperatura. Il valore è a 12 bit, quindi dobbiamo effettuare due letture

i2c_put_read_address(temp_addr + a)
i2c_get_data(tempMSB)
i2c_put_ack
i2c_get_data(tempLSB)
i2c_put_nack
i2c_put_stop

01h – registro di configurazione. Lo scriviamo con la configurazione desiderata (di seguito il dettaglio)

Gli altri due servono per controllare il termostato e hanno entrambi la stessa struttura a 12 bit del registro temperatura
02h – temperatura isteresi del termostato. Rappresenta la soglia di intervento. Il termostato è attivo al di sotto della temperatura impostata. Si disattiva al raggiungimento di tale valore per riattivarsi quando la temperatura scenda al di sotto del valore di isteresi.
03h – Valore della temperatura del termostato

Codifica della temperatura
Il valore della temperatura viene rappresentato in questo modo:
1775_temperatura

Questo significa che la parte intera la otteniamo dal primo byte che leggiamo. Il valore letto nel byte meno significativo va shiftato di 4 a destra e moltiplicato per 0.0625 per ottenere la parte decimale della temperatura. I bit sono effettivamente utilizzati in base alla risoluzione impostata. Di default la risoluzione è a 9 bit, quindi abbiamo letture valide solo per il primo bit (0.5?C)

Byte di configurazione (02h)

1775_configurazione
SD: quando portato a 1 il convertitore va in stand-by, restando in ascolto solo sul BUS I2C. A 0 (default) il dispositivo effettua continuamente rilevazione della temperatura

TM: seleziona il modo operativo del termostato. 0 funziona nella modalità descritta nell’esempio che ho fatto parlando di isteresi. A 1 il funzionamento è “a interrupt”, cioè partendo dal valore alto che indica la situazione normale, l’uscita viene abbassata ad ogni evento significativo (temperatura sopra la soglia o sotto l’isteresi). Il valore resta basso fino a che non viene effettuata una lettura I2C.

POL indica il significato di “attivo” dell’uscita. Se POL vale 1, attivo significa 1, altrimenti 0

F0-F1 indica il numero di letture da effettuare prima di considerare valido il cambio stato quando si opera in modalità interrupt.

1775_letture

R0-R1 indica la risoluzione del termometro
1775_risoluzione

Indirizzi
Trattandosi di un dispositivo I2c, dobbiamo parlare di indirizzo. L’indirizzo è necessario per effettuare la comunicazione. Diversamente da quanto solitamente avviene per altri dispositivi (per esempio le EEPROM seriali) per il DS1775 l’indirizzo è unico e cablato nel processore, composto da due parti.

  • una parte fissa: 1001
  • altri 3 bit determinabili dal part number dell’integrato, in particolare:
    DS1775R/TRL 000
    DS1775R/TR1 001
    DS1775R/TR2 010
    DS1775R/TR3 011
    DS1775R/TR4 100
    DS1775R/TR5 101
    DS1775R/TR6 110
    DS1775R/TR7 111

Va quindi prestata attenzione al momento dell’acquisto

]]>
https://www.ognigiorno.com/2009/03/26/il-sensore-di-temperatura-ds1775.html/feed 0