TC74 temperaturmätare ger bara värdet 1416

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

TC74 temperaturmätare ger bara värdet 1416

Inlägg av Al_Bundy »

Hej!

Jag har 5 olika TC74 temperaturmätare som är en I2C krets. Just mina TC74 har dock tyvärr bara samma adress, dvs adress 72, eller 10010000. Enligt databladet så har komponent A0 denna adress och alla mina TC74 heter TC74A0. Resistorerna som ni ser på bilden är 2 stycken 4.7 kOhm.

Då har jag kopplat upp så här:
Bild

och min kod ser ut så här:

Kod: Markera allt

#include <Wire.h>
 
#define i2c_addr 72
 
void setup() {
  Serial.begin(9600);
  Wire.begin();
}
 
void loop() {  
  Wire.beginTransmission(i2c_addr);
  Wire.write(0);
  Wire.endTransmission();
  
  Wire.requestFrom(i2c_addr, 1);
  int tempC = Wire.read();
  Serial.println(tempC);
  delay(1000);
}
och mitt output är detta:
1416
1416
1416
1416
1416
1416
1416
1416
1416
1416
Varför blir det så?
Kan mina TC74 vara sönder?
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Re: TC74 temperaturmätare ger bara värdet 1416

Inlägg av mri »

Inte för att jag vet nåt om arduino, men varför har du Wire.endTransmission(); efter att du skickat commando 0 och före du läser av temperaturen?
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: TC74 temperaturmätare ger bara värdet 1416

Inlägg av Al_Bundy »

0:an betyder att jag frågar efter första registret. 1:an betyder att jag hämtar ett bit värde från adressen 72.

Jag har mest bara gått ut efter en bok bara för jag försöker lära mig använda i2c igenom att testa. :)
Tar jag bort EndTransmission så får jag 1304 tillbaka bara istället för 1416.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46973
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: TC74 temperaturmätare ger bara värdet 1416

Inlägg av TomasL »

Och din funktion Wire stöder I2C, eller?
Varför kör du Serial.begin(9600)?
MagnusK
Inlägg: 84
Blev medlem: 21 januari 2015, 22:07:38

Re: TC74 temperaturmätare ger bara värdet 1416

Inlägg av MagnusK »

Här visas hur man kan sätta upp arduino och en tc74:

http://www.instructables.com/id/Thermos ... uino-code/
hummel
Inlägg: 2544
Blev medlem: 28 november 2009, 10:40:52
Ort: Stockholm

Re: TC74 temperaturmätare ger bara värdet 1416

Inlägg av hummel »

Vad får du för resultat tillbaka från dina Wire-anrop?
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: TC74 temperaturmätare ger bara värdet 1416

Inlägg av Al_Bundy »

Jag tog bort while-loopen och då fungerade det. Riktigt konstigt faktiskt. Trodde den skulle behövas för att invänta svar.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: TC74 temperaturmätare ger bara värdet 1416

Inlägg av sodjan »

Vilken while-loop? Det finns ingen "while" i koden...
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: TC74 temperaturmätare ger bara värdet 1416

Inlägg av Al_Bundy »

Den koden som finns där uppe är inte direkt korrekt kod(gammal version), jag skrev via mobilen och det är exakt samma kod, men min ska ha en while loop som inväntar svar från TC74.

Den dator jag skriver kod på har inte internet.

whileloopen ser ut så här:

Kod: Markera allt

while(Wire.avaible() == 1)
{
  int tempC = Wire.read();
}
Men det kan hända att programmet är för snabbt så whileloopen hinner inte.
Skriv svar