probelma sensore di temperatura tmp275

buongiorno ragazzi,
tra le mie prove mi sono imbattuto nel sensore di temperatura tmp275.
guardo le sketch, vedo in giro chi l’ha provato e dicono di guardare il tmp102, guardo un po’ di cose e inizio con il collegamento.

collego sdata al pin analogico 4
scl (clock) al pin analogico 5
ao,a1,a2 al gnd (indirizzo 0x48)
il gnd con il gnd
il v++ ai 3 v

il problema è che quando collego l’alimentazione al sensore, questo mi ruba tutta l’alimentazione ad arduino e lo spegne.

cosa può essere? collego sbagliato qualcosa?
problemi software non penso, non ho ancora iniziato a programmare, perchè non riesco ad alimentare il sensore.

metto sketch

#include <Wire.h>  // Includo la libreria Wire.h

byte ValoreSignificativo; // Creo una costante byte per il valore MSB

byte ValoreNonSignificativo; // Creo una costante byte per il valore LSB

int Valore; // Creo un intero

byte NByte; // Creo una costante per contenere 2 Byte

float A = 0.0625; // Creo variabile per contenere valori a virgola mobile.

void setup()

{

Serial.begin(9600); // Inizializzo al baud 9600

Wire.begin(); // Inizializzo Wire

}

void loop()

{

NByte = Wire.requestFrom(0x48, 2);   // Salvo 2 Byte dall’indirizzo 72 del Sensore nella variabile NByte

if (NByte == 2) // Se i Byte prelevati sono uguali a 2 esegui....

{

ValoreSignificativo = Wire.read(); // Salvo il valore MSB sulla variabile

ValoreNonSignificativo = Wire.read();  // Salvo il valore LSB sulla varabile

Valore = ((ValoreSignificativo) << 4); // Shifto i valori a sinistra

Valore |= (ValoreNonSignificativo >> 4); // Shifto i valori a destra, ritorna il valore dell'or effettuato bit a bit sui valori ritornati dalle 2 espressioni.

if(Valore >= 2048) // Se il valore è maggiore o uguale di 2048 allora ho un numero negativo

{

Serial.print("-"); // Scrivo sulla seriale il simbolo Negativo

Serial.println((4096 - Valore)*A); // Scrivo sulla seriale la temperatura negativa

}

else if  (Valore <= 2048) // Altrimenti se il Valore è minore o uguale di 2048 ho un numero positivo

{

Serial.print("+"); // Scrivo sulla seriale il simbolo positivo

Serial.println(Valore*A);  // Scrivo sulla seriale la temperatura positiva

}

else // Altrimenti se il sensore non è connesso

{

Serial.println("Sensore non connesso"); // Scrivo sulla seriale “Sensore non Connesso”

}

}

delay(200); // Aspetto 200 ms prima del nuovo ciclo

}

allego datasheet e siti dove ho guardato

uno

due

buona giornata

tmp275.pdf (847 KB)

Come sempre omettete di dire la cosa più importante ... la board su cui state lavorando ... diamo per scontato che sia un Arduino/Genuino UNO ... ::)

Con riferimento al datasheet, il pin 1 (SDA) del IC deve andare al pin A4 di Arduino, il pin 2 (SCL) ad A5 di Arduino, il pin 4 al GND ed il pin 8 al +Vcc.

Quindi, per assegnargli l'indirizzo 0x48 colleghi i pin 5, 6 e 7 del IC a GND.

Ora, riverifica i collegamenti ed i pin del IC (... mi raccomando attenzione al riferimento del pin 1) perché, così come detto, DEVE funzionare senza problemi ... altrimenti è guasto.

Per fare le prove, collega SOLO detto IC e no altri accessori/sensori/ecc. , così sei sicuro della prova.

Ovviamente ... hai messo le pull-up sul bus I2C vero ?

Guglielmo

e poi quel sensore, diversamente dal TMP102, funziona anche a 5V

grazie ragazzi per essere stati così veloci.

