PWM na 0% nie gaśnie ??!!

Sep 25, 2006 10 Replies

Właśnie w weekendzik sobie poskładałem diodę na PWM przez tranzystor (atmega8). Wykorzystałem Timer1 w opcji 8 bitowej. Do tego dwa przyciski: zwiększ i zmniejsz % PWM oraz wyświetlacz który pokazuje wartość PWM 0-255. Działa jak należy tylko zauważyłem jedną rzecz. Jak zmniejszam PWM do zera to dioda nadal świeci. Oczyweiście stosunkowo słabo ale nie gaśnie całkiem. Dorzyciłem do kodu że jak PWM=0 i nacisnę przycisk zmniejsz to wyłącza całkiem timer i wtedy gaśnie. I tu pytanie czy zejście z wartościa do zera nie powinno powodować całkowitego zgaśniecia LEDa? A drugie pytanie czy dioda na PWM o wartości wypełnienia 1% będzie widocznie świeciła? Wydaje mi się że to zbyt mało pałeru żeby było widać świecenie.



Rafał



Kacper napisał(a):

Normalne, zobacz jak dziala timer w pwm. Gdy ustawisz 0 - to i tak generuje impuls o wypelnieniu 1/256. Jak wpiszesz 1 => 2/256, itd az do wpisu 255 ktory daje wypelnienie 256/256 = 100% Jesli zatrzymywanie timera ci nie odpowiada, to zawsze jeszcze mozesz wylaczac "do zera" przez przestawienie DDRx + PORTx na wejscie bez pullupa.

hmmm...jak dasz zero to masz zero, zadnej szpilki na oscyloskopie nie widac, a jesli juz istnieje napewno ta szpilka jest za krotka aby bylo widac swiecenie diody pozdr

snipped-for-privacy@op.pl napisał(a):

Moze to zalezy w ktora strone sie przepelnia, ale napewno mam szpilke o szerokosci 1/256 okresu, sprawdzone i zaobserwowane na oscyloskopie.

Użytkownik "BartekK" snipped-for-privacy@drut.org napisał w wiadomości news:ef868v$smh$ snipped-for-privacy@nemesis.news.tpi.pl...

Bo to zależy czy diodę łączysz do masy czy do zasilania Wypełnienie przyjmuje wartości od 0 do 255 względem masy

W przypadku autora wątku dla zera ma nie świecić ( zakładam, że ma negujący tranzystor z diodą w kolektorze, a nie wtórnik) i maksymalne świecenie jest dla 255 ( i ono jest przerywane na 1/256)

Jeśli podłączy się odwrotnie to ta 1/256 okresu jest wyraźnie widoczna w świeceniu diody

Tak czy siak oscyloskop jest potrzebny. Może ma coś zwalone w programie i czasami jakiś impuls jest wysyłany

Nie da sie w jednym bajcie okreslic 257 mozliwych stanow [od 0 do

256/256]. Wiec szpilka bedzie .. tylko przy 0 czy przy 255 :-)

a 1/256 na diodzie bedzie widac.

J.

A zgadza się tranzystor jest w takim układzie. Wyjście z uC do bazy a w kolektorze dioda przez rezystorek. Zastanawiałem się tylko dlaczego przy wartości porównania dla timera równej

0 (zero) PWM podaje jakąś szpilkę, a nawet jeśli ( z czego to wynika) to nie myślałem że PWM o wypełnieniu 1/256 może być zauważalne na takim układzie z diodą.

------------ A gdybym przestawił timer żeby ustawiał bit przy porównaniu, a nie kasował (czy odwrotnie bo nie pamiętam jak mam teraz) to coś zmieni przy kluczowaniu diody tranzystorem?

Rafał

Użytkownik "Kafal" snipped-for-privacy@gl.pl napisał w wiadomości news:ef86pd$ir9$ snipped-for-privacy@news.onet.pl...

uzywam PWM 16bit oraz 8 bit w atmega128 oraz mega8 bit jako precyzyjny przetw C/A (nie ma praktycznie bledow rozniczkowych i calkowych) - wyjscie proca przepuszczam przez HC04 zasilane ze zrodla referencyjnego, potem LPF 5 rzedu I nie zauwazylem zeby przy wartosci 0 bylo cokolwiek na wyjsciu, wszystko sie ladnie zgadza z tym co byc powinno do do ulamka mV moze kolega uzywa jakiegos dziwnego trybu pracy timera?

U¿ytkownik "Greg(G.Kasprowicz)":

Z pdf-a Atmegi16: "The extreme values for the OCR1x Register represents special cases when generating a PWM waveform output in the fast PWM mode. If the OCR1x is set equal to BOTTOM (0x0000) the output will be a narrow spike for each TOP+1 timer clock cycle. Setting the OCR1x equal to TOP will result in a constant high or low output (depending on the polarity of the output set by the COM1x1:0 bits.)"

Dla Atmegi16 i trybu fast PWM szpilka faktycznie jest. Im mniejsza pojemnosc licznika tym wiekszy jest jej wplyw na np. swiecenie led-a podlaczonego do portu.

Heliogabal

zawsze mzoesz dac if wartosc = 0, wylacz port.. w attiny2313 szpilka takze jest ale w atmega128 nie zauwazylem takowej zreszta jest ona sporo krotsza niz wlasciwy impuls, tak wiec po scalkowaniu nie odgrywala wiekszej roli.

U¿ytkownik "Greg(G.Kasprowicz)" :

Mozna tez wlaczyc odpowiednia polaryzacje i regulowac od wartosci maksymalnej licznika (napiecie stale - zaleznie od polaryzacji stan H lub L) do zera (stan odpowiednio L/H ze szpilka). W przypadku led - dioda wylaczona (licznik=maks); dioda wlaczona caly czas z wyjatkiem szpilki (licznik=0)

Heliogabal

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required