Alternative Externe Temperatur gesteuerte Lüfterreglung

Begonnen von MaikLommatzsch, 12. Januar 2022, 19:59:07

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

Takeshi

#15
Dir ist schon klar, dass "das ganze Bauteil" eine Platine ist, auf der sich nichts weiter als der NTC und ein 10-kOhm-Widerstand befindet? Da ist nichts mit "weiter nutzen", weil da nichts weiter drauf ist. Du kannst die Platine benutzen, um deine Leitung durchzuschleifen, aber der Nutzen davon ist zweifelhaft. Da kannst du genau so ein Stück Lochraster verwenden oder eine fliegende Leitung mit Schrumpfschlauch.

Zitat von: MaikLommatzsch am 18. Januar 2022, 18:21:59
Ist es unabdingbar das der Sensor im IHS montiert wird? Unter der Cell in der Öffnung im Mainboard geht nicht?

Selbst im IHS ist schon nicht so optimal, da die Temperatur dort schon viel träger ist und vom Wert abweicht. Normalerweise wird ja direkt im Die gemessen. Unterhalb des Cells misst du einfach nur eine Temperatur, die in der Nähe des Cells irgendwo anliegt. An der Stelle bringt es dir besonders wenig, da zwischen Die und der Messung FR4 liegt (das Trägermaterial des Dies), das isoliert. Dann sind darunter noch viele Kondensatoren, die leitende Kontakte haben. Das musst du isolieren und eine elektrische Isolation geht meistens mit einer thermischen Isolation einher.




Im Anhang hast du einmal die Schaltung mit PT100 und mit NTC. Habe in beiden Schaltungen noch Kondensatoren hinzugefügt. Am Eingang des LM317 ist das ganz gut, damit er sauber arbeitet und am Ausgang zum ADC glättet er in beiden Fällen das Messsignal. Das sollte auf jeden Fall gemacht werden, Messwerte filtert man normalerweise immer, ist auf der einen Platine aber auch nicht drauf.




Die dünnen NTCs sind leider schwer zu bekommen, die finde ich nur bei übrigen Distributoren für Gewerbetreibende. Bei Mouser bestelle ich sicher wieder, aber ich weiß nicht genau wann das sein wird.

Die IHS von Cell und RSX sind übrigens 1,9 mm dick, hab ich mal nachgemessen.
Wenn alle Stricke reißen, dann kommt eine Kerbe in den Kühlkörper. Da ist die Messung aber schon wieder schlechter.

MaikLommatzsch

Moinsen aus dem Krankenhaus. OP überstanden.
Ich habe 2mm ntcs gefunden kosten nicht die Welt. Damit werde ich erstmal werkeln bis du bestellen kannst.  Ich werde bei einen IHS  mal ein 2mm Loch komplett durch bohen. Und Nuten für die Bein machen. Zum testen für erste life Daten sollte es genügen.

Takeshi

Dann gute und schnelle Genesung!

Das Loch sollte auf keinen Fall direkt über dem Die sein, sonst wird dir dort die Wärme nicht richtig abtransportiert und dir geht der Prozessor hopps.

MaikLommatzsch

Ungefähre die Mitte unterm Kern.


MaikLommatzsch

Moinsen, Stand der dinge:
Ich habe es schonmal geschafft mit den Arduino und den KY-013 Temperaturen zu messen  ;D
Mit 5V schonmal kein Problem, das schaut recht gut aus. Mit dem IR Thermometer  ca 1°C unterschied.
Bei 3,3v schaut das schon ganz anders aus. auch wenn ich im Programm den max. Wert ändere.
Ich bin so vorgegangen ( was sicherlich falsch ist) 1024 bei 5V Hab ich das geteilt 1024/5 und mit 3,3 wieder Multipliziert. Sind wir bei 676.
Das Funktioniert besser, aber es herrscht ein unterschied von 6 bis 10 °C zum IR Thermometer.

Gut das soll mich jetzt erstmal nicht aufhalten. das lässt sich bestimmt richtig Programmieren.
Ich hab mir jetzt ein paar Hilfsmittel bestellt, ein Steckbrett Set u.s.w. das wird mir sicherlich in Zukunft noch nutzen.

