Skocz do zawartości

Dziwne odczyty z tachometru wentylatora PWM


Pomocna odpowiedź

Napisano

Hej,
Mam wentylator sterowany PWM (Delta AUB0912VH, specyfikacja: https://www.delta-fan.com/Download/Spec/AUB0912VH-CX09.pdf) z tachometrem podłączonym do RPi Pico. Wentylator jest zasilany z zewnętrznego 12V
Tachometr jest w konfiguracji open collector z limitem 5mA, więc wybrałem rezystor podciągający 1k, zasilanie pinu tachometru jest z Pico (3v3).
Wyjście tachometru podłączone mam do pinu GPIO Pico.
W kodzie liczę w przerwaniu liczbę zboczy opadających w ciągu sekundy a następnie przeliczam to na RPM.

Zgodnie ze specyfikacją wentylatora gdy sygnał sterujący ma 0% wypełnienia wentylator powinien kręcić się z minimalną prędkością. Pico pokazuje 870 RPM, a mój (niezbyt drogi i niezbyt profesjonalny😉) oscyloskop częstotliwość impulsów z tachometru 29Hz (co przy 2 impulsach na rotację daje dokładnie 870 RPM).

Przy wypełnieniu 100% wentylator powinien osiągnąć maksymalną prędkość (zgodnie ze specyfikacją 3800 RPM z 10% tolerancją). W tym momencie Pico pokazuje jakieś absurdalne wartości (ponad 12K RPM), a oscyloskop częstotliwość tachometru 114Hz (czyli 3420 RPM, co mieści się w specyfikacji).

Skąd takie dziwne wartości wyświetlane przez Pico? 🤔
Przecież przy tak małej częstotliwości Pico nie powinno mieć żadnych problemów ze zliczaniem impulsów.

Pewną wskazówką może być to co widzę na oscyloskopie przy maksymalnej prędkości:
MaxSpeed.thumb.jpg.67add358bb3adc4efcb154979dd4a7f3.jpg
Może Pico zlicza też te szumy🤔 Ale nie wiem jak się ich pozbyć 😑

Dla porównania oscylogram przy minimalnej prędkości wentylatora:
MinSpeed.thumb.jpg.bf19f47372a4d4075da98e0006d84cd7.jpg

 

P.S. Przepraszam wszystkich urażonych nazywaniem tego urządzenia oscyloskopem 😉

(edytowany)

Można spróbować wprowadzić układ przetwornicy DC-DC Pico w tryb PWM ustawiając pin 23 na wysoko. Napięcie będzie mieć lepszą jakość. Pico ma domyślnie podciągnięcie (albo raczej przyciągnięte) w dół aktywne, to może też psuć. Żeby wyłączyć:

gpio_disable_pulls(PIN_POMIAROWY);

Jest też domyślnie włączona histereza. Wyłączyć można kodem:

gpio_set_input_hysteresis_enabled(PIN_POMIAROWY, 0);

Może wystarczy tylko poprawić zasilanie. Teraz tylko działać 😄

Edytowano przez matsobdev
  • 3 tygodnie później...
(edytowany)

Miedzy czasie testowy wentylator uległ awarii i musialem kupić inny, jednak problem pozostał 😞

Dnia 17.10.2025 o 18:23, matsobdev napisał:

Można spróbować wprowadzić układ przetwornicy DC-DC Pico w tryb PWM ustawiając pin 23 na wysoko

Ustawenie pinu 23 na wysoko nieco pomogło, ale odczyty nadal są bardzo dziwne (absurdalnie wysokie watości).
Sposób zliczania impulsów też wydaje się być ok. Zmiast tacho podłączyłem sygnał PWM z pico i RPMy były wyświetlane poprawnie.

Zauwazyłem, że pomaga odłacznie pinu pwm wentylatora lub podłączenie go do 3V3. W obu przypadkach wentlator pracuje z maksymalną szybkością (zgodnie zesefyfikacją) a odczyty RPM stają się sensowne.
 

Jesli chodzi o zasilanie to korzystałem z zasilacza impulsowego do zaslania wszystkiego.
Testowo zamieniłem zaslacz na bateię ale nie rozwiązało to problemu.

Macie pomysł co jeszcze można sprawdzić?

Edytowano przez magor

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...