Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Kategoria: Akumulatorki / Baterie / Ładowarki

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

Wlodzimierz1111 26 Mar 2013 18:13
  • #1 26 Mar 2013 18:13
    Wlodzimierz1111
    Poziom 5  

    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 26 Mar 2013 18:23
    Dople
    Poziom 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 26 Mar 2013 18:27
    Wlodzimierz1111
    Poziom 5  

    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 26 Mar 2013 18:33
    Dople
    Poziom 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 26 Mar 2013 18:40
    Wlodzimierz1111
    Poziom 5  

    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ć.

  • Pomocny post
    #6 26 Mar 2013 18:45
    Dople
    Poziom 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 26 Mar 2013 20:17
    Wlodzimierz1111
    Poziom 5  

    Cytat:
    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 26 Mar 2013 21:46
    BlueDraco
    Specjalista - Mikrokontrolery

    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.