Guten Tag Kennt einer das verhalten eines Temp.-fühler LM75, dass dieser nur nach einem reset auszulesen ist und danach nicht mehr, obwohl sie in einer while schleife sitzt? Bei dem ersten LM75 Funktioniert er mit der Schleife, nach 2 weiten Typen Funktioniert es nur nach einem Reset, bzw. bei Spannung ein. Schleife und auslesen sollte Funktionieren, da es mit dem ersten LM75 Funktioniert. Ich konnte keine besonderheit des Beschalten gefunden, Adresse eingestellt, SCL und SDA ist richtig verdrahtet mit PullUP. Pin 3 hab ich unbeachtet gelassen, da es nur ein Ausgang ist, wie es mir erscheint. Hoffe einer weiß ein Rat.
@ Tin (Gast) >Kennt einer das verhalten eines Temp.-fühler LM75, dass dieser nur nach >einem reset auszulesen ist und danach nicht mehr, obwohl sie in einer >while schleife sitzt? Hast du dir mal SDA und SCL angeschaut? Dazu reicht ein Multimeter. Ich wette, SDA hängt auf LOW. Du liest wahrschinlich nur 8 Bit aus und der IC will aber moch das LSB ausgeben. Wenn das zufällig LOW ist, knallts. Steht auch im Datenblatt. MFG Falk
Ich hab es mir per Ozsi angeschaut und es stehen Daten an, sowohl Clock als Data. Ich kann es mir nicht erklären warum es nur beim Reset Funktioniert und mit dem 1. geht es wunderbar...
Habe ein unterschied zwischen den LM75 gefunden, der erste funktionierene ist ein LM75A und die anderen sind alle LM75... Ich muss also meine Routine ändern, ich hab allerdings keine Idee mehr an welchen Punkt es liegen könnte. Ich sende das 0 Byte auf die Adresse mit 0 am ende, ende danach die Adresse mit 1 am ende und dann Frag ich beide Bytes ab und setz die um. Das Funktioniert aber scheinbar nur mit dem LM75A. Ich benutz die Routine von Peter Fleury. Ausschnitt: i2c_start(0b10011110); // Adresse i2c_write(0); // 0 Byte zur Init. i2c_rep_start(0b10011111); // Adresse ++ higher_byte = i2c_readAck(); //Auslesen High lower_byte = i2c_readNak(); //Auslesen Low i2c_stop(); // stoppen Vielleicht hat wer einer eine Idee.
Ich habe es nun zum Teil gelöst. Ich lasse die Temperatur über eine extra if abfrage laufen, da Funktioniert es. Allerdings weiß ich nicht wo der Unterschied sein soll... Danke für die Hilfe.
Es liegt dran, dass der LM75 33ms brauch, um überhaupt einen Messwert zu haben, und wenn man die ihm nicht lässt gehts nicht. PS: der LM75A braucht sogar 100ms ist aber genauer.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.