PC FAN-Anschluss für Temperatursensor Missbraucht

Hallo Zusammen,

hier mein link zum Originalpost im Herstellerforum
https://forum.aquacomputer.de/berwachung-und-steuerung/p1471909-ein-sensoreingang-temperatur-zu-wenig/

folgend mein Originalpost:

Hallo WaKü-Fans und Tüftler.

ACHTUNG Bitte nur nachmachen wenn ihr wisst was ihr tut!

Was bewegt mich diesen Thread aufzumachen? Ich habe vor ca. 15 Jahren meine erste und letzte Wasserkühlung verbaut. Damals hab ich für die NVidia 7950GX2 eine WaKü mit Schläuchen verbaut und war nicht überzeugt. Mit meinem jetzigen PC und einem kleinen Geldsegen habe ich mich wieder daran gewagt und bin gleich mit HardTubes eingestiegen. Aktuell noch Semi-erfolgreich.

Als Anhang mal eine Konzeptionsskizze.

So weit so gut. Mit der OCTO Steuerung bin ich sehr zufrieden auch das Programm von AC lässt momentan keine wünsche übrig. Nein, sie ist sogar halb die Lösung für mein Problem.

Jetzt zu meinem Problem. In der Skizze zu sehen ist das ich alle 4 Temperatursensoren des OCTO verplant habe. Nun war die Überlegung nach Fertigstellung des Systems woher ich die Information über die Raumtemperatur bekomme. ich habe noch einen Temp.-Sensor zur Verfügung der beim OCTO mitgeliefert wurde. jetzt war die frage wie Binde ich diesen ein.

Als erstes kam die Idee ihn wie bei meinem älteren Board direkt übers Bord zu betreiben. ABER das neue hat keinen externen Anschluss. ![;(] Zusätzliche Hardware wollt ich nicht beschaffen also ein QUADO oder etwas anderes noch dran zu hängen nur für einen Temp.-Sensor.
Welche Lösung ist für mich nun die Richtige. ![?(]

Die Lösung liegt wie gesagt in der Software von AC. Ich habe 2 Lüfteranschlüsse noch zur Verfügung. Somit kam mir die Idee die Temperatur über ein PWM Signal eines Lüfters zu übertragen.

const float Bco = 3950; // Beta Coefficient of the thermistor
int rpmValue = 0; // variable to set rpm

void setup() {
Serial.begin(9600);
pinMode(3, OUTPUT); // declare the outputPin as an OUTPUT
}

void loop() {
int Vr = analogRead(A0);
float temp = 1 / (log(1 / (1023. / Vr - 1)) / Bco + 1.0 / 298.15) - 273.15; // Copy of https://wokwi.com/projects/374932089160089601
Serial.print("Temperatur: ");
Serial.print(temp);
Serial.println(" ℃");

rpmValue = int(temp*100);
Serial.println(rpmValue);

int freq = rpmValue/60); // RPM need divided for freq in Hz

tone(3, freq*2, 500); // duble need of fansignal
delay(502);

}

ATMEGA, Verkabelung und ein 10kOhm Wiederstand nötig. (optional ein pF Kondensator zur Ausgansstabilisierung)

Jeder kann sich mithilfe eines Microcontrollers somit eine Temperaturauswertung über einen Lüfteranschluss bauen. Voraussetzung ist hierbei aber die Verarbeitung in einem virtuellen Sensor in der AS. Das ankommende Signal muss nur durch 100 geteilt werden. Die 1000 bis 4000 RPM sind einfach aufgrund der Abweichung so hoch gewählt. Das Witzigste ist die Erzeugung des Drehzahlsignals über die Funktion tone(). Da sie für ein Lautsprecher ein PWM Signal ausgibt mit Frequenzvorgabe.

Mit dem virtuellen Sensor habe ich auch das Drehzahlsignal meines Durchflusssensors in eine Fördermenge umkonvertiert. ![:D]

Jeder Anschluss für einen Lüfter sollte so "missbrauchbar" sein. Auch ein 3Pin. Beim 3Pin bitte auf die Spannungsversorgung achten. Am besten den Ausgang permanent auf 100% einstellen.

Fragen oder Anregungen bitte gerne.

Viele Grüße

im Forum wurde auf die Problematik von einem PUSH/PULL-Ausgang sich bezogen.

Vielleicht hat hier ja jemand Lust sich über meine Lösung fachlich auszutauschen.

Grüße

Ich bin mal so frei und hänge sie ran:

cool danke