Aha. Gut, dein erster Fehler ist die PWM-Frequenz. Die PC-Lüfter haben bürstenlose Motoren. Sie erzeugen sich über einen eigebauten Taktgenerator ein Drehfeld. Aus diesem Grund sollte man diese Motoren mit einer niedrigen PWM-Frequenz ansteuern. Soweit ich Infos finden konnte, sollte sie zwischen etwa 50Hz und 200Hz liegen.
Für die Geschwindigkeit würde ich eine Übersetzungstabelle nehmen oder einen Korrekturfaktor. Je nach A/D-Wert bestimmte PWM-Frequenzen. Ich würde erstmal die Werte des A/D-Wandlers ausrechnen oder ausgeben lassen und mit einem Termometer vergleichen. Dann suchst du den Startwert, der bei etwa 20°C liegt, nimmst diesen als Konstante und ziehst ihn vom A/D-Wandlerwert ab. Das ist dann deine Mindestgeschwindigkeit, mit der du dein PWM steuerst (kann 0% Lüfterspeed sein, oder 40% damit der Lüfter wenigstens langsam dreht). Dann nimmst du den theoretischen Höchstwert, vielleicht bei 60°C und setzt ihn als voll-Ansteuerung (Lüfter 100%). Die Zwischenwerte für die PWM-Frequenzen legste dir dann in eine Tabelle ab, oder rechnest ihn in etwa mit einem einfachen Multiplikator aus.
Der Multiplikator ist etwas einfacher, aber die Tabelle bietet einem die Möglichkeit, das man sich eine schicke Kennlinie anlegt, welche nich ganz linear läuft.
HTH
Spunky