Hallo,
ich bin gerade dabei eine Lüftersteuerung zu bauen. Sie soll an mehreren
Stellen zum Einsatz kommen. Das Projekt dient mehr zum herantasten an
größere Projekte. Soll aber gleichzeitig einen praktischen Nutzen
abwerfen.
Zentrale Steuereinheit:
STM32 (aktuell F042F6P6)
Ansteuerung Lüfter:
PWM 20 bis 60 kHz mit 0 bis 100% (Nur Lüfter, welche PWM Eingang
besitzen)
Am PWM Ausgang des µCs hängt über einen 1 kOhm Widerstand ein BC 547C
Transistor, welcher den PWM des Lüfters auf Masse zieht.
- Nidec TA 350 DC funktioniert hervorragend
- Arctic Cooling F12 PWM zeigt keinerlei Reaktion
Tacho:
Tachosignal jedes Lüfters soll vom µC erfasst werden und ein Ausfall
soll signalisiert werden.
Momentan versuche ich es mit einem Timer als Counter. Dieser soll
mittels zeitbasiertem Interrupt ausgelesen und zurückgesetzt werden.
- Bekomme Fehlermeldung beim Zähler abfragen, siehe Unten
Display:
Anzeige der einzelnen Lüftergeschwindigkeiten, aktuelle Temperatur und
Einstellwerte.
- Muss mich erst noch mit dem Display beschäftigen
Temperaturerfassung:
Wahlweise über PTC/NTC oder I²C.
- I²C Temperatursensor funktioniert (zum Testen wird einfaches Poti
verwendet)
Software:
CubeMX STM32
Eclipse (SW4STM32)
---------------------------------------------------------------
Nun zu den Problemen:
Den Tacho wollte ich über einen Counter laufen lassen. Ich bin nach
dieser Anleitung vorgegangen:
https://letanphuc.net/2015/06/stm32f0-timer-tutorial-and-counter-tutorial/
"2. External Input Counter"
Beim Compilieren bringt er mir die Fehlermeldung:
1 | undefined Reference to __HAL_TIM_GetCounter(&htim2);
|
Das heißt für mich, dass er eine Funktion nicht findet. Aber wie bringe
ich ihm diese bei? Bei dem oben verlinkten Beispiel sind auch nicht mehr
Includes dabei.
1 | __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, adcResult [0]);
|
Diese Funktion basiert ebenfalls auf Timern und geht ohne Probleme (PWM
Signal).
Hier wird eine Lösung vorgeschlagen:
https://www.eclipse.org/forums/index.php/t/1065128/
Jedoch kann ich das Menü (Bild ganz am Ende des Links) nirgends finden.
Wie behebe ich den Fehler?
Der Nidec Lüfter lässt sich hervorragend per PWM runterregeln.
Einstellwerte:
Prescaler: 0
Period: 200
Pulse: Über Poti 0 bis 200
CPU/ABP: 8MHz
8 MHz / 200 = 40 kHz
Der Arctic Cooling Lüfter verändert weder bei 40, noch bei 20 kHz seine
Drehzahl. Selbst wenn ich den PWM Eingang mit Widerstand direkt an Masse
oder VCC halte passiert nichts. PWM auf GND ist in der Theorie, als auch
beim Nidec 0% PWM. Warum weigert sich der Artic Cooling?