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

74hct164 4 digit 7 segment

domin122 21 Kwi 2017 21:06 1077 7
  • #1 21 Kwi 2017 21:06
    domin122
    Poziom 16  

    Trochę wiedzy zaczerpnąłem stąd: https://playground2014.wordpress.com/arduino/74hc164-cascade/

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    Otóż mam taki problem, że mam wyświetlacz 4 cyfrowy 7 segmentowy (powyżej kod na katodowy, a ja mam anodowy), ale tam jest tak, że jeden rejestr 74hct164 obsługuje segmenty, a drugi taki sam obsługuję anody (przez tranzystory). Potrzebuję pomocy, jak do drugiego wysłać dane do obsługi anod? Chce go obsłużyć za pomocą Arduino.

    0 7
  • #2 21 Kwi 2017 21:35
    tmf
    Moderator Mikrokontrolery Projektowanie

    Układy 74164 się kompletnie nie nadają do sterowania LED. To tylko rejestr przesuwny, a potrzebujesz rejestr z zatrzaskiem, żeby nie było widać wsuwania danych do rejestru. Czyli np. 74xx595

    0
  • #3 21 Kwi 2017 21:41
    domin122
    Poziom 16  

    A to ciekawe, bo w wielu urządzeniach widziałem 7 segment z rejestrami 74hc164 np. stare video, satelita... Wracając do tematu, może odciąć pierwszy rejestr od drugiego i segmenty wysyłać do jednego np. za pomocą pinu 2 i 3, a do drugiego wysyłać sterowanie anodami np. za pomocą pinu 4 i 5?
    A może należałoby wysłać 8 bitów dla segmentów, 8 dla anod, a następnie reset? Tylko nie wiem czy one mają być połączone czy nie?

    0
  • #4 21 Kwi 2017 22:35
    tmf
    Moderator Mikrokontrolery Projektowanie

    Nie widzę w tym nic ciekawego - nie trzeba być Einsteinem, żeby zauważyć, że informacja przeznaczona dla konkretnego segmentu pojawia się kolejno na wszystkich segmentach poprzednich. Można uniknąć problemu wyłączając wyświetlacz na czas aktualizacji danych, tyle, że to ogranicza duty time, który i tak jest już ograniczony przez multipleksowanie, w efekcie całość świeci ciemniej. Potencjalnie 164 możnaby wykorzystać do sterowania wspólnej elektrody. Można kijem zawracać Wisłę, można stosować od początku poprawne rozwiązania.
    Wracając do twojego problemu - nie do końca rozumiem twój problem. Masz dwa połączone szeregowo rejestry przesuwne, w efekcie masz po prostu jeden 16 bitowy rejestr szeregowo/równoległy. Sterowanie polega na kolejnym wsuwaniu danych dla segmentów i wspólnych elektrod. O ile dla układu 74164 takie rozcięcie i osobne sterowanie ma jakiś sens ze względu na wady tego układu o których pisałem, o tyle przy zastosowaniu np. 595 nie ma to sensu, bo oprócz zajęcia kolejnych pinów IO MCU nic to nie wnosi. Gotowców do sterowania multipleksowego LED w oparciu o sensowne rozwiązania elektryczne masz w necie pełno, także na tym forum wystarczy przeszukać archiwum.

    0
  • #6 01 Maj 2017 16:43
    trol.six
    Poziom 30  

    domin122 napisał:
    ale tam jest tak, że jeden rejestr 74hct164 obsługuje segmenty, a drugi taki sam obsługuję anody (przez tranzystory).

    Jeśli masz sterowane osobno anody i katody, to jeśli chcesz zaświecić więcej niż 1 cyfre, to musisz dane ciągle multipleksować, czyli wysyłać np:
    cyfre 1 potem 2,3,4,1,2,3,4,1,2,3,4... i tak np tysiąć razy na sekunde. Stąd najlepiej wysyłke robić poprzez sprzętowe SPI.

    Czyli, wysyłasz jeden bajt z anodami które mają się zaświecić, i jeden bajt z jednym bitem na wspólną katode (lub zamiennie jeśli masz wspólną anode).
    Dokładnie zależy od konfiguracji PCB z ledami.

    0
  • #7 02 Maj 2017 00:35
    dasej
    Poziom 29  

    Witam.

    domin122 napisał:
    Ja rozumiem Cie dobrze, ale nawet teraz sprzedają nowe wyświetlacze na hc164. Chodzi mi o to, że płytkę mam gotową i jest w smd i nie uśmiecha mi się jej rozpruwanie tylko po to żeby sobie rejestr wymienić.


    Chińczycy są przedsiębiorczy i sprzedają wszystko aby było tanio.

    0
  • #8 02 Maj 2017 20:59
    domin122
    Poziom 16  

    Wymieniłem na 595 żeby nie marnować czasu.

    0