si scusa gpb01 la mia dimenticanza, uso arduino uno. io sto già provando il sensore da solo. le resistenze di pull-up le metto sul pin 1 del sensore e sul pin 2 quindi sui sdata e scl (sono da 1k) ma niente si spegne ancora, ho provato a metterle da 10 k (magari sono queste il problema) non si spegne ma non parte manco il codice.

Quindi, per assegnargli l'indirizzo 0x48 colleghi i pin 5, 6 e 7 del IC a GND

si collego ao,ai,a2(pin 5,6,7) a gnd

Brunello ho visto che posso alimentare anche a 5 ma avevo visto, mi pare, che dove avevo guardato alimentava a 3v. proverò le varie combinazioni.

buona giornata.

.... alimentare un sensore a +3V e poi collegarlo sui pin di una MCU che lavora a +5V e con pull-up a +5V ... vuol dire volersi fare del male.

Normalmente questi oggetti sui pin reggono al massimo Vcc + 0.5V ... dopo di che ... si danneggiano ...

Spero non sia questo il tuo caso ... ma se continua a "spegnere" Arduino, significa che c'è un corto da qualche parte, verifica bene ...

Guglielmo

Se si spegne l' arduino quando colleghi il sensore allore hai sbagliato i collegamneti oppure il sensore é rotto. Posta una foto del circuito che hai fatto per capire se lo hai collegato giusto. Ciao Uwe

ri-grazie per la tempestività :slight_smile:

ok allora il problema è in un possibile corto.

volevo chiedere se le resistenze andavano bene così o dovevo aumentare qualcosa o posizionarle in un altro modo?

vi allego la foto ( non odiatemi è tutto volatile), sto usando jumper volatili ma sono sicuro che non danno corto (non ci sono le resistenze perchè le avevo tolte), il problema a questo punto, secondo me , risiede nella saldatura alla basetta… proverò a guardare dei possibili corti.

grazie

per favore riuscite a rispondere alle domande sulle resistenze così se trovo i corti so che non c’è più nulla di “errato”.

P.S. gpb01 però sul datasheet se non erro c’è scritto di alimentare a 5v, dimmi se sbaglio oppure dove sbaglio…(secondo te come dovrei connetterlo ad arduino?)

buona serata

Le resistenze di pull-up mettile attorno ai 4.7KΩ che è un valore normalmente adeguato per un circuito che lavora a 5V.

Le saldature che vedo sono ... emmm ... "orribili" ... e il rischio di corti mi sembra piuttosto alto ... ::)

Per quanto riguarda l'alimentazione ... è esattamente quello che ti dicevo ... alimenta il tutto a 5V e lascia stare i 3V.

Guglielmo

buongiorno ragazzi,
grazie gpb01 per le informazioni… le saldature mi parevano anche a me non molto buone ma ho fatto lo stesso un tentivo :slight_smile: vedrò il da farsi oggi… ok alimenterò a 5 v.
grazie ragazzi e buona giornata 8)

vivaArdu:
… le saldature mi parevano anche a me non molto buone ma ho fatto lo stesso un tentativo :slight_smile:

… ma se usassi una Breakout Board ? Tipo QUESTA … così non devi fare saldature su quel chip :wink:

Guglielmo

Comunque controlla con un tester se i pin tra di loro sono isolati (un integrato non alimentato ha normalmente nessuna conducibilitá bassa tra i pin)

Nella foto dove si trova il punto o la riga che segnala ip pin 1? |500x368

Ciao Uwe

buonpomeriggio ragazzi,

ho controllato i vari pin e non dovrebbe esserci niente di "sbagliato" ho riguardato bene i miei collegamenti e mi sembra che sbagliavo ad inserire un jumper.... riguardato tutto ora se connetto il sensore ad arduino finalmente non me lo spegne più, però mi sa che ho bruciato il sensore :) perchè se non metto le pull up non mi fa vedere niente il codice se ferma nel Wire.requestFrom(0x48,2); e se metto le pull up mi fa edere a video temperature di come quando il sensore è spento, ovvvero di quando non collego i scl e sda ad arduino. proverò con un nuovo sensore...

