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

[attiny2313] [attiny2313][bascom] Sterowanie serwami i diodami w modelu statku - sprawdzenie kodu

Rhinerer 31 Paź 2012 14:14 2904 3
REKLAMA
  • #1 11471516
    Rhinerer
    Poziom 2  
    Posty: 2
    Witam. Jestem początkującym uczniem technikum elektrycznego i z programowaniem zderzam się po raz pierwszy.

    Mój projekt statku - realizować działanie 3 serw sterujących 12 armatami (po 6 armat na każdą stronę). Rozpoczynając od pozycji środkowej każdego serwa. Potem przesuwając w skrajne lewo i wtedy uruchamiać zapalanie 6 diod symulujących wystrzał, po tym przejść w drugą skrajną pozycję i powtórzyć działanie z diodami.

    Mógłby ktoś zerknąć czy napisany przeze mnie programik ma szanse na zadziałanie ?

    [attiny2313] [attiny2313][bascom] Sterowanie serwami i diodami w modelu statku - sprawdzenie kodu [attiny2313] [attiny2313][bascom] Sterowanie serwami i diodami w modelu statku - sprawdzenie kodu


    Przede wszystkim porty podpinałem jak leci omijając tylko PD4. .
  • REKLAMA
  • Pomocny post
    #2 11474129
    bogdan_p
    Poziom 39  
    Posty: 3849
    Pomógł: 525
    Ocena: 120
    Na początek do rysowania schematów są odpowiednie programy a nie Paint , kody programu umieszcza się korzystając z polecenia Syntax a nie wkleja zrzut .
    Schemat :
    brak jakichkolwiek kondensatorów do filtracji zasilania , brak GND dla uC , brak oporników ograniczających prąd diod jeden wspólny to żadna oszczędność max prąd portu to 20mA , czerwone LED w połączeniu szeregowym będą świecić ale zielone czy żółte raczej mizernie , obsługę przycisków wskazane jest zrobić do GND a nie do Ucc . Ponadto wskazane jest zastosowanie stabilizacji zasilania mikrokontrolera ponieważ praca serw będzie wprowadzała duże skoki napięcia .
    Program :
    na pewno nie będzie działał tak jak chcesz jest napisany strasznie , po co deklaracja zmiennych dla serw jak i tak przypisujesz im stałe wartości , wytłumacz co to ma być
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Jak serwa mają zmieniać pozycje skoro tylko w jednym miejscu masz
    Kod: text
    Zaloguj się, aby zobaczyć kod

    proponuje również zapoznać się z poleceniem
    ROTATE zmienna , LEFT | RIGHT [, liczba_przesunięć ]

    Na koniec co to jest :
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Podejrzewam że tego programu nawet nie się skompilować z taką ilością błędów .
    Zacznij od zapoznania się z pomocą dla Bascoma oraz zobacz jak prawidłowo zasila się mikrokontroler oraz podłącza urządzenia zewnętrzne .
  • REKLAMA
  • #3 11509106
    Rhinerer
    Poziom 2  
    Posty: 2
    Witam. Na wstępie chciałem podziękować za listę porad i pouczeń. Wziąłem to do siebie. I po raz kolejny poprosić o sprawdzenie kolejnych wypocin.

    [attiny2313] [attiny2313][bascom] Sterowanie serwami i diodami w modelu statku - sprawdzenie kodu

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Cytat:
    brak GND dla uC
    tego nie zrozumiałem. Jestem kompletnie zielony czym jest tu to uC. ?

    Czy kondensator na syjściu LM317 wystarczy do filtracji zasilania ?

    I czy serwo odczyta mi pozycję

    Kod: text
    Zaloguj się, aby zobaczyć kod


    słyszałem o tzw 'gubieniu kroków' .

    Czy też zamienić to na :

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #4 11509973
    bogdan_p
    Poziom 39  
    Posty: 3849
    Pomógł: 525
    Ocena: 120
    Jakiś postęp jest ale jeszcze długa droga przed Tobą . Mikrokontroler = uC 1 schemat gdzie masz minus zasilania ( gnd ) dla uC ? . Schemat wygląda lepiej ale to nie to , po co stabilizator dla serw ? , po co LM317 ? . Stabilizowane ma być napięcie dla mikrokontrolera a nie dla serw , zasadą jest kondensatory jak najbliżej nóżek uC oraz od strony wejścia i wyjścia stabilizatora ponadto daje się kondensator elektrolityczny + zwykły najlepiej ceramiczny zobacz sobie jakieś projekty jak to powinno wyglądać . Program jest nadal beznadziejnie napisany , żaden warunek nie sprawdza w jakiej pozycji fizycznie znajduje się serwo , chyba że zastosujesz sobie enkoder . Wydajesz polecenie program wysyła impulsy o konkretnych odstępach czasowych i wypełnieniu co przekład się na pozycję serwa nic nie sprawdza ! . Polecenie ROTATE dałem jako przykład do sterowania diodami led a nie zmianami wypełnienia dla serwa ! . Na początek to proponuje dokładnie przemyśleć co tak naprawdę chcesz osiągnąć swoim programem , bo przy założeniach z pierwszego postu to wystarczy sekwencyjne zapalanie led , 3 pozycje serwa + odpowiednie zwłoki czasowe co można zrealizować w 2 pętlach FOR / NEXT jeżeli chodzi o ścisłość to uC powinien bez problemu na 1 porcie obsłużyć 3 serwa skoro i tak mają robić dokładnie to samo . Po raz kolejny powtarzam zobacz jak wygląda prawidłowe zasilanie uC , jeżeli masz niskie napięcia zasilania poczytaj o stabilizatorach low drop 5V , program zacznij od napisania prawidłowej sekwencji sterowania diodami led tu wykorzystaj polecenia ROTATE , wgraj program sprawdź a potem obsługa serw gdzie wystarczą 3 przypisania stałych wartości to wszystko . Tak z ciekawości jak wygląda teraz Twój zestaw do nauki ( zasilacz / programator / płytka testowa ) ?
REKLAMA