So, jetzt passts endgültig :D
Wie findet ihr so etwas immer nur raus?
Also, danke alle noch einmal.
Druckbare Version
So, jetzt passts endgültig :D
Wie findet ihr so etwas immer nur raus?
Also, danke alle noch einmal.
Keine Ahnung, mir war so danach... Eingebung...Visionen....
Jetzt mal im Ernst, wenn du dir das Programm mal anschaust siehst du
das du eine Variable in einer Zeile (Z1=Z1 -786) total verwirrst. Stell dir das mal mit Zahlen vor : 5=5-786
Da wirst du dich immer im Kreis drehen, ohne was vernünftiges zu erreichen.
Allerdings ist mir schleierhaft warum Bascom das beim Compilieren angemeckert hat, und wie das vorher funktioniert hat.
Aber Egal, was zählt ist das Ergebnis.
MfG
Neutro
Was soll an so einer Programmzeile verwirrend sein?
Da steht eben nicht z.B. 5=5-786, sondern:
berechte Z1 minus 786 und speichere das Ergebnis in Z1.
Das ist ganz normaler Progammieralltag, wenn man z.B. eine Variable um 2 erhöhen will. Dann sieht das auch so aus:
X = X + 2
Es ist eben keine Gleichung, sondern eine Programmanweisung, den rechten Teil zu berechnen und das Ergebnis in die linke Variable zu schreiben.
Gruß MeckPommER
Da magst du Recht haben, aber warum geht es dann wenn er für die Berechnung eine andere Variable verwendet?
Das ist mir dann leider nicht einleuchtend, ich war immer davon ausgegangen das man eine Variable nicht 2x in einer Zeile einsetzen kann, weil Bascom das nicht kann.
Für eine Erklärung und das dazugehörige dazulernen wäre ich dankbar.
MfG
Neutro
Wenn du recht hättest, dürfte die Zeile
temp = temp + 25.7
eigentlich auch nicht funktionieren. Ich kann dir nicht sagen, warum es vorher nicht ging. Vielleicht Interpretierte Bascom die 786 als Integer und hat sich dann bei der Typenkonvertierung vertan, who knows ...
2x selbige Variable in einer Zeile ist kein Problem. Nur mehr als eine mathematische Funktion in einer Zeile geht nicht. Oft habe ich Fehler festgestellt, wenn Typenkonvertierung und eine mathematische Operation auseinandertreffen.
[Single] = [Word] * 4.2
sowas oder ähnliches führt manchmal zu den "lustigsten" Ergebnissen, wogegen
[Single] = [Word]
[Single] = [Single] * 4.2
dann wieder ganz brav und artig funktioniert.
Gruß MeckPommER
Hast Recht, war mir gar nicht aufgefallen.
Manchmal sind die Wege von Bascom wohl unergründlich....
Auch wenn es jetzt OT geht:
Welche Variablen Typen (Byte, Integer, Single, usw)
lassen sich eigentlich miteinander verarbeiten bei Mathematischen
Berechnungen?
Ja da hat man doch wieder etwas gelernt \:D/
Ich störe nur ungern, aber ich habe ein Problem ](*,)
Irgend wie liegt die Temperatur immer zwischen 28.23°C und 29.04°C, egal, welche innentemperatur herscht. Es ändert sich zwar linear zur realen Temperatur, aber der Bereich stimmt nicht.
Es wurde noch eine Tasterfunktion hinzugefügt.
Hier noch einmal der Code:
Code:$regfile "m48def.dat"
$crystal = 8000000
Config Pinc.4 = Input
Portc.4 = 0
Config Portb = Output
Config Portd = Output
Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.5 , Db6 = Portb.7 , Db7 = Portb.6 , E = Portd.7 , Rs = Portb.0
Config Lcd = 16 * 2
Config Adc = Single , Prescaler = Auto
Config Portc.0 = Input
Deflcdchar 6 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32 '°C
Dim W As Word
Dim Z1 As Single
Dim Z2 As Single
Dim Temp As Single
T Alias Pinc.4
L Alias Portb.1
Cursor Off
Do
If T = 1 Then
L = 1
W = Getadc(2)
Z1 = W
Z2 = Z1 - 714
Temp = Z2 * 0.035
Temp = Temp + 25.7
Cls
Locate 1 , 1
Lcd "Temp: " ; Fusing(temp , "##.##") ; Chr(6) ; "C"
Locate 2 , 1
Lcd ""
Waitms 1000
Else
Cls
L = 0
End If
Waitms 1
Loop
Kein Wunder ... in deiner Liste von Seite 1 hattest du Messwerte gezeigt die (über den Daumen) pro Grad ca. 4-5 Einheiten auseinanderliegen.
Bei deiner jetzigen Formel müssen die Messwerte schon knapp 30 Einheiten auseinanderliegen, damit ein Grad Temperaturunterschied angezeigt wird.
Über den Daumen würde ich den Faktor von 0.035 in 0.222 ändern und das Ergebnis dann in der Zeile darunter auf die tatsächlichen Werte anpassen.
Da deine Messwerte aber nicht sehr linear aussehen, glaube ich, das du große Messfehler in deiner Liste hast. Teilweise hast du nämlich auch 7-8 Einheiten pro Grad.
Mal ganz allgemein: die Funktion aus Messwert und der demnach festgestellten Temperatur sollte bei deinem Tempsensor eine Gerade sein. Kannst dir das ja mal aufzeichnen, ist enorm hilfreich.
Diese Funktion mußt du in deiner Anpassung abbilden. Der Faktor ist die Steigung der Geraten und die Addition eines festen Wertes sorgt für die stimmige Höhe der Geraden.
Mit irgendwelchen Werten herumprobieren bringt zumeist nicht viel. Das A und O sind brauchbare Messwerte.
Gruß MeckPommER
Wie finde ich diesen "tatsächlichen Wert" heraus?
P.S. Sehr sehr sehr geiler Hexabot haste da. Das hast du wirklich toll gemacht !
Siehe mein Edit ein Posting zuvor. Man könnte das Ganze auch theoretisch machen, da es aber immer Bauteiltolleranzen gibt, empfiehlt sich die Messmethode.
Thx, ich werde das Kompliment Marvin ausrichten ;-)
Frage: Kann ich nicht eine "Autokalibrierung" einbauen?
Also das der Faktor immer automatisch aus W gerechnet wird?
Oder sonst irgend wie?
Mfg JeyBee
Das würde nur gehen, wenn der µC die richtige Temperatur kennt. Das ist aber nicht der Fall.
logisch......sry für die frage.
Bin gerade am temps testen....
OMFFGG
Ich brings einfach nicht. Bzw. Die Hardware. Wenn ich den Wert W ausgeben lasse, dann die Temp mittels _zwei_ Termometern messe, umrechne etc. funktioniert das am anfang ganz schön. Doch sobald ich heize bzw. kühle passirt nix gross. wenn ich z.B. von 26°C auf 35°C erwärme, zeigt das LCD maximal 29°C.
Ich habe mehrere Formeln (faktoren) errechnet. Jedoch immer das selbe Ergenis: Die Aktuelle Temperatur +- 5°C.
Ja, ich habe von 3°C bis 40°C verschiedene Proben genommen, Exel angewendet etc.
Hier noch einmal die Formel:
Code:Z1 = W
Z2 = Z1 - 823
Temp = Z2 * 0.0131
Temp = Temp + 26.13
Immer locker bleiben ... erste Bastler-Regel :-)
Poste einfach mal deine Messwerte mit den gemessenen (realen) Temperaturen, dann sehen wir weiter.
Hallo JeeBee,
der Grund dafür ist ganz einfach.
Der Wert 0,0131 ist viel zu klein. Wie kommst Du eigentlich darauf?
Dieser Wert muß die Temperaturänderung je Digit des ADC sein. Das berechnet man wie folgt.
Wir wissen der Temperatursensor ändert die Ausgangsspannung um 0,01 V/K
Wir wissen Referenzspannung = 5V und ADC Auflösung = 1024Digit
Daraus ergibt sich folgende Formel: Wert = 0,01V/K / (5V / 1024 Digit) = 0,488281 K/Digit
Dieser Wert bleibt konstant und sollte nicht verändert werden.
Nun mußt Du nur noch bei einer bekannten Temperatur (gemessen mit einem anderen Thermometer) den Wert W im Display ablesen. Hierzu eignet sich die Raumtemperatur sehr gut. Lass dabei dem Temperaturfühler viel Zeit sich der Raumtemperatur anzupassen (z.B. 2-3 Stunden). Die bekannte Temperatur und den dabei angezeigten Wert W einfach als Konstanten in die Formel einfließen lassen.
Hier habe ich mal ein Beispiel für Dich wie das ganze dann aussieht.
Bekannte Temperatur: 22,5 C°
Angezeigter Wert W: 781
Z1 = W
Z2 = Z1 - 781
Temp = Z2 * 0,488281
Temp = Temp + 22,5
LG
Pidi
Hey JeyBee,
nicht böse sein, aber wenn du frei von Wissen einfach nur im endlosen Meer der Möglichkeiten umherstocherst, wird das nie was.
Deswegen schrieb ich ja, das du deine Messwerte posten sollst, damit man dir zeigen kann, wie man so eine Sache richtig löst. Gerade das methodische Vorgehen ist ja der Clou beim Basteln.
Der Weg von Pidi2001 ist die rechnerische Variante, die nur eine Messung erfordert, da sich der Faktor rechnerisch aus dem Datenblatt und deiner Beschaltung ergibt. Sofern du 5V Referenzspannung beim ADC benutzt, müßte das prima funktionieren.
Ich würde dir empfehlen, beide Varianten auszuprobieren und zu begreifen versuchen, da pures Nachmachen kein Weg zum Verständnis ist.
Gruß MeckPommER
P.S. wofür du Excel einsetzt, ist mir nach wie vor absolut unklar :-)
Hey MeckPommER,
Ich habe NIE! irgend welche Werte ausprobiert. Diese stammen immer von realsen messungen.
@pidi2001: Ok, werde es nochmal versuchen. Jedoch ändern sich die Werte nach jedem Refresh des LCD's sind einfach Wert schwankungen. Aber ich werde einfach einmal den Mittelwert aus 20 Werten nehmen und fertig.
Ihr werdet von mir höhren...
Dein Faktor von 0.0131 kann auf keiner richtigen Messung beruhen, denke ich mir mal einfach ;-)
Ich drücke dir die Daumen, das deine folgenden Versuche klappen. Wenn nicht, dann musst du nochmal einen genauen PLan deiner Schaltung hier einstellen und das komplette Listing.
Wir bekommen das hin und ich bin begeistert von deiner Hartnäckigkeit - die ist nämlich auch erforderlich für erfolgreiches Basteln :-)
Gruß und *daumendrück* MeckPommER
Zitat:
Zitat von MeckPommER
Danke "Mut gebekommen"
Nach den Zahlreichen Messungen habe ich diese Exel Tabbele im Anhang erstellt. Jeweils die Durchschnitte gerechnet etc.
Jedoch musste ich vesttstellen, das das genze viel zu ungenau ist (Ja, steht im Datenblatt) habe ich diese Schaltung mit dem 10kOhm Poti aufgebaut. Jetzt sind die Werte Stabiel und ändern sich wirklich nur noch bei Temperatur Unterschieden.
kann ich jetzt mit der Gleichen Formel vorgehen? Also das heisst, nochmal messen? Aber eigentlich sind die Werte ja jetzt Stabil. Ich habe jetzt bei 25°C W=594 und das ist IMMER so, wenn 25°C herschen.
Naja, ich bin froh, das die Werte nicht mehr so schwanken, wird jetzt bestimmt einfacher.
P.S. diese 0.488, ist das eine Konstante? Ich bin auf die 0.031 immer gekommen, indem ich Temp/W gemacht habe.
Du kannst Temp/W nur dann rechnen, wenn bei 0 Grad auch W 0 ist. Was du rechnen musst, ist die Temperaturdifferenz zur Wertedifferenz. Dieser Faktor sollte konstant sein. Wie ich in deiner Tabelle sehe, ist das aber nicht so, deshalb muss irgendwo, vielleicht in deiner Schaltung, der Wurm sein.
Zur Erklärung:
Von 24 bis 27 Grad steigt dein Wert um 60 Einheiten, also 20 Einheiten pro Grad.
Von 27 bis 37 Grad steigt dein Wert um 44 Einheiten, also nur 4.4 Einheiten pro Grad.
Und da liegt der Hase im Pfeffer. Damit die Sache funktioniert (und der Sensor sollte so funktionieren) müßte sich dein Wert immer um den selben Betrag pro Grad ändern.
Also liegt der Fehler nicht in der Programmierung der Umrechnung von Wert in Grad, sondern in der Erfassung des Messwertes. Entweder ist in der Schaltung etwas falsch, oder der AD-Wandler ist falsch beschaltet oder konfiguriert.
Kannst du die Schaltung und dein ganzes Listing mal posten?
Gruß MeckPommER
P.S.: ein Poti? *kopfkratz* ist in der Grundbeschaltung ein Poti vorgesehen? Ich könnte mir gut vorstellen, das dies für die Nichtlinearität deiner Messwerte verantwortlich ist. Eine Kalibrierung brauchst du doch eigentlich nicht in Hardware, da du diese per Software machen kannst. Na gut, ich glaube, wir kommen so langsam dem Fehler auf die Schliche :-)
Hallo MeckPommER
Das Poti was er meint ist das Kalibrierpoti für den LM335 (Datenblatt)
Hallo JeeBee,
Löte das Ding mal raus, genau das könnte das Problem sein. 10K im Verhältnis zu 2.2K sind nicht gut. Das Poti wird eigentlich garnicht benötigt, da Du den Wert in der Software sowieso eingibst.
mfg
Pidi
es sind auch wertepaare doppelt
31 818
31 801
32 820
32 832
sehr wahrscheinlich ist das Poti parallel für die Nichtlinearität
verantwortlich, raus damit, Korrekturen machste später
in Deiner Software.
Dann nochmal Messwerte aufnehmen und posten
Seit dem das Poti (Trimmer) drinn ist, ist alles viel stabieler. Wenn ich vor dem Umbau bei 25°C z.B. 400 hatte, hatte ich nach 10min. bei genau glecihen 25°C 550.
Ich werde mich sonst mal mit Target etc. ein Schema zeichnen, wenn folgendes nicht reichen sollte, was im Anhang ist.
Der Festwiederstand (R1) ist 2.5kOhm (4x 10kOhm parallel) und das Poti hat 10k
Wie hast du denn Kalibriert?
Auf 2.982V zu kalibrieren bei 25 Grad bedeutet bei dir, genau bei 25 Grad einen Messwert von 610 einzustellen (1023/5*2.982). Vorausgesetzt das du deinen ADC mit einer Referenzspannung von 5V betreibst und dies auch in deiner Software so konfiguriert ist.
Sowohl in der Beschaltung deines µC als auch in der Konfiguration könnte nämlich noch ein Fehler verborgen sein.
Gruß MeckPommER
also ich komme ohne die kalibrierung aus und auch ohne single variaablen damit konnte ich den code von 26% aud 17% drücken
5V stabilCode:$regfile = "m8def.dat"
$crystal = 8000000
'$baud = 19200 ' baud rate
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40
'dont touch eeprom data by restart
$eepleave
'config
Config Lcd = 16 * 4 'LCD Display
Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.1 , Db6 = Portd.0 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.4
Config Adc = Single , Prescaler = Auto , Reference = Avcc
'cuonstanten
Const Tnull = 559 'nei 25°
Const Traum = 609 ' bei 0°
Const Faktor = 5 'erechnet aus 5V/1024=0,048
'dim
Dim Zahl As Word
Dim Wert As Word
Dim Temperatur As Word
Dim Text As String * 1
Deflcdchar 1 , 8 , 20 , 8 , 32 , 32 , 32 , 32 , 32 ' replace ? with number (0-7)
Initlcd
Cursor Off
Start Adc
Anfang:
Cls
Zahl = Getadc(3)
Wert = Zahl
Lcd "adc " ; Zahl
Text = "+"
If Wert > Traum Then
Zahl = Wert - Traum
Zahl = Zahl * Faktor
Temperatur = 250 + Zahl
End If
If Wert = Traum Then Temperatur = 250
If Wert < Traum And Wert > Tnull Then
Zahl = Traum - Wert
Zahl = Zahl * Faktor
Temperatur = 250 - Zahl
End If
If Wert = Tnull Then
Text = " "
Temperatur = 0
End If
If Wert < Tnull Then
Text = "-"
Zahl = Tnull - wert
Temperatur = Zahl * Faktor
End If
Zahl = Temperatur / 10
Wert = Temperatur Mod 10
Locate 3 , 1 : Lcd "Temp " ; Zahl ; "." ; Wert ; Chr(1) ; "C"
Wait 1
Goto Anfang
|
4,7K
|
V+ --> ADC ref AVCC mit 10µH und 100nF extern
LM335
V-
|
GND
Soll das heissen, das ich das Poti gar nicht brauche?
Achja, ich habe es auf 2.90 Volt gestellt, mehr lag nicht mehr drinn.
Ich habe nur noch bis Sonntag Abend 20:00 Uhr Zeit :'(
Och, das bekommen wir bis Sonntag hin, hast hier ja viele fleissige Helfer :-)
Beim Kalibrieren mit deinem 10k Poti warst du bestimmt schon am Anschlag um die 2.9V zu erreichen, aber es zieht dir ja nunmal den Ausgang nach Masse ... ohne kann es nur besser werden.
Also Poti raus und ... wie sieht eigentlich deine Beschaltung des VREF-Pins aus? Und wie hast du in der Software deinen ADC konfiguriert?
Vreff? Was? Ich habe nur Aref an 5V gelegt.
Poti kommt gleich raus. soll ich einen 2.5KOhm oder 4.7KOhm wiederstand nehmen?
Software siehe vordere Seite(n)
Mfg JeyBee
Ups, ich meinte auch AREF ^^
Halte dich spasseshalber mal an die Beschaltung von magic33 mit 4,7k, das scheint ja zu funktionieren.
AREF an 5V ist falsch. Zumindest AREF per 100nF an Masse ist besser. Und in deine Listing habe ich auch keine Angabe beim Config ADC zur Referenzspannung gefunden. Auch diesbezüglich mal aufs Listing von magic33 schauen.
die Drift des Wertes kann mit Eigenerwärmung des
Sensors zusammen hängen. Abhilfe würde dann ein
zyklisches Einschalten vor bzw. Ausschalten nach der
Messung bringen.
Beschaltung des ADC
AGND = GND intern im ATMEGA 8
|
100nF
|
Aref
|
100nF
|
AVCC
|
10 µH
|
5V
ich hab den Sensor nun schon seit Tagen am ADCn und der Driftet nicht.
mal noch einen tipp der Sensor LM335 ist bei 1mA kalibriert intern!
also mal den stromverbrauch messen und mit dem wiederstand einstellen.
U=R*I mit U=Konstant(5Vstabil) und I soll1mA ergibt 5KOhm je genauer
die 1mA fliesen um so genauer die Messung siehe Datenblatt
das Datenblatt gibt aber auch fertigungsschwankungen von 2.92-3.04V
bei 25° kalibrierung zu.
das sind 120 Ohm breite .
mir reichen 0.5grad welches sich im 500 ohm bereich liegt und somit komm ich mit 4,7k klar
meine messwertliste generiert
Python programmCode:ADC = 540 temp= - 10 . 0 °C
ADC = 541 temp= - 9 . 5 °C
ADC = 542 temp= - 9 . 0 °C
ADC = 543 temp= - 8 . 5 °C
ADC = 544 temp= - 8 . 0 °C
ADC = 545 temp= - 7 . 5 °C
ADC = 546 temp= - 7 . 0 °C
ADC = 547 temp= - 6 . 5 °C
ADC = 548 temp= - 6 . 0 °C
ADC = 549 temp= - 5 . 5 °C
ADC = 550 temp= - 5 . 0 °C
ADC = 551 temp= - 4 . 5 °C
ADC = 552 temp= - 4 . 0 °C
ADC = 553 temp= - 3 . 5 °C
ADC = 554 temp= - 3 . 0 °C
ADC = 555 temp= - 2 . 5 °C
ADC = 556 temp= - 2 . 0 °C
ADC = 557 temp= - 1 . 5 °C
ADC = 558 temp= - 1 . 0 °C
ADC = 559 temp= - 0 . 5 °C
ADC = 560 temp= 0 . 0 °C
ADC = 561 temp= + 0 . 5 °C
ADC = 562 temp= + 1 . 0 °C
ADC = 563 temp= + 1 . 5 °C
ADC = 564 temp= + 2 . 0 °C
ADC = 565 temp= + 2 . 5 °C
ADC = 566 temp= + 3 . 0 °C
ADC = 567 temp= + 3 . 5 °C
ADC = 568 temp= + 4 . 0 °C
ADC = 569 temp= + 4 . 5 °C
ADC = 570 temp= + 5 . 0 °C
ADC = 571 temp= + 5 . 5 °C
ADC = 572 temp= + 6 . 0 °C
ADC = 573 temp= + 6 . 5 °C
ADC = 574 temp= + 7 . 0 °C
ADC = 575 temp= + 7 . 5 °C
ADC = 576 temp= + 8 . 0 °C
ADC = 577 temp= + 8 . 5 °C
ADC = 578 temp= + 9 . 0 °C
ADC = 579 temp= + 9 . 5 °C
ADC = 580 temp= + 10 . 0 °C
ADC = 581 temp= + 10 . 5 °C
ADC = 582 temp= + 11 . 0 °C
ADC = 583 temp= + 11 . 5 °C
ADC = 584 temp= + 12 . 0 °C
ADC = 585 temp= + 12 . 5 °C
ADC = 586 temp= + 13 . 0 °C
ADC = 587 temp= + 13 . 5 °C
ADC = 588 temp= + 14 . 0 °C
ADC = 589 temp= + 14 . 5 °C
ADC = 590 temp= + 15 . 0 °C
ADC = 591 temp= + 15 . 5 °C
ADC = 592 temp= + 16 . 0 °C
ADC = 593 temp= + 16 . 5 °C
ADC = 594 temp= + 17 . 0 °C
ADC = 595 temp= + 17 . 5 °C
ADC = 596 temp= + 18 . 0 °C
ADC = 597 temp= + 18 . 5 °C
ADC = 598 temp= + 19 . 0 °C
ADC = 599 temp= + 19 . 5 °C
ADC = 600 temp= + 20 . 0 °C
ADC = 601 temp= + 20 . 5 °C
ADC = 602 temp= + 21 . 0 °C
ADC = 603 temp= + 21 . 5 °C
ADC = 604 temp= + 22 . 0 °C
ADC = 605 temp= + 22 . 5 °C
ADC = 606 temp= + 23 . 0 °C
ADC = 607 temp= + 23 . 5 °C
ADC = 608 temp= + 24 . 0 °C
ADC = 609 temp= + 24 . 5 °C
ADC = 610 temp= + 25 . 0 °C
ADC = 611 temp= + 25 . 5 °C
ADC = 612 temp= + 26 . 0 °C
ADC = 613 temp= + 26 . 5 °C
ADC = 614 temp= + 27 . 0 °C
ADC = 615 temp= + 27 . 5 °C
ADC = 616 temp= + 28 . 0 °C
ADC = 617 temp= + 28 . 5 °C
ADC = 618 temp= + 29 . 0 °C
ADC = 619 temp= + 29 . 5 °C
ADC = 620 temp= + 30 . 0 °C
ADC = 621 temp= + 30 . 5 °C
ADC = 622 temp= + 31 . 0 °C
ADC = 623 temp= + 31 . 5 °C
ADC = 624 temp= + 32 . 0 °C
ADC = 625 temp= + 32 . 5 °C
ADC = 626 temp= + 33 . 0 °C
ADC = 627 temp= + 33 . 5 °C
ADC = 628 temp= + 34 . 0 °C
ADC = 629 temp= + 34 . 5 °C
ADC = 630 temp= + 35 . 0 °C
ADC = 631 temp= + 35 . 5 °C
ADC = 632 temp= + 36 . 0 °C
ADC = 633 temp= + 36 . 5 °C
ADC = 634 temp= + 37 . 0 °C
ADC = 635 temp= + 37 . 5 °C
ADC = 636 temp= + 38 . 0 °C
ADC = 637 temp= + 38 . 5 °C
ADC = 638 temp= + 39 . 0 °C
ADC = 639 temp= + 39 . 5 °C
[/list]Code:traum = 610
tnull = 560
for w in xrange(540,640):
te = "+"
if w == traum:
temp = 250
if w > traum :
zahl = w - traum
zahl = zahl * 5
temp = 250 + zahl
if (w < traum) and (w > tnull):
zahl = traum - w
zahl = zahl * 5
temp = 250 - zahl
if w == tnull:
te = " "
temp= 0
if w < tnull:
te ="-"
zahl = tnull - w
temp = zahl *5
zahl = temp / 10
temp = temp % 10
print "ADC =", w ," temp=",te,zahl,".",temp,"°C"
diese 10uH Spule habe ich leider keine, geht das auch ohne? Mir reichen ohne hin 2-3°C genauigkeit. Und wie kann ich den AGND genau beschalten? dem komme ich noch nicht genau nach.
Mfg JeyBee
Ich habe jetzt die Schaltung von magic33 nachgebaut (bis auf die 10uH Spule). Die Werte sind wirklich so stabil wie noch nie.
Wie muss ich jetzt das Programm umschreiben? Den letzten Code von magic33, kann ich den einfach nehmen?
Bitte, jetzt nicht so kurz vor dem ZIEL aufgeben.
Na, was hindert dich daran, nochmal genaue Messungen durchzuführen und die Ergebnisse zu posten. Oder du kannst die Temperaturumrechnungen probieren, die schon zahlreich gepostet wurden.
*daumendrück* MeckPommER