@Takeshi  der LM317 wozu genau brauchen wir die Schaltung mit dem Gerät? Das leuchtet mir nicht so ganz ein.
Ich würde das Teil trotzdem gerne Besorgen, finde bei ebay aber nur welche mit einen Buchstaben am ende. ( LM317L oder T)
ist das egal welchen?

Takeshi

Zitat von: MaikLommatzsch am 24. Januar 2022, 08:44:58
Moinsen, Stand der dinge:
Ich habe es schonmal geschafft mit den Arduino und den KY-013 Temperaturen zu messen  ;D
Mit 5V schonmal kein Problem, das schaut recht gut aus. Mit dem IR Thermometer  ca 1°C unterschied.
Bei 3,3v schaut das schon ganz anders aus. auch wenn ich im Programm den max. Wert ändere.
Ich bin so vorgegangen ( was sicherlich falsch ist) 1024 bei 5V Hab ich das geteilt 1024/5 und mit 3,3 wieder Multipliziert. Sind wir bei 676.
Das Funktioniert besser, aber es herrscht ein unterschied von 6 bis 10 °C zum IR Thermometer.

Eigentlich musst du gar nichts umstellen, das verwundert mich, oder bei Arduino ist da was grundlegend anders, was ich nicht glaube.
Der Spannungsbereich des ADCs wird in eine feste Anzahl von Werten geteilt, bei deinem scheinbar 1024 (10 Bit). Versorgst du mit 5 V und musst 2,5 V (die Hälfte), dann ist das Ergebnis 512. Versorgst du mit 3,3 V und misst 1,65 V (ebenfalls die Hälfte), kommt genau so 512 raus.
Die Schaltung des KY-013 ist ein einfacher ohm'scher Spannungsteiler. Er ändert sich mit der Temperatur, aber dennoch ist es ein einfacher Spannungsteiler. Bei 20°C sind beide Widerstände gleich, womit die Ausgangsspannung genau die Hälfte der Eingangssspannung ist, immer. Somit ist der Messwert unabhängig von der Höhe der Versorgungsspannung. Das ändert sich nur, wenn die Spannung des Messteilers und des Mikrocontrollers unterschiedlich sind. Hier würde ich mal ansetzen.

Bei einem Thermoelement ("K-Fühler") ist das übrigens anders. Die sind kleine Spannungsquellen und die Spannung entspricht der Temperatur. Sie ändert sich nicht mit der Versorgungsspannung. Kämen da 3,3 V heraus und du versorgst mit 5 V, wäre der Messert 1024*3,3/5,0 = 676. Mit 3,3 V versorgt wäre er 1024, also größer, denn du erreichst ja bereits bei einer kleineren Mess-Spannung den Maximalwert, den der ADC messen kann. Deine Rechnung wäre somit umgekehrt. Sind es bei 5 V 1024, müssten es bei 3,3 V 1552 sein - was nur theoretisch richtig wäre, da es den Wert praktisch nicht gibt.
Das ist hierfür aber nicht wirklich relevant, da wir ein anderes Messprinzip haben. Das sollte nur verdeutlichen, wie du es umrechnen müsstest, wäre es nötig.

Zitat von: MaikLommatzsch am 24. Januar 2022, 08:44:58
@Takeshi  der LM317 wozu genau brauchen wir die Schaltung mit dem Gerät? Das leuchtet mir nicht so ganz ein.
Ich würde das Teil trotzdem gerne Besorgen, finde bei ebay aber nur welche mit einen Buchstaben am ende. ( LM317L oder T)
ist das egal welchen?

