Wpis z mikrobloga

#elektronika #arduino #esp8266

Chcę odczytywać obroty wentylatora komputerowego za pomocą ESP8266. Do tego celu stworzyłem układ jak na obrazku. Do odczytu sygnału RPM używam przerywań ustawionych na zbocze opadające. Poprzez dzielnik napięcia na trzech rezystorach, w tym jeden pull-up, redukuję napięcie wyjściowe do 2,83 V, bezpieczne dla ESP. Wentylator sterowany jest poprzez PWM o częstotliwości 40 kHz. Napięcie wyjściowe wygładzam kondensatorem o pojemności 2200 uF (zwiększyłem ostatnio pojemność, bo szukałem rozwiązania problemu, wcześniej wstawiłem 100 uF). Wstawiłem również zaporowo diodę w celu redukcji przepięć.
Problem w tym, że odczyt prędkości obrotowej działa tylko w zakresie wysokich prędkości. Dla wentylatora o RPM = 3000 odczytuję poprawnie prędkość do ok. 2500 obr/min. Poniżej tej prędkości, zlicza mi jakieś głupoty i wychodzą prędkości wielokrotnie wyższe.. Testowałem na różnych wentylatorach i z każdym mam tak samo.
Gdzie szukać błędu? Pewnie o czymś zapomniałem ( ͡° ʖ̯ ͡°).

Wstawiam link do symulacji: http://tinyurl.com/surf3tq

Pozdrawiam
KokiX - #elektronika #arduino #esp8266

Chcę odczytywać obroty wentylatora komputer...

źródło: comment_15857321906Vir768QYdgDz0K4WEKbPi.jpg

Pobierz
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@KokiX: Sygnał z wiatraka podaj przez rezystor 10k na bazę czegoś w stylu bc337 albo podobny, podwieś mu kolektor do vcc esp a emiter do masy esp (wspólnej z masą wiatraka) i sprawdzaj jak często masz zbocze opadające na tym kolektorze. Teraz to masz jakieś czary.
  • Odpowiedz
Gdzie szukać błędu?


@KokiX: zamiast szukać wróżki, która zgadnie gdzie jest problem zacznij od podłączenia miernika do punktu TP i sprawdź czy napięcie zmienia się liniowo w całym zakresie obrotów. Potem sprawdź surowe odczyty z ADC (bo rozumiem, że mierzysz napięcie a nie wypełnienie PWMa) - czy odczyty są stabilne i jak się zmieniają z napięciem wejściowym. A dopiero na sam koniec sprawdź algorytm przeliczania napięcia na wartość obrotów, bo
  • Odpowiedz
@Analityk: @zetisdead: wróciłem do tego dopiero po miesiącu, doznając paru olśnień po drodze xD.
Generalnie, problemem było sterowanie wentylatorem przez przerywanie masy zasilania (chodzi o sterowanie PWM MOSFETem typu N). W takim przypadku ciężko czytać sygnał RPM, bo w układzie z otwartym kolektorem (wyjście RPM wentylatora), sygnał obrotu to zwarcie tego tranzystora do masy. Teraz steruję zasilaniem wentylatora od strony 12 V i działa.
Druga sprawa, zamiast odczytywać
  • Odpowiedz