Re: Probleme mit LM75 Kategorie: I²C-Bus (von BanannaJoe - 3.02.2006 9:20) | ||
Als Antwort auf Re: Probleme mit LM75 von Martin - 2.02.2006 12:33 | ||
| ||
> > Hallo, > > ich habe ein kleines problem mit dem LM75 Temperatur Sensor > > ich habe als Vorlage das Modul für den DS1621 benutzt und nur den Wert geändert, mit dem man den > > Sensor den Befehl gibt die Temperaturwerte zu senden. Ich hatte auch irgendwo im Forum ein Modul gefunden > > aber da habe ich die gleichen Probleme. > > beim ersten benutzen der read Funktion bekomme ich den Temperaturwert übermittelt, > > weitere leseversuche scheitern. > > wenn ich vor jedem Auslesen eine pcf.init() mache funltioniert es. Ich schätze mal, dass aus welchem Grund auch immer > > der i2c.stop() befehl nicht richtig Funktioniert. > > Wenn jemand Erfahrung mit dem Sensor hat würde ich mich über jede Hilfe freuen. > > > > > > function read(byte addr) returns int > > { byte data1,data2; > > int data; > > addr=0b10010000 or (addr shl 1); > > i2c.cstart(addr); > > i2c.write(0x00); > > i2c.start(addr or 1); > > data1=i2c.read(); > > data2=i2c.readlast(); > > i2c.stop(); > > data=data1*10; > > if data1 and 0x80 {data = (128 - (data1 & 0x7F))*(-10);} > > if data2 and 0x80 data=data+5; > > return data; > > } > > > > > > > > Hallo, > du startest mit i2c.cstart (mit Capture!) , und stopst mit i2c.stop (ohne Capture!) ?? > > Martin Hab das aus dem DS1621 modul genommen, das sieht es auch so aus. /**Temperatur lesen (z.B. 105^=10,5°C)*****************************/ function readi(byte addr) returns int { byte data1,data2; int data; addr=0b10010000 or (addr shl 1); i2c.cstart(addr); i2c.write(0xAA); i2c.start(addr or 1); data1=i2c.read(); data2=i2c.readlast(); i2c.stop(); data=data1*10; if data1 and 0x80 {data = (128 - (data1 & 0x7F))*(-10);} if data2==0x80 data=data+5; return data; } ich habe auch ein DS1621 mit dem klapps auch ohne neuem init | ||
Antwort schreiben Antworten: |