Sida 1 av 1

TC74 temperaturmätare ger bara värdet 1416

Postat: 21 februari 2015, 11:11:57
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?

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

Postat: 21 februari 2015, 11:35:27
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?

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

Postat: 21 februari 2015, 11:42:17
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.

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

Postat: 21 februari 2015, 14:13:21
av TomasL
Och din funktion Wire stöder I2C, eller?
Varför kör du Serial.begin(9600)?

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

Postat: 21 februari 2015, 14:24:07
av MagnusK
Här visas hur man kan sätta upp arduino och en tc74:

http://www.instructables.com/id/Thermos ... uino-code/

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

Postat: 21 februari 2015, 14:38:07
av hummel
Vad får du för resultat tillbaka från dina Wire-anrop?

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

Postat: 21 februari 2015, 15:00:19
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.

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

Postat: 21 februari 2015, 15:02:33
av sodjan
Vilken while-loop? Det finns ingen "while" i koden...

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

Postat: 21 februari 2015, 15:20:09
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.