Der LM317 wird als Stromquelle benötigt, um bei einem PTC einen Konstantstrom und damit eine linear abhängige Mess-Spannung zu erreichen. Bei einem NTC brauchst du ihn nicht, da ist er sogar von Nachteil.
Die Bezeichnung dahinter ist egal, die ist herstellerspezifisch. Der LM317 muss aber einige Eigenschaften haben.
- Die maximale Leistung muss hoch genug sein. Bei 15 mA und 2 V Spannungsabfall ergeben sich 30 mW. Der sollte also mindestens 60 mA können.
- Dabei fällt mir ein zweiter Punkt auf und dass die Schaltung so gar nicht funktioniert. Der "Dropout" muss hoch genug sein. Das ist der minimale Spannungsabfall, der zwischen Ein- und Ausgang anliegen muss. Der liegt meistens so bei 1,5 bis 2 V, ich habe 0 V angenommen. Die Stromquelle müsste deshalb mit 5 V versorgt werden, dann geht es.

Ich habe hier welche im TO-220-Gehäuse gefunden für ca. 80 Cent. Was kosten die, die du gefunden hast?

MaikLommatzsch

OK, verstanden. Dann hab ich igentwo einen Fehler gemacht. Der KY ist sowieso anders geklemmt als angegeben.  Die 317 kosten unterschiedlich.  Nach Menge und Versand natürlich. Kommt aber hin mit deinen 80 Cent.

MaikLommatzsch

moin, Update.
Der Fehler von letztens war so einfach, aber dennoch sehr langwierig raus zu finden.
Das lag an der Bitrate, die Skripte die ich hatte waren/sind alle für 8bit Arduino. Ich habe aber ein 10 Bit Arduino.
Schwup waren aus 1024  mal ebent 4095.. Und das haut natürlich nicht hin. also ab jetzt mit 4095 Arbeiten.

Ich kann aber jetzt Temperaturen messen ;D.
Ich benutze ein 100K NTC und einen 100K Festwiederstand . (2mm durchmesser)
Schaltung wie die von Takeshi nur anders herum gepolt. Funzt in aber beiden Richtungen.
3,3V hab ich auch anliegen. Ich finde die gemessenen Temps sehr gut,
den würde ich eher glauben als meinen IR Thermometer.
Die folgende Programmierung hab ich genutzt.

Zitat
int ThermistorPin = A0;     // Signal eingang am Arduino
int Vo;
float R1 = 10000; // value of R1 on board
float logR2, R2, T;
float c1 = 0.001129148, c2 = 0.000234125, c3 = 0.0000000876741; //steinhart-hart coeficients for thermistor


void setup()
{

Serial.begin(9600); // Aktivieren des Monitors

}
void loop() {
  Vo = analogRead(ThermistorPin);
  R2 = R1 * (4095.0 / (float)Vo - 1.0); //calculate resistance on thermistor   // hier waren die Bits (4095) entscheidend
  logR2 = log(R2);
  T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2)); // temperature in Kelvin
  T = T - 273.15; //convert Kelvin to Celcius
// T = (T * 9.0)/ 5.0 + 32.0; //convert Celcius to Farenheit
  Serial.print("Temperature: ");
  Serial.print(T);
  Serial.println(" C");
  delay(500);

}


Neues Problem.
Ich bekomme diese Temperaturmesseung mit nichts kombiniert, keine Blaue Led die ab 20°C angehen soll und ab 90° in Rot wechselt.
Auch keine 7 Sekmentanzeige bekommt ich hin das mit dort die Temp angezeigt werden. (sie ist richtige verkabelt) Die Anzeige war für den Probelauf gedacht, nicht für später mit einzubauen.
Alles was ich bisher versucht hab läuft nicht! Ich denke das hat was damit zu tun weil die Leute in den TUTs immer digitale Sensoren nehmen. (3polig) Ich bin erstmal nicht in der Lage die Skripze so zusammen zu schreiben das läuft. und jetzt raucht mir der Kopf ;D




Takeshi

Das motiviert mich eben zum Klugscheißen.

Du meintest eher die "Bitbreite". Bitrate ist Daten pro Zeit, Bitbreite ist die Menge an Daten zu einer Zeit. Hierbei spricht man aber eher von einer ADC-Auflösung von 8 bzw. 10 Bit.
Mit 8 Bit hast du 1024 verschiedene Werte. Da die 0 auch ein Wert ist, ist der maximale Wert 1023. Bei 10 Bit sind es 4096 Werte, Maximum 4095.
Aus 1024 wird also 4096 und aus 1023 wird 4095.

