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

[Atmega8l][Bascom] - ADC i pad od PS2, zbyt mała rozdzielczość.

Gunslinger 09 Sie 2014 19:31 1239 8
REKLAMA
  • #1 13864833
    Gunslinger
    Poziom 30  
    Postanowiłem pobawić się z Padem od PS2 i wykorzystać go przy moim mikrokontrolerze. Układ wcześniej już pracował w pierwszym programie, gaszenie i zapalanie led 2 przyciskami. Przerobiłem go tylko dodając dodatkowy obwód (+ do 2 rezystorów 47Ω do potencjometru od gałki do masy). Środkowy pin potencjometru do ADC5. Jako że nie mam wyświetlacza zrobiłem to metodą prób i błędów. Dopiero przy if ADC5 > 1 dioda załącza się niemal przy skrajnym wychyleniu drążka w 1 stronę. Z tego by wynikało że z możliwej rozdzielczości 1023 ja wykorzystuje 1,2. Postanowiłem usunąć jeden rezystor. Efekt taki że załącza diodę trochę wcześniej. Rozdzielczość pewnie z 1,4. No to bez rezystorów. Efekt, też rozdzielczość ok. 1,4.

    Nie wiem dlaczego mam tak małą rozdzielczość. Kod i schemat dodam potem, bo teraz piszę z laptopa.

    Dodano po 51 [sekundy]:

    Acha, zasilanie z 2 Baterii AA.
  • REKLAMA
  • #2 13864884
    Kuniarz
    Moderator Projektowanie
    Pomoc uzyskasz potem, jak już wyślesz schemat i fragment programu...
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #3 13865273
    Gunslinger
    Poziom 30  
    5 min nie chciała mi aplikacja dodać linku do tematu więc musiałem inaczej. Link

    Jak znajdę czas, dorzucę kod. Znowu jestem na lapie, tylko przyniosłem sobie układ.
  • #4 13865330
    Kuniarz
    Moderator Projektowanie
    D1 bez rezystora ? Kozacko, padnie LED czy port w procku, jak sądzisz ?
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #5 13865341
    Gunslinger
    Poziom 30  
    Przepraszam. No to zacznę od początku. Układ według tego schematu:
    Link
    Na komputerze też nie chce dodać do postu. Musiałem tak.

    A oto kod:

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #6 13865348
    Kuniarz
    Moderator Projektowanie
    Gunslinger napisał:
    chyba.

    Kolego... albo zadajesz KONKRETNE pytanie, albo wywal temat do kosza, zanim zrobi to moderator...
    Bez (realnego) schematu i programu nie ma jak pomóc, przykro mi...
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #7 13865668
    Gunslinger
    Poziom 30  
    Dodałem całość post wyżej. Na takim schemacie dioda załącza się w niemal jednym skrajnym położeniu. Po usunięciu jednej, ja i obu, jest tylko delikatna zmiana. Jakby za każdym razem świeciła się mm wcześniej przy wychylaniu.
  • #8 13865695
    Kuniarz
    Moderator Projektowanie
    Dobrze, wszystko działa dokładnie tak, jak sobie zaprogramowałeś :)
    1. dioda LED - masz ją podłączoną katodą do portu, więc jeśli na porcie dasz 1 to dioda nie świeci, świeci jak podasz 0.
    2. diodę masz podłączoną do portu D.0, a w programie sterujesz D.3 - to że w ogóle działa to przypadek
    3. Zmienna Pad21 może przyjmować wartości 0-1023, Twoja komenda warunkowa IF sprawdza, czy jest większa od 1... W większości przypadków będzie większa od 1, bo przypominam, że przyjmuje wartości 0-1023.
    Proponuję w "ifie" wpisać "if pad21 > 512 then..." wówczas dioda powinna świecić w połowie zakresu obrotów potencjometra (potencjometru ? ;-) ).
    Tak w ogóle, to możesz podłączyć poitencjometr bezpośrednio między masę a VCC wywalając te rezystory (ograniczają zakres regulacji).
    Pomogłem? Kup mi kawę.
  • #9 13866293
    Gunslinger
    Poziom 30  
    Układ lutowałem bez schematu, a teraz robiąc schemat mam niezłego pająka (nie starałem się bo to układ testowy). Dioda musi być podpięta do PD3, tylko musiałem się pomylić, mając ograniczoną widoczność. Od początku zmniejszałem zakres w stopniach if > 1000/500/100/1. Dioda zaczęła się zapalać dopiero przy 1. Przypomniałem sobie że zrobiłem w tym układzie miesiąc temu małe zwarcie. Możliwe że uwaliłem część analogową. Popróbuje jeszcze z programem.

    Dodano po 1 [godziny] 10 [minuty]:

    Zrozumiałem swój jakże głupi błąd. Uzyskałem rozdzielczość 1020. To aż za dużo. Dziękuje za pomoc.
REKLAMA