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

Attiny13 ADC + PWM - niestabilne odczyty napięcia przy sterowaniu silnikiem

Icey 04 Cze 2015 19:21 2058 7
REKLAMA
  • #1 14745430
    Icey
    Poziom 13  
    Witam! Chce stworzyć sterownik obrotów silnika. Działa to na zasadzie że ADC odczytuje wartość z potencjometru i przypisuje ją PWM. Wszystko ładnie, ale nie rozumiem dlaczego gdy już wszystko podłącze to na multimetrze pokazują mi się wyniki rozbiegające się z rzeczywistością. Chodzi o to że po delikatnym przekręceniu wartość czasami zmieni sie o 1V a czasami nawet przeskoczy przy delikatnym pokręceniu od 0V do 4.5V.
    Oto kod programu:

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod

    Prosze o jakieś wskazówki.

    PS. Jaką częstotliwością sterować silnik od dmuchawy z malucha? 12V 2A
  • REKLAMA
  • #2 14745712
    Kuniarz
    Moderator Projektowanie
    Wartość odczytana z ADC to zmienna typu Word, więc masz wartość (w tym przypadku) 0-1023. Trochę bez sensu wpisujesz ją od razu do PWM0A, które jest bajtem, czyli 0-255.
    Tak w ogóle to nie powinno być Pwm1a ? Użyj zmiennej pomocniczej, przelicz word na byte.
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #3 14745840
    Icey
    Poziom 13  
    Dziękuję za konkretną odpowiedź. Tylko jeszcze pytanie. Gdy usiłowałem stworzyć jakąkolwiek zmienną w tym programie to program krzyczał że brakuje już pamięci SRAM. Jak się z takim czymś ugryźć?
  • REKLAMA
  • #4 14745850
    Kuniarz
    Moderator Projektowanie
    Icey napisał:
    Gdy usiłowałem stworzyć jakąkolwiek zmienną w tym programie to program krzyczał że brakuje już pamięci SRAM

    ...niemożliwe, stosuję małe Attiny w prostych projektach i nie mam tego problemu.
    W przykładowym programie do doświetlacza zakrętów ;-) mam na początku taką deklarację:

    $hwstack = 32
    $swstack = 8
    $framesize = 8

    i mogę bez problemu zadeklarować zmienne typu Byte i Word.
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #5 14748697
    Konto nie istnieje
    Poziom 1  
  • #6 14748975
    Logan
    Poziom 30  
    Po co się tak męczyć? Nota katalogowa Twoim przyjacielem ;)

    Cytat:
    The ADC generates a 10-bit result which is presented in the ADC Data Registers, ADCH and ADCL. By default, the result is presented right adjusted, but can optionally be presented left adjusted by setting the ADLAR bit in ADMUX.
    If the result is left adjusted and no more than 8-bit precision is required, it is sufficient to read ADCH.
  • #7 15572392
    fender182
    Poziom 2  
    Hej, wrzucam to dla przyszłych szukających :)

    Tutaj macie fajnego gotowca dla AtTiny13A - wykorzystanie modułu ADC sterującego sygnałem sprzętowym PWM.
    Na filmiku jest widoczny i omówiony kod w języku C.





    Miłego majsterkowania :)
REKLAMA