Wenn du die Schaltung umgekehrt anschließt, sinkt die Spannung bei steigender Temperatur. Das ist egal, so lange das die Software richtig herum auswertet. Kommt also auf die Funktion an. Mit einer Funktion kann es nicht in beiden Richtungen funktionieren.

Zitat von: MaikLommatzsch am 27. Januar 2022, 14:30:05
Neues Problem.

Ich denke nicht, dass es was mit dem Sensor zu tun hat, sondern damit, dass du keinen GPIO angesteuert bekommst. Ich empfehle dir erst einmal zu versuchen einem Ausgang einen festen Wert zuzuweisen, abhängig von gar nichts. Du kannst den Ausgang mit dem Multimeter messen, oder direkt den Ausgang der LED verwenden und auf die LED schauen. Dafür eignet sich gut ein neues Programm, das nur daraus besteht, dass dieser GPIO als Ausgang arbeitet und auf 1 gesetzt wird. Klappt das, lässt du ihn als Ausgang und setzt ihn fest auf 0. Klappt auch das, implementierst du das in deinem Temperatur-Programm. Klappt es auch dort, versuchst du den Zustand abhängig von der Temperatur zu machen.

MaikLommatzsch

Ok, die Bitbreite ::), ( Bitte nicht damit aushören Takeshi ).

Ich habe einen Linearen Temperatur anstieg, aber im Minusbereich.
Ich starte die Messung und hier in meinen Bastelzimmer bei knapp 20°C. Ausgegeben wird -20°c.
Schalte ich nach Takeshi s Plan (Sensor Plusseitig) Startet die Messung bei -20 °C und beim erwärmen steigt es in Richtung Plus, -19 > -17> -15 u.s.w.
Schalte ich den Sensor Minusseitig, starte ich wieder bei -20°C falle aber beim erwärmen weiter ins Minus > -21> -23> -26> -28 u.s.w.
Zweiteres ist ja schonmal gut, somit ist eine Lineare Steigerung mit brauchbaren Werten, nervig ist das ganze aber schon, den egal was ich mache ,ich schaff es nicht das es richtig angezeigt wird.
Desweitern bekomm ich keine LED / Lüftersteuerung implementiert.

Ich finde auch im www nichts was mir dazu helfen könnte. Dabei sind wir noch nicht mal beim schwierigsten Punkt. Der wäre das 25Khz Signal :(

Takeshi

Schau dir mal den Wert von Vo an, dem direkten Wert aus dem ADC. Der müsste bei Raumtemperatur ungefähr 2047 sein und mit steigender Temperatur steigen.

Du kannst jetzt das Problem analytisch angehen und versuchen den Fehler zu finden, oder es einfach geradeklöppeln und drauf hoffen, dass der Wert stimmt.
//T = T - 273.15;
T = 273.15 - T;


Damit wird T einfach invertiert und damit stimmt das Vorzeichen. Das ist zwar NICHT der Fehler im System, aber damit biegst du es wieder gerade.

MaikLommatzsch

#27
Der Invert hat funktioniert  ;D
Der Ausgelesene Vo  bei 20°C ist 382 und sinkt bei zunehmender Temperatur.

Am A0 messe ich 1,758 Volt.

Takeshi

382 ist echt wenig und passt auch gar nicht ins Bild. Wenn der Maximalwert 511 (2⁹-1) wäre, wären das grob 3/4 des Messbereichs statt 1/2 und bei 1023 (2¹⁰-1) dann 3/8. Das ist zwar näher an 1/2 dran, aber noch immer zu weit weg. Nur ganz falsch kann der Wert auch nicht sein, sonst käme mit der Berechnung nicht für mehrere Temperaturen ein passendes Messergebnis raus. Echt komisch.

1,758 V sind 53%, das passt dagegen ganz gut, sogar die Richtung (über 50%) stimmt.

Kannst du inzwischen die LED wie gewünscht ansteuern?

MaikLommatzsch

Nein, hab noch kein passenden Befehl dazu gefunden und die selbst Schulung mit 180 pdf Seiten ist sehr trocken und ich tu mich echt schwer das zu verstehen .