Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

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

09 Sie 2014 19:32 1062 8
  • Poziom 29  
    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.
  • Poziom 29  
    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.
  • Poziom 29  
    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: Bascom
    Zaloguj się, aby zobaczyć kod
  • Poziom 29  
    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.
  • 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).
  • Poziom 29  
    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.