FAQ | Points | Add... | Recent posts | Search | Register | Log in


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


Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> AVR Microcontrollers -> [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (rpm)
Author
Message
atom1477
Poziom 25
Poziom 25


Joined: 14 Jul 2005
Posts: 6596

Post#31 18 Mar 2010 15:51   

Re: [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (


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.
Back to top
   
leon1313
Poziom 13
Poziom 13


Joined: 11 Jul 2007
Posts: 114
Location: warszawa

Post#32 18 Mar 2010 17:11   

Re: [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (


Zawsze może zastosowac sprzężenie zwrotne w postaci dzielnika napięcia i ADC. Dolnoprzepustowy RC i odpowiednie oprogramowanie.
Back to top
   
WOBI
Poziom 13
Poziom 13


Joined: 29 Jul 2004
Posts: 128
Location: Walbrzych

Post#33 18 Mar 2010 19:31   

Re: [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (


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)
Back to top
   
regrom
Poziom 16
Poziom 16


Joined: 11 Dec 2005
Posts: 272
Location: Jarocin / Poznań

Post#34 Post from the author of the topic 18 Mar 2010 20:04   

Re: [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (


Może po kolei:

leon1313 wrote:
(...)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 wrote:
(...)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 wrote:
(...)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.
Back to top
   
atom1477
Poziom 25
Poziom 25


Joined: 14 Jul 2005
Posts: 6596

Post#35 18 Mar 2010 20:18helpful post - solution   

Re: [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (


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ł.
Back to top
   
Google

Google Adsense


Post# 18 Mar 2010 20:18helpful post - solution   





Back to top
   
regrom
Poziom 16
Poziom 16


Joined: 11 Dec 2005
Posts: 272
Location: Jarocin / Poznań

Post#36 Post from the author of the topic 18 Mar 2010 21:11   

Re: [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (


atom1477 wrote:
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ę.
Back to top
   
leon1313
Poziom 13
Poziom 13


Joined: 11 Jul 2007
Posts: 114
Location: warszawa

Post#37 19 Mar 2010 00:35   

Re: [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (


regrom wrote:

leon1313 wrote:
(...)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.
Back to top
   
regrom
Poziom 16
Poziom 16


Joined: 11 Dec 2005
Posts: 272
Location: Jarocin / Poznań

Post#38 Post from the author of the topic 24 Mar 2010 22:47   

Re: [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (


WOBI wrote:
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.
Back to top
   
WOBI
Poziom 13
Poziom 13


Joined: 29 Jul 2004
Posts: 128
Location: Walbrzych

Post#39 26 Mar 2010 12:25helpful post - solution   

Re: [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (


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 ;)
Back to top
   
regrom
Poziom 16
Poziom 16


Joined: 11 Dec 2005
Posts: 272
Location: Jarocin / Poznań

Post#40 Post from the author of the topic 15 Apr 2010 15:39   

Re: [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (


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: http://obrazki.elektroda.net/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
}

Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 15 Apr 2010 15:39   





Back to top
   
kozło
Poziom 2
Poziom 2


Joined: 06 Mar 2010
Posts: 3
Location: radom

Post#41 15 Apr 2010 16:10   

Re: [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (


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

[ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (rpm)
Back to top
   
atom1477
Poziom 25
Poziom 25


Joined: 14 Jul 2005
Posts: 6596

Post#42 15 Apr 2010 17:17   

Re: [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (


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.
Back to top
   
Google

Google Adsense


Post# 15 Apr 2010 17:17   





Back to top
   
savve
Poziom 6
Poziom 6


Joined: 17 Jul 2008
Posts: 15
Location: Koszalin

Post#43 30 Apr 2010 13:04   

Re: [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (


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ć?
Back to top
   
utak3r
Poziom 19
Poziom 19


Joined: 18 Jul 2006
Posts: 756
Location: Szczecin

Post#44 30 Apr 2010 14:02   

Re: [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (


Może zmień częstotliwość PWMa?
Back to top
   
regrom
Poziom 16
Poziom 16


Joined: 11 Dec 2005
Posts: 272
Location: Jarocin / Poznań

Post#45 Post from the author of the topic 30 Apr 2010 16:07   

Re: [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (


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
Back to top
   
doles
Poziom 15
Poziom 15


Joined: 05 Jun 2007
Posts: 245
Location: Grudziądz

Post#46 20 Mar 2012 00:53   

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


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 ... ?
Back to top
   
Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> AVR Microcontrollers -> [ATmega8][C] Wentylator sterowany PWM + pomiar obrotów (rpm)
Page 2 of 2 Go to page Previous  1, 2
Similar topics
Regulator PWM sterowany natężeniem światła... jak? (7)
Falownik sterowany. Program VisSim. Sterowanie PWM. (3)
[AVR][C/A] PWM sterowany cyfrowo (2)
[Atmega8][C][PWM] sterowanie PWM (16)
ADC ATmega8. Pomiar napięć ujemnych. Tylko pomiar różnicowy? (5)
Silnik DC sterowany PWM z utrzymywaniem stałej prędkości obr (5)
Regulator PWM sterowany natężeniem światła... jak? - cd. (10)
PWM w Atmega8. Jak uruchomić drugi i trzeci kanał PWM? (3)
[ATmega8][C]Pomiar obrotów na kablu WN w motorze (1)
Termopara plus pomiar obrotów-Atmega8 (11)

Page generation time: 0.142 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed