Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Atmega 8L-PU - Atmega,Bascom - licznik szybkości LCD i LED. Jak dobrze zrobić?

Wlodzimierz1111 26 Mar 2013 18:13 3321 7
  • #1
    Wlodzimierz1111
    Level 9  
    Wcześniej tylko tu zaglądałem, ale teraz mam jedną rzecz i niewiem jak ją najlepiej wykonać. Robię licznik szybkości do MZ ETZ w wersji elektronicznej.
    Założenia:
    - maksymalna prostota ale zgodnie z moimi założeniami (wyświetlanie na ekranie LCD i na diodach)
    - niska cena
    - coś się nauczyć nowego nawet na błędach = z tym ostatnim idzie mi chyba najlepiej

    Wiem jak podłączyć do Atmega 8L-PU ekran LCD na 3 przewodach, klawiaturę na 1 przewodzie (tylko potrzebuję 8-11 klawiszy, więc na ADC powinno dobrze działać). Niewiem jak podłączyć w najlepszy i tani sposób 16 diod do mikroprocesora przez jakiś pośredni układ scalony (chcę mieć wolne nóżki) - z tego co znalazłem w internecie, są same wątpliwości :
    - rejestr przesuwny na 2 układach 74HC595 by był niby za wolny i za skomplikowany
    - multiplekser np 74151 - ktoś pisał że się nienada

    Problem jest z tym że niewiem jakiego układu elektronicznego użyć. Licznik szybkości ma działać w ten sposób :
    1. odbiera sygnał z czujnika na kole (magnes i cewka od licznika roweru) - przetwarza go według wzoru (prędkość liczona z okresu koła i jego obwodu) i wynik wysyła na ekran LCD (typ: 2x16)
    2. druga część programu zawiera "tabelkę prawdy" = jeśli jest 15km/h to zapala się dioda nr 3, jeżeli 10km/h to dioda nr 2 , a jeśli 80km/h to dioda nr 16

    "Ekran" z led to będzie włączona naraz tylko 1 dioda, może czasem 2 (zmiana prędkości). A ekran LCD będzie się włączał na żądanie, tak że 1 dioda będzie pokazywać prędkość , to da duże niższe zużycie energii. Jeśli ktoś może mi doradzić jak najlepiej rozwiązać problem podłączenia diod to na pewno skorzystam. Proszę mnie tylko nieznięchęcać, 2 dni nad tym siedzę.
  • #2
    Dople
    Level 19  
    Na jednym rejestrze przesuwnym da się obslużyć 16 diod LED. Nie jest to skomplikowane, a "straciłbyś" na to 5 pinów.
    Dlaczego miałby być za wolny? Zakładasz, że coś będzie "kolidować" w programie?
  • #3
    Wlodzimierz1111
    Level 9  
    No chciałbym użyć najlepiej tylko 3 pinów. Ktoś sugerował że jak dioda będzie szła raz w gorę a raz w dół - to przez te zmiany kierunków będzie się zapalać z wyraźnym opóźnieniem. Można więc dać rejestr przesuwny na 16 diod i tylko użyć 3 nóg mikroprocesora ?

    Program ma być bardzo prosty i krotki : obsługa LCD 2x16, 16 diod led i klawiatury (8 lub 11 przycisków)
  • #4
    Dople
    Level 19  
    W przypadku ośmiu diod dałoby się użyć tylko trzech.
    edit2: Ale oczywiście dałoby się coś pokombinować, np. używać pinów rejestru do załączania tranzystora multipleksującego (nigdy tego nie robiłem i nie przemyślałem tego, więc miej to na uwadze).

    Rejestrów przesuwnych używa się, np. w przypadku wyświetlaczy LED (7 segmentów + kropka -> 8 diod) i zapala się wszystko jak należy. Prędkość wysyłania danych do rejestru jest na tyle duża, że nie widzę przeszkód w zastosowaniu.
    edit: a w przypadku multipleksowania niekiedy tranzystor się "nie wyrabia" w czasie.

    Gdyby okazało się, że rejestr jest "za wolny" to miałbyś tak, że przez bezwładność ludzkiego oka mogłoby się świecić za dużo diod (w gruncie rzeczy "mrygać").
    Planujesz jakieś kosmiczne przyspieszenia? ;)
  • #5
    Wlodzimierz1111
    Level 9  
    Nie, to MZ ETZ :) , prędkość nawet licznika ograniczyłem do 80km.h - po to tylko 16 diod , a ograniczenie ze względu na największą sprawność hamulców do takiej prędkości maksymalnej. Więc jeżeli się nieda no to zrobię tak jak mówisz, stracę całe 5 nóżek, 1 na klawiaturę i 3 na LCD (z yotube wiem jak to zrobić - przez właśnie rejestr przesuwny). A możesz podać przykład jak łatwo sterować w takim układzie 16 diodami przez 5 nóżek ? I co do mrugania , wolałbym uniknąć tego jak by to było za mocne, bo by mogło nieestetycznie wyglądać.
  • Helpful post
    #6
    Dople
    Level 19  
    Cóż, opis działania rejestru przesuwnego jest w notach katalogowych i mówisz, że wiesz, jak to zrobić.

    Poszukaj o multipleksowaniu wyświetlaczy LED - w przypadku "zwykłych" diod zasada będzie ta sama.
  • #7
    Wlodzimierz1111
    Level 9  
    Quote:
    Jeżeli chodzi o sterowanie samych diód to można się obyć bez rejestru, wystarczy trochę pokombinować:
    3 wyjściami można wysterować 6 diód,
    4 - 12
    5 - 20
    - więc to takie rozwiązanie ? ale to chyba za dużo elementów dyskretnych ? Może ktoś podać przykład takiego podłączenia ? Cały czas szukam i chyba krążę w koło.
  • #8
    BlueDraco
    MCUs specialist
    Szukaj hasła "charlieplexing", to znajdziesz. Nie trzeba żadnych dodatkowych elementów, zwłaszcza kiedy masz zapalić tylko jedną z diod (gdybyś chciał równocześnie świecić kilkoma, to już nie jest takie proste, jak to pokazują na obrazkach, bo trzeba walczyć ze zmianami jasności).

    Za to w Twoich założeniach jest jeden istotny błąd - wyświetlacz LCD pobiera zwykle mniej prądu niż dioda LED.

    No i ta klawiatura na ADC to raczej nie przy zakłócającym wszystko zapłonie.