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

Stoper 0,01s - 99,99s

hubertfab 18 Mar 2013 17:51 12846 18
  • Stoper 0,01s - 99,99s

    Witam!

    Stoper został wykonany na potrzebę przeprowadzenia konkursu (festiwal nauki i techniki). Układ powstał na szybko, lecz nie wykryłem do tej pory żadnych problemów z jego pracą. Spisuje się świetnie.
    Płytka drukowana wykonana za pomocą termotransferu. Program sterujący mikrokontroler ATtiny2313 został napisany w języku C.

    Zasilany w takich granicach jak dopuszczalne dla LM7805, typowo 12V. Dwa przyciski START, STOP odpowiednio uruchamiające i zatrzymujące zliczanie. Aby wyzerować, należy zatrzymać pomiar i wcisnąć START. Na wyświetlaczu pokaże się 0.00. Wyświetlacz jest multipleksowany, ponieważ na statyczne brakło pinów mikrokontrolera.

    Schemat urządzenia:

    Stoper 0,01s - 99,99s

    Jak widać - układ w praktyce spisuje się dobrze. :D

    Stoper 0,01s - 99,99s Stoper 0,01s - 99,99s

    W załączniku:
    1 .main.c - źródło programu
    2 .eagle.rar - projekt (schemat + PCB)
    3 .prezentacja power point (stoper.rar)- (do wykorzystania na lekcjach w szkole innego zastosowania nie widzę).
    Załączniki:

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    hubertfab
    Poziom 21  
    Offline 
    hubertfab napisał 549 postów o ocenie 442, pomógł 31 razy. Jest z nami od 2008 roku.
  • flexghzflexghz
  • #2
    Pablo2015
    Poziom 18  
    Witam,
    W schemacie jest kilka błędów, mianowicie:

    1) PIN 1 czyli RESET wisi w powietrzu, powinien być przynajmniej podłączony rezystorem do plusa zasilania.

    2) Przy kwarcu nie ma kondensatorów ceramicznych.

    Osobiście wywaliłbym kostkę UDN2981 (jest horrendalnie droga !) a dał 3 klucze tranzystorowe :-)

    Cała reszta wygląda w porządku. Projekt wykonany starannie i estetycznie, to się chwali :-).

    Pozdrawiam Paweł
  • #3
    Freddy
    Poziom 43  
    Pablo2015 napisał:
    Osobiście wywaliłbym kostkę UDN2981 (jest horrendalnie droga !) a dał 3 klucze tranzystorowe
    Rzeczywiście, 5zł, to straszna cena, można sie załamać.
    Procesor ATTiny2313 ma Enhanced Power-on Reset Circuit i nie wymaga podłączania niczego do pinu Reset.
  • #4
    Karol966
    Poziom 30  
    Witam

    Wiszący reset w wielu układach to faktycznie niedopuszczalne (źródło problemów) jednak w układzie, w którym poza mierzeniem czasu i jego wyświetlaniem wg mnie spokojnie można wykorzystać wewnętrzny pull-up.

    UDN2981 to faktycznie wg mnie niepraktyczna kostka - za droga więc lepiej użyć typowego ULN i 4 tranzystorków w SOT23 do zasilania anod wyświetlaczy (wtedy LED z wspólna anodą).

    Użyłeś dekodera BCD na 7seg pozostawiając jednocześnie do niczego nie używane więcej niż 4 piny - kolejne źródło obniżenia kosztów produkcji ;)

    W programie masz same volatile. W imię czego? Jak w większym programie też tak będziesz robił to w końcu nic nie będzie działało tak jak byś tego oczekiwał. Przecież zmienne, których nie używasz poza przerwaniami nie musisz obdarowywać przydomkiem volatile. Ponadto cyfra1-cyfra4 wcale nie musi być volatile. Jedyna zmienna, która w tym programie powinna być zadeklarowana z tym przydomkiem to czas.

    PS. W jakich zawodach to było używane? :)
  • #5
    hubertfab
    Poziom 21  
    Witam, dziękuję za komentarze :D

    Co do pinu RESET, jego nie podłączenie nie sprawia żadnego kłopotu w tym układzie. Znam faktycznie skutki wiszącego RESETu w innych urządzeniach, tutaj wszystko gra nawet bez zewnętrznego rezystora. Oczywiście nie ma przeciwwskazań aby ten rezystor domontować od dołu płytki :D

    UDN2981 : Zastosowany z tego względu, że chciałem przy okazji wytłumaczyć w trakcie prezentacji urządzenia na jakiej zasadzie działa ten układ. Oczywiście gdybym to robił dla siebie albo na zlecenie UDN zastąpiony by był tranzystorami w celu obniżenia kosztów, bez utraty jakości całego układu.

    Zmienne globalne : nie najlepszy pomysł, gdyby zaczynało brakować miejsca zoptymalizował bym kod biorąc to pod uwagę jednak w takim dużym jak na spełniające zadanie procesorze nie musiałem walczyć o każdy bajt.
    Oczywiście nabieranie złych nawyków nie jest wskazane i powinno to być zrobione w czasie pisania.

    Stoper był wykorzystywany do pomiaru czasu w którym uczestnik był w stanie podłączyć i odłączyć określoną ilość przewodów w złączach firmy WAGO.
    Złącza nie wymagają przykręcania, jedyne co potrzeba to płaski wkrętak, za którego pomocą możemy odblokować przewód i go odłączyć.
    Na zdjęciu jest to widoczne



    Śmiało, pytać :D w miarę możliwości odpowiem :D
  • flexghzflexghz
  • #6
    androot
    VIP Zasłużony dla elektroda
    Właściwie to te 4 wyświetlacze mógłbyś sterować bezpośrednio z µC. W zależności od użytych rezystorów troszkę przekroczyłbyś dopuszczalny prąd wyjściowy, ale nie ma to znaczenia w takim urządzeniu. Rozumiem, że to praca do szkoły i ma ładnie wyglądać (na schemacie też).

    Wyświetlacz można kupić z wewnętrznymi połączeniami do multipleksowania.

    Twarze wyciąłeś, a na kartce widać imię, nazwisko i punktację - tak się nie robi.

    Po co wrzucasz kolejne pliki backupu Eagle?

    Na schemacie i na płytce masz wrzucone niewłaściwe symbole i obudowy kondensatorów 100nF w dumnie nazwanym w prezentacji "bloku zasilacza".

    Prezentacja nie zawiera nic poza definicją "sekundomierza" z Wikipedii, wrzuconym schematem i kodem.

    Płytka mogłaby być jednostronna i lepiej rozplanowana - dużo miejsca marnuje się.
  • #7
    hubertfab
    Poziom 21  
    androot napisał:
    Właściwie to te 4 wyświetlacze mógłbyś sterować bezpośrednio z µC. W zależności od użytych rezystorów troszkę przekroczyłbyś dopuszczalny prąd wyjściowy, ale nie ma to znaczenia w takim urządzeniu. Rozumiem, że to praca do szkoły i ma ładnie wyglądać (na schemacie też).

    Wyświetlacz można kupić z wewnętrznymi połączeniami do multipleksowania.

    Twarze wyciąłeś, a na kartce widać imię, nazwisko i punktację - tak się nie robi.

    Po co wrzucasz kolejne pliki backupu Eagle?

    Na schemacie i na płytce masz wrzucone niewłaściwe symbole i obudowy kondensatorów 100nF w dumnie nazwanym w prezentacji "bloku zasilacza".

    Prezentacja nie zawiera nic poza definicją "sekundomierza" z Wikipedii, wrzuconym schematem i kodem.

    Płytka mogłaby być jednostronna i lepiej rozplanowana - dużo miejsca marnuje się.


    Jeśli bym przekroczył prąd dopuszczalny ATtiny2313 mógłbym po jakimś czasie odmówić posłuszeństwa i się popsuć. Dlaczego udzielasz mi rady, która jest niepoprawna z punktu widzenia noty katalogowej ATtiny2313 ?

    Można kupić taki wyświetlacz, lecz w sklepie w Rzeszowie takich nie było, a ja projekt musiałem wykonać w 2dni, więc Internet odpada.

    Wątpię żeby ktoś się czepiał tej kartki, i tak nie da się z niej nic odczytać a po drugie i tak była opublikowana na stronie internetowej. Informowałem każdego uczestnika o tym fakcie.

    Pliki Eagle- spakowałem cały folder projektu i wrzuciłem pod temat, dlatego są wszystkie pliki.

    Ale prezentacja jest wykonana i powszechną praktyką jest prezentowanie takich rzeczy(z drugiej ręki niech tak to nazwę) na lekcjach w szkole.

    Kondensator ma taki symbol ponieważ pady "elektrolita" są większe przez co lepiej się lutują po wykonaniu płytki. W urządzeniu były zastosowane ceramiczne 100nF o ile dobrze pamiętam.
  • #8
    Grzegorz_madera
    Poziom 33  
    hubertfab napisał:
    Kondensator ma taki symbol ponieważ pady "elektrolita" są większe przez co lepiej się lutują po wykonaniu płytki. W urządzeniu były zastosowane ceramiczne 100nF o ile dobrze pamiętam.

    Nie wiem jak w "orzełku", ale w każdym normalnym programie do projektowania PCB można sobie ustawić rozmiar padów jaki tylko się chce. Druga sprawa, to jeżeli pokazuje się cały projekt, to wypadałoby żeby wszystko było poprawne, bo ktoś może chcieć wykonać takie urządzenie i będzie miał problem.
  • #9
    KJ
    Poziom 31  
    No właśnie eagle to taki dziwny program w którym nie można ustawić co się chce ;) tylko trzeba kombinować mimo to ludzie uważają że nie ma lepszego softu.
  • flexghzflexghz
  • #10
    androot
    VIP Zasłużony dla elektroda
    W takim projekcie jak Twój (nie ucierpi na tym nikt) spokojnie można obciążyć port mikrokontrolera więcej niż to wynika z noty aplikacyjnej. Podobnie jak nie zastosowałeś pull-up'a do resetu.
    Mylisz się, że nie można nic odczytać z kartki, mam Ci wysłać nazwiska na priv? Dziwne, że twarze wyciąłeś, a publikujesz dane osobowe.
  • #11
    Montrres
    Poziom 21  
    androot napisał:
    Dziwne, że twarze wyciąłeś, a publikujesz dane osobowe.


    Z definicji dane osobowe są nimi tylko w przypadku gdy pozwalają na jednoznaczną identyfikację danej osoby. W myśl powiedzenia "Czy tylko jednemu psu na imię burek" śmiem twierdzić że nie doszło ujawnienia danych osobowych. W obecnym przypadku byłby potrzebny przynajmniej PESEL. To tyle w kwestii danych personalnych.

    Pytanie do autora:
    Jaki mniej więcej jest koszt tego stopera?
  • #12
    hubertfab
    Poziom 21  
    Szybka kalkulacja wskazała, że koszt nie przekroczył 50zł. Chcę uprzedzić dyskusję na temat czy lepiej kupić gotowy czy zrobić bo wychodzi drożej. W dziale DIY nie zawsze chodzi o pieniądze, liczy się zdobyte doświadczenie i umiejętności, oraz satysfakcja z działania układu (piszę ogólnie o DIY nie o stoperze który nie ma w sobie nic odkrywczego).

    androot napisał:
    Mylisz się, że nie można nic odczytać z kartki, mam Ci wysłać nazwiska na priv? Dziwne, że twarze wyciąłeś, a publikujesz dane osobowe.


    Powtarzam, ta lista już była umieszczona w sieci i każdy uczestnik się na to zgodził, więc dlaczego nie można umieścić tutaj listy, która na dodatek jest słabo widoczna.


    KJ napisał:
    No właśnie eagle to taki dziwny program (...)

    Przyzwyczaiłem się do niego, jestem w sumie zadowolony. Co nie oznacza, że nie mogę się przesiąść na coś lepszego. Jakiego Pan używa?
  • #13
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #15
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #16
    hubertfab
    Poziom 21  
    arcu napisał:
    Mam dośc uszczypliwe pytanie,
    Po co w stoperze ręcznie obsługiwanym, rozdzielczość aż 0.01sek ?
    Czas reakcji to aż 50ms, w lepszym przypadku 40ms.
    Wiec operacja uruchomienia i zatrzymania stopera daje raptem do 100ms błędu


    Oczywiście, zgadam się. Nawet robiliśmy jak nam się nudziło na tym festiwalu, że sprawdzaliśmy kto najszybciej naciśnie start i stop :D
    Ja dostałem polecenie żeby były 4 wyświetlacze, oraz 2 cyfry po przecinku. Jak bym robił to dla siebie wolał bym 3 cyfry, i jedna po kropce.
  • #17
    Freddy
    Poziom 43  
    arcu napisał:
    Mam dośc uszczypliwe pytanie,
    Po co w stoperze ręcznie obsługiwanym, rozdzielczość aż 0.01sek ?
    Czas reakcji to aż 50ms, w lepszym przypadku 40ms.
    Wiec operacja uruchomienia i zatrzymania stopera daje raptem do 100ms błędu

    Tak, ale ten błąd jest taki sam przy "START" jak i "STOP" więc pomiar jest jak najbardziej poprawny i dokładny :)
    Nie dziwi mnie więc, że kolega hubertfab dostał polecenie wykonania z dokładnością 0.01 sek.
  • #18
    hubertfab
    Poziom 21  
    Konkurs dla każdego uczestnika wyglądał w ten sposób, że każdy uczestnik miał poukładane wszystkie potrzebne rzeczy, jak był gotowy to aktywował sobie stoper (przycisk START) i po zakończeniu podłączania i odłączania złączek zatrzymywał pomiar (przycisk STOP).

    arcu chodziło zapewne o pomiar czasu gdzie człowiek aktywował stoper w momencie zauważenia jakiegoś zdarzenia.
  • #19
    elektryku5
    Poziom 38  
    Sobie kiedyś popełniłem zegar na 2313 i segmenty zapalane są z portów uC przez drabinkę 100R, poszczególne wyświetlacze (4) załączane przez tranzystory bipolarne, zasilanie standardowo 5V, świeci to dość mocno, procesor nie grzeje się specjalnie, a całość działa już chyba pół roku.
    Także da się zrobić na małej ilości podzespołów i to jeszcze tak by działało.
    Nie ma żadnego dodatkowego układu do sterowania wyświetlaczem, do większych wyświetlaczy dawałem ULN2803 i chyba 4 tranzystory, ale zostałem przy rozmiarze bodajże tym samym co u autora, bo takie wyświetlacze są dostatecznie widoczne.