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][Bascom] - PWM wariuje, nie chce działać poprawnie.

Gunslinger 11 Sie 2014 12:03 1542 10
REKLAMA
  • #1 13868612
    Gunslinger
    Poziom 30  
    Witam. Opanowałem ADC w wystarczającym stopniu, więc postanowiłem się zabrać za PWM. Przerobiłem poprzedni schemat: Link

    Wygląda teraz tak: Link

    Kod wygląda tak:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Zachowanie:
    Dioda led, którą steruje przez ADC przy użyciu gałki od pada działa poprawnie.
    Natomiast dioda PWM mruga lekko, przy wciśniętym PD7 świeci stale, ale po puszczeniu żadnej reakcji. Brak reakcji też na PB0.
  • REKLAMA
  • #2 13868757
    mickpr
    Poziom 39  
    Gunslinger napisał:
    Opanowałem ADC w wystarczającym stopniu
    Po schemacie tego niestety nie widać. Widać za to, że lubisz iść nieco na skróty.
    Polecam ci dokładne przestudiowanie : http://mikrokontrolery.blogspot.com/2011/03/avr-adc-podlaczenie.html
    oraz http://mikrokontrolery.blogspot.com/2011/04/minimalne-podlaczanie-pinow.html

    Cytuję...
    Cytat:
    "Na upartego" można i taką wersję podłączenia (bez kondensatora na AREF) wykorzystywać do pomiarów przetwornikiem ADC, ale trudno wtedy liczyć na dokładność, przy pomiarach w 10-cio bitowej rozdzielczości. Jeżeli jednak satysfakcjonuje Ciebie dokładność osiągana za pomocą rozdzielczości 5-6 bitów, to ten schemat powinien wystarczyć.
  • REKLAMA
  • #3 13868975
    piotrva
    VIP Zasłużony dla elektroda
    Nie opanowałeś nawet poprawnego podłączenia diodek LED do procesora :D

    Jak myślisz, jak często do wartości PWM'a będzie dodawane 10 lub odejmowane 10?
  • #4 13869110
    Gunslinger
    Poziom 30  
    Aref 100nF do masy. Na razie nie narzekam na zakłócenia. Działa pięknie, ale jak zagłębił bym się to bym pewnie je wykrył.

    Dałem +10, bo na +1 nie widziałem różnicy. PWM na bazie Link studiowałem. Jeden link już przestudiowałem, biorę się za drugi.
  • REKLAMA
  • #5 13869328
    piotrva
    VIP Zasłużony dla elektroda
    No to trafiłeś na na prawdę opis na świetnym poziomie... Szkoda, że internet nie ma moderatorów, żeby takie strony oznaczyć jako szkodliwe...

    Autor tego poradnika nie wie nawet czym różni się PINB od PORTB...

    Może poczytaj wspomnianego bloga i pomyśl nad wyborem C?
  • #6 13869931
    mickpr
    Poziom 39  
    piotrva napisał:
    Szkoda, że internet nie ma moderatorów, żeby takie strony oznaczyć jako szkodliwe...
    (Poza ramami tematu)
    Internet nie powinien nigdy mieć żadnego moderatora. Już były takie próby (ACTA) i bardzo dobrze, że skończyły się - jak się skończyły.
    Inną sprawą jest rozpoczynanie nauki od Bascom'a - tutaj zgodzę się z Sz. P. Moderatorem - "C" jest chyba najlepszym obecnie wyborem jeśli chodzi o język programowania mikrokontrolerów.
    Jednak w tym przypadku proponował bym raczej zacząć od prawa Ohma - co widać na przykładzie wspomnianych LED-ów.
    Mimo, iż post pretenduje do tytułu "zaniża poziom", proponuję jednak zostawić go w roli przestrogi - jak nie należy robić.
    Zaś autorowi postu polecam w/w blog. Można się dowiedzieć wielu nadzwyczaj ciekawych rzeczy, zanim (np.) zdążymy wysadzić w powietrze nasz dom.
  • #7 13869945
    Gunslinger
    Poziom 30  
    Prawo ohma znam. U = I * R. Nie znam rezystancji ledów.

    Dodano po 6 [minuty]:

    Prąd nie może przekroczyć 40mA. Wiem. I = U/R.
  • REKLAMA
  • #8 13870015
    mickpr
    Poziom 39  
    Gunslinger napisał:
    Nie znam rezystancji ledów.
    Ale znasz prąd i spadek napięcia, prawda? Z nich z powodzeniem sobie wyliczysz co potrzeba.

    Czepiam się - mam nadzieję, że się nie obrażasz. :)

    Zastanawiam się dlaczego pożałowałeś odrębnych rezystorów dla D3 i D4, tylko spiąłeś je pod wspólne rezystory razem.
  • #9 13870037
    Gunslinger
    Poziom 30  
    Bo to podwójna dioda z wspólna anodą.
  • #11 13870803
    Gunslinger
    Poziom 30  
    40mA = 0,04A
    U = ok. 3V (2 AA)
    R = U / J = 3 / 0,04 = 75Ω

    Rozwiązałem to w inny sposób, układ działa.
REKLAMA