logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

atmega8 adc PWM program C dioda

mianiek13 22 Kwi 2011 22:40 3380 6
REKLAMA
  • #1 9429834
    mianiek13
    Poziom 12  
    napisałem program do sterowania jasnością świecenia diody za pomocą potencjometru. Użyłem do tego PWM'a i ADC. I mam pytanie dlaczego dioda świeci się całą porę, niby pwm działa bo są zmiany jasności ale jak mam napięcie równe zeru na potencjometrze to dioda nadal świeci, tak jakby nie było regulacji w całym zakresie. Co może być przyczyną? poniżej mój kod:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #2 9430269
    dondu
    Moderator na urlopie...
    Nie załączyłeś schematu, ani nie napisałeś jak podłączona jest dioda do OC2 (PB3), a od tego zależy czy zaświeca się gdy na pinie jest 0 czy 1 - istotne dla wyjaśnienia Twojego problemu.

    PWM
    W tym fragmencie:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    - ustawiasz PWM Phase Correct, a nie Fast PWM jak jest w opisie. A wygląda to tak: Fast PWM vs Phase Correct PWM
    - używasz CS10 choć w tym rejestrze nie występuje, jednak ustawia brak preskalera - czy tak chciałeś?
  • REKLAMA
  • #3 9442215
    mianiek13
    Poziom 12  
    Po przerwie świątecznej wprowadziłem poprawki do kodu:
    Cytat:
    TCCR2 =(1<<COM21)|(1<<WGM20)|(1<<WGM21)|(1<<CS20);

    wcześniej bawiłem sie trzema pwm'ami i stąd miałem to zamieszanie widocznie musiałem przy kopiowaniu pomylić rejestr. Ale teraz powinien już być fast pwm 8-bitowy. A diode mam podłączoną tak: zasilanie-> rezystor-> dioda->PORTB3.
    Lecz nadal występuje ten sam efekt.

    Dodano po 48 [minuty]:

    Sugerując sie Twoimi podpowiedziami zmieniłem podłączenie diody i wszystko jest ok(PORTB3->rezysrtor->dioda->masa). Człowiek całą pore uczy sie na własnych błędach. A propo, dlaczego poprzednie ustawienie było błędne skoro inne programy ala mruganie diodami działało poprawnie? Czy adc w połączeniu z pwm'em ma jakieś inne wymagania?
  • REKLAMA
  • Pomocny post
    #4 9442569
    dondu
    Moderator na urlopie...
    mianiek13 napisał:
    Człowiek całą pore uczy sie na własnych błędach.

    To normalne - każdy z nas przez to przechodzi(ł)
    Tutaj najczęściej popełniane błędy w schematach


    mianiek13 napisał:
    A propo, dlaczego poprzednie ustawienie było błędne skoro inne programy ala mruganie diodami działało poprawnie?

    Niestety musisz sam dociekać, nie mam czasu na to by szukać przyczyny.


    mianiek13 napisał:
    Czy adc w połączeniu z pwm'em ma jakieś inne wymagania?

    Timer z PWM i ADC to dwa niezależne peryferia. Masz coś konkretnego na myśli?
  • #5 9442624
    mianiek13
    Poziom 12  
    Nie mam konkretnego pytania;) ale skoro jesteś to mam inne pytanie czy można zamiast diody podłączyć silniczek dc z wiatraka od kompa i sterować jego obrotami? I czy w tym celu potrzebny jest jakiś tranzystor lub coś w tym rodzaju?
  • REKLAMA
  • Pomocny post
    #6 9442654
    dondu
    Moderator na urlopie...
    Niestety w tym względzie nie mam doświadczenia, ale dałeś mi następny temat do mojego bloga :)
    Sądzę, że element wykonawczy będzie potrzebny ze względu na moc pobieraną przez silnik. Na początek spróbuj tak jak w punkcie 7 tego linku:

    Zakłócenia w pracy mikrokontrolerów
  • #7 9442699
    mianiek13
    Poziom 12  
    Dziękuje dondu bardzo ciekawa strona:D teraz sam podrążę temat z silniczkiem DC który mnie zainteresował:) a ten temat uważam za zamknięty:)
REKLAMA