Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (rpm)

regrom 18 Mar 2010 14:51 23577 50
  • #31 18 Mar 2010 14:51
    atom1477
    Poziom 43  

    To że działa nie oznacza że dobrze działa.
    Przy bardzo małym wypełnieniu będzie to działało. Ale tak jak mówię źle.
    Już bardzo krótkie impulsy spowodują mocne ładowanie kondensatora ogromnymi prądami. I tylko dzięki rezystancji szeregowej kondensatora i ograniczonej wydajności prądowej zasilacza będzie jakakolwiek regulacja.
    Ale straty będą ogromne. Cała reszta mocy będzie szła w ciepło.
    A już przy kilku...kilkunastu % wypełnienia kondensator naładuje się do napięcia bliskiego VCC i na tym koniec regulacji.

  • #32 18 Mar 2010 16:11
    leon1313
    Poziom 14  

    Zawsze może zastosowac sprzężenie zwrotne w postaci dzielnika napięcia i ADC. Dolnoprzepustowy RC i odpowiednie oprogramowanie.

  • #33 18 Mar 2010 18:31
    WOBI
    Poziom 19  

    Jest sposób na pomiar prędkości. Trzeba mierzyć czas stanu niskiego po przetworzeniu przez układ wg schematu. Warunek to częstotliwość PWM musi być dużo większa od trwania impulsów pomiarowych na wyjściu wentylatora. Mierzymy czas najdluższego stanu L bo mamy też dużo krótkich stanów występujących od PWM.
    Opornik R1 podłączony do 12V czyli do napięcia wetylatora jest ważny i potrzebny. Pomiar trzeba zrobić programowo mierząc najdłuższy czas stanu niskiego. Czas stanu niskiego zawiera sie przy 5100obr/min okolo 5,8ms do 16ms przy 1800obr/min.

    Na schemacie zaznaczyłem czas który trzeba mierzyć Tpom. odpowiada czasowi "czystego" czujnika (prędkość obrotowa) jak zasilamy normalnie wentylator


    [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (rpm)


    wyjście pomiarowe "żółty kabel" bez PWM normalnie zasilany wentylator.

    [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (rpm)

    i widok z PWM na kolektorze T1 to samo co wyżej tylko z PWM (widać jak wewnątrz przebiegu pomiarowego są impulsy PWM, ale stan niski jest stabilny i wielokrotnie większy od czasu trwania stanu niskieg PWM)

    [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (rpm)

    Widok przebiegu na wyjściu "żółtego kabla" z PWM (dwie podstawy czasu oscyloskopu) widać jakie zakłócenia generuje wentylator na wyjściu pomiarowym (żółtym kablu przy sterowaniue PWM)

    [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (rpm)

    [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (rpm)



    Widok przebiegu na kolektorze tranzystora, widac impulsy PWM wewnątrz stanu H czujnika prędkości (drugie zdjęcie rozciągnięta podstawa czasu na oscyloskopie)

    [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (rpm)

    [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (rpm)

  • #34 18 Mar 2010 19:04
    regrom
    Poziom 16  

    Może po kolei:

    leon1313 napisał:
    (...)Zamiast sterować PWM o częstotliwości kHZ, zejdź do kilku HZ i mierz prędkość tylko w przypadku, kiedy układ jest zasilany(...)

    :arrow: leon1313 Przetestuje tą opcję, jak najbardziej i podzielę się efektami, sprawdzę czy jest to w ogóle możliwe, oraz jak to się ma do różnych wentylatorów, a także czy będzie możliwy pomiar impulsów.

    WOBI napisał:
    (...)2 opcja to PWM przekształcić w zasilacz, czyli wyjście pwm podajesz na tranzystor, dławik i diode, a na jego wyjściu dajesz kondensator elektrolityczny i masz coś w rodzaju zasilacza impulsowego. Na wyjściu bedziesz miał napięcie stałe od 0V do +V przy wypełnieniu od 0% do 100%.(...)


    :arrow: WOBI Mówimy o problemie przy 3 pinowym wentylatorze i pomiarze prędkości z "żółtego kabelka", przy 4 pinowym jak widać problemu by nie było, gdyż sygnał DRIVE jest oddzielony od czujnika HALL'a, oraz nie wpływa na zasilanie wentylatora, to znaczy sygnałem PWM nie ingerujemy w zasilanie całości i czujnik posiada wtedy stabilne zasilanie, tak jak napisałeś ;) .

    Zainteresowała, mnie ta druga opcja, czy w ten sposób uzyskamy stabilne zasilanie, którego napięcie będzie proporcjonalne do PWM'a, mógłbyś powiedzieć więcej o doborze tych elementów oraz w jaki sposób docelowo je połączyć, chodzi o jak najprostrze uniwersalne rozwiązanie ?

    Wentylatory już dawno przetestowałem przy zasilaniu regulowanym, i nie zawsze jest to 30% przy których wiatrak rozpoczyna pracę, mam jeden wentylator który rusza dopiero przy 70%, około 8-9 VDC, ale to temat poboczny który rozwiązałem w swoim sterowniku.

    :arrow: atom1477 Masz rację, kondensator na wyjściu to nie najlepsze rozwiązanie, a dobieranie kondensatora do danego obciążenia dyskwalifikuje go jako uniwersalne rozwiązanie. Tak jak napisałeś atom, już przy kilku(5-7%) procentowym wypełnieniu PWM wiatrak rusza.

    leon1313 napisał:
    (...)Zawsze może zastosowac sprzężenie zwrotne w postaci dzielnika napięcia i ADC. Dolnoprzepustowy RC i odpowiednie oprogramowanie(...)

    :arrow: leon1313 Odpada, jest to obejście problemu na około, nie mamy wtedy pomiaru rzeczywistej prędkości obrotowej.

  • Pomocny post
    #35 18 Mar 2010 19:18
    atom1477
    Poziom 43  

    Chodziło mi nie to że przy wypełnieniu 5...7% wentylator rusza, ale że przy wypełnieniu 5...7% wentylator będzie już chodził prawie na maxa jak się tak na krótko podłączy kondensator na wyjściu PWMa.
    Ale patent WOBIego z bardzo dużą częstotliwością PWMa może się sprawdzić. Ja bym chyba się na takie rozwiązanie zdecydował.

  • #36 18 Mar 2010 20:11
    regrom
    Poziom 16  

    atom1477 napisał:
    Chodziło mi nie to że przy wypełnieniu 5...7% wentylator rusza, ale że przy wypełnieniu 5...7% wentylator będzie już chodził prawie na maxa jak się tak na krótko podłączy kondensator na wyjściu PWMa.
    Ale patent WOBIego z bardzo dużą częstotliwością PWMa może się sprawdzić. Ja bym chyba się na takie rozwiązanie zdecydował.


    Tak tak zgadza sie :) sprawdzałem przy różnych wartościach, przy np. 1uF były pełne obroty.

    Patent WOBIego, przeanalizuję i oczywiście przetestuję.

  • #37 18 Mar 2010 23:35
    leon1313
    Poziom 14  

    regrom napisał:

    leon1313 napisał:
    (...)Zawsze może zastosowac sprzężenie zwrotne w postaci dzielnika napięcia i ADC. Dolnoprzepustowy RC i odpowiednie oprogramowanie(...)

    :arrow: leon1313 Odpada, jest to obejście problemu na około, nie mamy wtedy pomiaru rzeczywistej prędkości obrotowej.

    Uniwersalnego urządzenia prosta metodą nie zrobisz. Pomiar napięcia na kondensatorze filtra RC ma tylko zniwelować ewentualne "skoki" napięcia, które mogłyby zbyt bardzo rozpędzić Twój wentylator.
    Pisząc innymi prostymi słowami: ładujesz kondensator do pewnego napięcia, które mierzysz i sprawdzasz, czy obroty są odpowiednie. Jeśli nie, modyfikujesz napięcie na kondensatorze. Układ jest cały czas zasilany, więc i pomiar prędkości powinien być na bieżąco.

  • #38 24 Mar 2010 21:47
    regrom
    Poziom 16  

    WOBI napisał:
    Jest sposób na pomiar prędkości. Trzeba mierzyć czas stanu niskiego po przetworzeniu przez układ wg schematu. Warunek to częstotliwość PWM musi być dużo większa od trwania impulsów pomiarowych na wyjściu wentylatora. Mierzymy czas najdluższego stanu L bo mamy też dużo krótkich stanów występujących od PWM.
    Opornik R1 podłączony do 12V czyli do napięcia wetylatora jest ważny i potrzebny. Pomiar trzeba zrobić programowo mierząc najdłuższy czas stanu niskiego. Czas stanu niskiego zawiera sie przy 5100obr/min okolo 5,8ms do 16ms przy 1800obr/min.

    Na schemacie zaznaczyłem czas który trzeba mierzyć Tpom. odpowiada czasowi "czystego" czujnika (prędkość obrotowa) jak zasilamy normalnie wentylator


    :arrow: Witam, dopiero dziś miałem do dyspozycji trochę wolnego czasu, więc zabrałem się za testowanie, i mam pytanie co do diody 1N4148. Zastąpiłem ja na szybko IN4007 gdyż taka miałem pod ręką, efekt.. wentylator rusza przy 0% PWM, więc pisanie programu poczeka.

    Pogooglowałem trochę i wyczytałem że 1N4148 to nie zwykła prostownicza lecz szybka dioda przełączając. Mam pytanie więc jaką rolę ta dioda pełni w powyższym układzie :?: , i czy przy 0% PWM jak testowałeś wentylator się nie kręcił?

    Ogólnie Twoja idea jest bardzo fajna, tylko nie będzie możliwości podłączyć tego układu np do płyty głównej, ale to poboczna sprawa narazie.

  • Pomocny post
    #39 26 Mar 2010 11:25
    WOBI
    Poziom 19  

    Dioda 1N4148 jest diodą impulsowa i służy do polepszenia czasów narastania impulsów na kolektorze tranzystora i dodatkowo podnosi poziom zatykania tranzystora do około 1,4V by podnieść poziom od którego tranzystor się załączy i tak samo wyłączy. Układ działał od 0 % do 100% PWM. Choć przy 100% pwm nie będzie impulsów które wypełniają wewnątrz impuls H no bo ich nie ma 100% PWM to stały sygnal H więc masz czysty sygnał impuls z czujnika predkości, Także wszystko to napisanie programy by mierzył impulsy w zakresie jak podałem wyżej.
    (Czas stanu niskiego zawiera sie przy 5100obr/min okolo 5,8ms do 16ms przy 1800obr/min.) Dioda 1N4007 nie można stosowac bo jest woooolna baaardzo wolna ;)

  • #40 15 Kwi 2010 15:39
    regrom
    Poziom 16  

    Witam, po długiej przerwie, przetestowałem parę rzeczy, jednak nadal wszystko nie działa jak powinno :cry: , pomimo tego jestem bardzo wdzięczny więc klikam 'pomógł' osobom które zainteresowały się problemem.

    Na początek, częstotliwość PWM mam trochę ponad 32 kHz.

    Testowałem układ z diodą 1N4148, lecz procesor nie reagował na impulsy, tzn. występowały przerwania jedynie przy ponad 97% PWMa.Poza tym wentylator pracował pomimo 0% PWM, powoduje to ten tranzystor BC547, przewodzi pomimo tej diody, nie wiem dlaczego tak się dzieje.

    Zastąpiłem tą diodę rezystorem 100 Ω i problem obrotów przy 0 % PWM zniknął, jednak pojawił się kolejny.

    Napisałem prosty program, i tak, od 0 do ok 55% PWM układ nie generuje przerwań od INT0(opadające zbocze ATmega8). Następnie do około 64% PWM ładnie mierzy prędkość i czas impulsów i mam 9,6 - 9.8 ms co daje prędkość 3000 do ok 3150 rpm.
    Następnie zwiększając wypełnienie znów układ gubi impulsy, występują przerwania ale ich czas jest rzędu 74 us. no i powyżej 98% co właściwie jest pełnym wysterowaniem znów mamy piękny pomiar prędkości.

    Jaką częstotliwością PWM testowałeś układ? Rozumiem, że nie podłączałeś układu pod żaden uC, tylko obserwowałeś przebiegi na oscyloskopie?

    Jednen mikroprocesor pracuje u mnie jako sterownik, na drugim robię pomiar, poza sterownikiem reszta układu jest zmontowana na płytce stykowej, kabelek pomiarowy ma jakieś 10 cm długości.

    Jest jeszcze opcja żeby zasilić układ od strony plusa, lecz raz przy takim połączeniu eksplodował, tak eksplodował mi tranzystor BC 337 .. przy takim połączeniu tam parę postów wyżej: https://obrazki.elektroda.pl/9_1268753005.jpg

    No i jeszcze program, timer 1 jako czasomierz oraz, przerwania od INT0 na zboczu opadającym, może tu coś robię źle, program jest mocno testowy, może powinienem dać pierw przerwanie na zbocze opadające a później na narastające?.

    Code:

    TCNT1 = 0;
    sbi(TCCR1B,CS20); // częstotliwość bez preskalera, wewnętrzny 1 MHz, czyli co 1 us

    sbi(MCUCR,ISC01); // ustawienie przerwań, zbocze opadające INT0
    sbi(GICR,INT0);

    sei(); // włączenie przerwań

    w while(1) mam konwertowanie int na string i wyświetlanie na 2x16 LCD

    a samo przerwanie wygląda tak

    ISR(INT0_vect)
    {

    g=TCNT1;

    if(g>4000)                // jeśli czas jest większy od 4000 us to przelicza
    {
    obroty[0]=TCNT1;                     // zapis do tablicy czasu impulsu [us]
    obroty[3]=30000000/obroty[0];  // przeliczenie us na obroty [rpm]
    }

    else
    {
    obroty[0]=0;
    obroty[3]=0;

    }
    TCNT1 = 0; // wyzerowanie licznika aby liczył od nowa
    }

  • #41 15 Kwi 2010 16:10
    kozło
    Poziom 9  

    witam
    niech kolega zobaczy ten schemat będą straty na tranzystorze ale powinno działać

    [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (rpm)

  • #42 15 Kwi 2010 17:17
    atom1477
    Poziom 43  

    Nie będzie działało bo napięcie na pinie GND wentylatora niekoniecznie będzie równe 0. Czyli pomiar prędkości nie bedzie działał.
    Przy PWMie przynajmniej czasami było by 0V a więc wtedy działało by to.

  • #43 30 Kwi 2010 13:04
    savve
    Poziom 9  

    Witam!

    Zabrałem się za robienie podobnego projektu. Ja używam platformy Arduino Duemilanove (Atmega 328), a jako tranzystor sterujący użyłem MOSFET IRF540N.

    Na razie działa mi sterowanie PWM obrotów wentylatorów. Ale występuje mały problem- cholernie piszczą cewki w wentylatorach. Tylko przy maksymalnym i zerowym napięciu nie są słyszalne.

    Wszystko podłączyłem jak na schemacie:
    [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (rpm)

    Dodam, że na sztywno ustalenie wartości podawanej na bramkę nic nie zmienia.
    Jako zasilanie dla wentylatorów i całą platformę używam zasilacza 12V (od dysku zewnętrznego.

    Orientuje się ktoś co to może powodować?

  • #44 30 Kwi 2010 14:02
    utak3r
    Poziom 25  

    Może zmień częstotliwość PWMa?

  • #45 30 Kwi 2010 16:07
    regrom
    Poziom 16  

    Zmuszacie mnie żeby zamknąć ten temat, gdyż "piszczące cewki" nie są tu problemem, pomijając to że wystarczy użyć opcji szukaj.

    Zwiększ częstotliwość ponad 20kHz to piszczenia nie będziesz słyszał, chyba że masz nadzwyczajne uszy..

    Napiszę, teraz jeszcze odnośnie mojego problemu. Znalazłem parę artykułów na ten temat:
    1) http://www.analog.com/library/analogdialogue/archives/38-02/fan_speed.html
    2) http://pcbheaven.com/circuitpages/PIC_3-Wire_Fan_RPM_Controller/
    3) http://pcbheaven.com/circuitpages/PWM_3_Wires_Fan_Controller_with_RPM_feedback/

    Po przeczytaniu tego jedyną sensowną opcją jest "Pulse stretching method" w przypadku sterowania PWM, czyli pomiar przy krótkim włączeniu PWM w stan wysoki. Jednak przy tej metodzie nie mamy możliwości podłączenia tego do płyty głównej komputera.
    Zastanawiam się jak robią to producenci różnych paneli, że mamy możliwość podpięcia kabla pomiarowego do płyty głównej.

    Podsumowując w moim przypadku, pozostaje regulacja liniowa.. opisana w pierwszym artykule z wykorzystaniem wzmacniacza operacyjnego.
    Co o niej sądzicie?

    Pozwolę sobie zamieścić jej schemat:
    [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (rpm)

    Tutaj cały artykuł w pdf: PDF KLIK

  • #46 19 Mar 2012 23:53
    doles
    Poziom 19  

    Witam, mam podobny problem otóż szukam informacji na temat wentylatorów 4 pinowych. Chciałbym się dowiedzieć w jaki w miarę sprzętowy (czujniki, sensory?) mierzyć prędkość obrotów takiego wentylatora, w sumie dotyczy się to nawet wentylatora 3 pinowego. Czy jest dla niego inny sposób niż programowy pomiar stanu niskiego na żółtym kabelku ... ?

  • #47 19 Lip 2012 16:07
    doles
    Poziom 19  

    Witam, czy ktoś może próbował sterowania wentylatorem z tranzystorami bipolarnymi (bc327 i bc547) ? Wykonałem ten układ, podałem na wejście PWM z ATmegi i efekt jest taki, że wentylator tylko burczy. Tzn napięcie na nim jest zbyt niskie aby ruszył - pomimo regulowanego wypełnienia (sygnalizowane na diodzie led - ściemnianie diody). Napięcie na wentylatorze bez względu na wypełnienie PWMa wynosi około 1,7V.

  • #49 21 Lip 2012 12:57
    doles
    Poziom 19  

    Witam i przepraszam za tak późną odpowiedź. Z problemem już sobie poradziłem. Mam pytanie czy metoda przedstawiona przez kolegę WOBI do pomiaru prędkości obrotowej wentylatora mam na myśli schemat jaki przedstawił (sterowanie od strony minusa) mógłby być użyty do pomiaru dla wentylatora sterowanego od strony plusa ? (poprzednia strona schemat z dwoma tranzystorami bipolarnymi). Wiadome, że na żółtym kabelku mamy 12V 2x na obrót wentylatora, więc nie mogę go podłączyć prosto do ATmegi.

    [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (rpm)

  • #50 21 Lip 2012 16:01
    LordBlick
    VIP Zasłużony dla elektroda

    doles napisał:
    Wiadome, że na żółtym kabelku mamy 12V 2x na obrót wentylatora, więc nie mogę go podłączyć prosto do ATmegi.
    Dwa elementy - rezystor w szereg i dioda zenera na wyjściu...

  • #51 21 Lip 2012 20:55
    doles
    Poziom 19  

    Ok, myślałem nad samą diodą Zenera, ale jakiś ogranicznik prądu w postaci rezystora też się przyda. Muszę teraz przemyśleć zliczanie impulsów za pomocą przerwań zewnętrznych tak jak doradziłeś mi w innym temacie.

TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo