Skocz do zawartości

Arduino 3 i 4 cyfirowe wyświetlacze LED 7seg + 74HC595 sterowanie


tomusiek1992

Pomocna odpowiedź

Witam;)

Niedawno zacząłem przygodę z arduino 😉

Pomrugałem trochę diodami pobawiłem się potencjometrami i serwami;) chciałem spróbować wyświetlać dane nie na wyświetlaczu LCD a na 7 segmentówce LEDowej 😉 iiiii ZONK 😃 jak to się robi? 😃

Przeszukałem zasoby wujka gogla ale nie doszukałem się odpowiedzi na moje pytania;)

może ktoś z was forumowiczów mi pomoże?🙂

Otóż chciałbym się dowiedzieć jak można zaprogramować (znaleźć bibliotekę) arduino by móc:

- Sterować 7-seg wyświetlaczami LED 3 i 4 cyfrowymi za pomocą rejestru 74HC595 (by nie marnować wielu pinów arduino) ?

Wiem że trzeba użyć 2 takie rejestry. Jednak z tego co znalazłem to by wyświetlić jakąś cyfrę np 1234 trzeba tak jakby każda z nich wpisywać osobno na każdy segment.

Znalazłem możliwość obsługi 4 cyfrowego wyświetlacza za pomocą TM1637 gdzie po prostu do jednej zmiennej wpisuje się całą liczbę którą chce się wyświetlić. Da się tak samo zrobić za pomocą 74HC595?

Teoretycznie obsługe 4 cyfrowego wyświetlacza mógłbym wykonywać za pomocą właśnie TM1637 jednak wszędzie można kupić gotowe moduły z wyświetlaczem a nigdzie samego scalaka, a nie chce korzystać z gotowych modułów.

Tak samo TM1637 nie obsługuje 3 cyfrowych wyświetlaczy. Dlatego szukam rozwiązania w 74HC595. I oczywiście chodzi mi o pełne kostki 3 i 4 cyfrowe a nie kilka połączonych 1 cyfrowych.

Z góry dziękuję za każdą pomoc 😉

Pozdrawiam 😉

Link do komentarza
Share on other sites

Czytałem ten sketch jednak tam są dwie zmienne: I, J które odpowiadają 1 i 2 wyświetlaczowi a mi chodzi o jedną zmienną gdzie mogę wpisać np 1234, tak jak to jest w przypadku TM637. Dodatkowo tam połączone są też dwa 74HC595 ale w taki sposób że według tego przykładu by podłączyć np 4 cyfrowy wyświetlacz trzeba użyć 4 74HC595 a wiele jest przykładów gdzie można to samo zrobić za pomocą 2 74HC595.

Tak samo TM1637 nie obsługuje 3 cyfrowych wyświetlaczy.

Oczywiście, że obsługuje. Po prostu czwartej cyfry nie podłączasz.

Jak moge nie podłączyć 4 cyfry skoro są sprzedawane gotowe już moduły na płytkach dwustronnych, dodatkowo lutowanych w SMD.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Nie potrafisz sobie rozbić liczby na dziesiętne cyfry?

Nie chodzi o to że nie potrafie rozbić tylko chce by przykładowo

z zmiennej X = np 1234 przepisać wartość do drugiej zmiennej np Y gdzie zmienna Y byłaby odpowiedzialna za wyświetlanie cyfr na wyświetlaczu.

Link do komentarza
Share on other sites

No to tak sobie swój program napisz. Rozbij liczbę w zmiennej Y na cyfry i ustaw te cyfry na wyświetlaczu. Nie rozumiem w czym masz problem?

Właśnie dlatego pisze na forum czy nie ma sposoby by obeszło się bez rozbijania cyfr?

Link do komentarza
Share on other sites

Tak samo TM1637 nie obsługuje 3 cyfrowych wyświetlaczy.

Oczywiście, że obsługuje. Po prostu czwartej cyfry nie podłączasz.

I jesteś pewien że po prostu wystarczy nie podłączyć jednej bądź dwóch cyfr do TM1637 i będzie on normalnie działał? Bo zastanawiam się nad kupieniem tych scalaków na aliexpres 😉 a wszędzie w sieci opisują działanie tego scalaka z 4 cyframi 😉

Link do komentarza
Share on other sites