uwefed, per quanto riguarda il pin uno io guardo dove c'è la riga sul sensore e il pin 1 dovrebbe essere quello dove c'è scritto R1(dove c'è quel buco)...

però osservando la scheda noto che ci sono tre resistori io nella mia bread board ne metto solo due, sui pin sda(1) e scl(2) devo mettere delle resistenze anche sul v+ o GND secondo voi?

buona giornata a tutti...

PS grazie guglielmo per il consiglio ne terrò presente 8)

vivaArdu: ... se non metto le pull up non mi fa vedere niente il codice si ferma ...

... se non metti le resistenze NON hai più segnali visto che NON c'è nessuno che da il livello HIGH ... e come se non avessi il bus !!!

vivaArdu: però osservando la scheda noto che ci sono tre resistori io nella mia bread board ne metto solo due, sui pin sda(1) e scl(2) devo mettere delle resistenze anche sul v+ o GND secondo voi?

Ma hai letto bene il datasheet ? ? ?

Pagina 5/20, all'inizio :

The TMP275 requires no external components for operation except for pull-up resistors on SCL, SDA, and ALERT, although a 0.1µF bypass capacitor is recommended, as shown in Figure 1.

... e NON mi sembra che tu usi il segnale di ALERT quindi ... ::)

Guglielmo

Si, ma se guardiamo la foto che hai postato, sembra che tu abbia invertito i collegamenti. Hai considerato come pin 1, quello in alto a sinistra, ma a me pare ( vedendo la stampigliatura sul chip ) che il pin 1 sia in realta' quello in basso a destra, dove c'e' appunto scritto 1 sul CS

e che quel pallino rosso sia del tutto fuori posizione

@Brunello : Ma come diavolo fai a vedere qualche cosa sulla foto messa da vivaArdu ? ? ? :o Occhi di falco ? :wink:

Io non riesco mica a vedere il segno del pin 1 … se la rifacesse dall’alto illuminandola bene … sarebbe molto meglio !!! :smiley:

Guglielmo

Occhi di falco ?

.... una volta !! Mo' senza lentino nemmeno piu' riesco a leggere le sigle dei chip

e' che quel chip non ha il classico punto sul pin1, ma e' la riga stampigliata. nella foto che ha postato @uwe, se fai visualizza immagine, si vede anche bene

Brunello: e' che quel chip non ha il classico punto sul pin1, ma e' la riga stampigliata.

... ma allora so' "bastardi" ... sul datasheet c'è chiaramente indicato di fare riferimento al pallino vicino al pin 1 ... ::)

Guglielmo

*P.S.: Sia a pagina 2/20 che a pagina 16/20 ... *

buongiorno ragazzi!!!

vedo che ci state dando dentro :slight_smile:

avete tutti ragione… mi spiego:

@Brunello hai ragionissima io ero cascato nel punto del datasheet come gpb01 quindi ho ricontrollato tutti i collegamenti ora va tutto ok solo che ho il problema che ho scritto un po’ di post fa,sembra che io abbia “bruciato” il sensore perchè con le pull-up mi da valori come se non fosse attaccato ai pin analogici (provo a riprenderlo e rifare tutto)…

@gpb01: si mi ero risposto da solo dopo 10 miniti che avevo messo il post che la resistenza era dell’alert :)…

ho però da fare ancora una domanda: mi sembra che sull’immagine della scheda postata da Uwe le resistenze siano di 1,8K o mi sbaglio?(tu mi avevi indicato valori di 4,7K) poi vedo la presenza anche di un condensatore servirebbe anche a me?

buona giornata

… per le resistenze … allora studiati il documento allegato, per il condensatore, è consigliato sul datasheet :wink:

Guglielmo

IL BUS I2C.pdf (752 KB)

ottimo!!!!

grazie gpb01, letto tutto, un po' più chiaro... farò ancora un po' di prove...

buona giornata