Przecież taki scalak "nie wie" co mu podłączyłeś. Ma wyjście na 4 wyświetlacze (multipleksowane) więc steruje zawsze czterema. Na ślepo wysyła do nich sygnały, ale mało go obchodzi czy prąd do LEDów płynie czy nie. To procesor wysyła po interfejsie szeregowym informacje o tym jakie kombinacje segmentów mają być zapalone. Jeżeli "każe" zapalić segment w wyświetlaczu którego nie ma, to po prostu tego nie zobaczysz, ale nic więcej się nie stanie. Pisząc program traktuj ten układ jakby miał tylko 3 (czy ile tam planujesz) cyfry i tyle.

Dlaczego nie chcesz użyć gotowych modułów 4-cyfrowych? Z uwagi na oszczędność miejsca? Są w miarę tanie, gotowe i działają od pierwszego włączenia. Tu masz dobrze opisane jak to obsłużyć programowo:

http://uczymy.edu.pl/wp/blog/2016/05/14/wyswietlacz-led-tm1637-uruchomienia/

Akurat TM1637 ma dość specyficzny interfejs, który trzeba udawać programowo na pinach ale przecież to załatwia odpowiednia biblioteka. Niefortunne jest to, że w scalaku brakuje sygnału wyboru układu (tzw. Chip Select) co uniemożliwia podłączenie kilku modułów/ sterowników do tych samych linii I/O. Każdy kolejny TM1637 będzie więc zajmował 2 linie portów procesora.

Link do komentarza
Share on other sites

Przecież taki scalak "nie wie" co mu podłączyłeś. Ma wyjście na 4 wyświetlacze (multipleksowane) więc steruje zawsze czterema. Na ślepo wysyła do nich sygnały, ale mało go obchodzi czy prąd do LEDów płynie czy nie. To procesor wysyła po interfejsie szeregowym informacje o tym jakie kombinacje segmentów mają być zapalone. Jeżeli "każe" zapalić segment w wyświetlaczu którego nie ma, to po prostu tego nie zobaczysz, ale nic więcej się nie stanie. Pisząc program traktuj ten układ jakby miał tylko 3 (czy ile tam planujesz) cyfry i tyle.

To super;) dokładnie o takie info mi chodziło;)

Dlaczego nie chcesz użyć gotowych modułów 4-cyfrowych? Z uwagi na oszczędność miejsca? Są w miarę tanie, gotowe i działają od pierwszego włączenia.

Oglądałem kilka modułów i akurat ciężko będzie mi użyć ich w np. zasilaczu i multimetrze w jednym który robię ze względu na mała obudowę; a tak mając osobno scalak mogę sam zaprojektować sobie płytkę by pasowała do projektu 😉

Tu masz dobrze opisane jak to obsłużyć programowo:

http://uczymy.edu.pl/wp/blog/2016/05/14/wyswietlacz-led-tm1637-uruchomienia/

Tak wiem, czytałem ten poradnik i właśnie na nim wzorując się szukałem rozwiązania tego samego sterowania za pomocą 74HC595 😉

Akurat TM1637 ma dość specyficzny interfejs, który trzeba udawać programowo na pinach ale przecież to załatwia odpowiednia biblioteka. Niefortunne jest to, że w scalaku brakuje sygnału wyboru układu (tzw. Chip Select) co uniemożliwia podłączenie kilku modułów/ sterowników do tych samych linii I/O. Każdy kolejny TM1637 będzie więc zajmował 2 linie portów procesora.

Tak zgadza się, jednak mimo wszystko to i tak tylko 2 dodatkowe porty 😉

Link do komentarza
Share on other sites

Być może najprostszym wyjściem będzie w takim razie użycie 74HC595 podłączonych do szyny SPI? Te scalaki są bardzo tanie (okolice 50 groszy), więc możesz zrobić sterowanie statyczne: każda cyfra dostaje własny rejestr 8 bitowy i 8 oporników a rejestry łączysz szeregowo tj. wyjście poprzedniego z wejściem następnego. Nie masz żadnego mrugania od multipleksowania itp rzeczy, a program jest bardzo prosty: procesor po prostu wysyła tyle bajtów danych ile cyfr wyświetlasz. No i zawsze (nawet przy 20 cyfrach) potrzebujesz tylko 3 wyjść: SCK, MOSI i jakiegoś LOAD. Podejrzewam, że będzie to dużo tańsze niż zakup dedykowanych scalaków do obsługi wyświetlaczy LED a potem jeszcze łączenie ich w matrycę.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.