logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zrobić zegar na 132 diody LED (60 sekund, 60 minut, 12 godzin)?

tomaszhod 01 Sty 2021 21:00 1356 23
REKLAMA
  • #1 19152224
    tomaszhod
    Poziom 9  
    Posty: 111
    Pomógł: 1
    Ocena: 21
    Witam. Jestem bardzo początkującym arduinowcem więc prose o wyrozumiałość i łopatologię. Chciałem stworzyć zegar na 132 diody LED. 60 sek, 60 minuty i 12 godziny. Chciałem to zrobić na rejestrach przesuwnych 74HC595 i Arduino uno R3. Mniej więcej wiem jak podłączyć rejestry ale jak przesyłać sygnał, 1 bit aby obszedł wszystkie kości to już trudniej. Podpiąłem 2 scalaki i przesyła mi 8 bitów czyli drugi scalak pokazuje prawie to samo co pierwszy. Ktoś może pomóc jak to rozwiązać programowo? Czyli układ podzielony na dwa liczniki do 60 i jeden do 12. Pierwszy sekundowy liczy do 59 i na 60 impulsie steruje drugim licznikiem minutowym. ten z kolei po 59 impulsach steruje godziną.
    Załączniki:
    • Jak zrobić zegar na 132 diody LED (60 sekund, 60 minut, 12 godzin)? 74HC595_3.png (41.36 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • REKLAMA
  • #3 19152523
    szelus
    Poziom 34  
    Posty: 1508
    Pomógł: 315
    Ocena: 53
    Cześć.
    tomaszhod napisał:
    Ktoś może pomóc jak to rozwiązać programowo? Czyli układ podzielony na dwa liczniki do 60 i jeden do 12. Pierwszy sekundowy liczy do 59 i na 60 impulsie steruje drugim licznikiem minutowym. ten z kolei po 59 impulsach steruje godziną.


    Programowo czy sprzętowo?
    Można to oczywiście rozwiązać kompletnie bez mikroprocesora z wykorzystaniem "worka" układów serii 74xx jak zasugerował kolega artbi881.

    Z drugiej strony użycie mikrokontrolera daje prostszy układ, większą elastyczność i pozwala zapoznać się z bardziej współczesnymi technologiami.

    Jeżeli chodzi o układ takiego zegara na bazie Arduino, to widzę dwie sensowne możliwości.
    1. Korzystając z 18 układów 595, jak proponujesz. Układy należy połączyć w trzy łańcuchy - dwa po 8 układów (minuty/sekundy) i jeden z dwóch układów (godziny). Każdy łańcuch musi mieć sygnały CLOCK i LOAD podłączone do innych pinów Arduino tak, aby każdym łańcuchem można było sterować niezależnie. Linia danych może być wspólna.
    To, co pokazałeś na obrazku to jest jeden łańcuch z dwóch układów.
    Zalety: możliwa prostsza płytka - krótsze połączenia pomiędzy układami 595 a LEDami ("lokalne").
    Wady: sporo układów

    2. Wykorzystanie sterowania multipleksowanego 9 x 15
    15 wierszy z matrycy sterowane bezpośrednio z pinów Arduino, 9 kolumn sterowane za pośrednictwem tranzystorów PNP sterowanych z dekodera "4 do 10" typu 74HCT42. Wejścia dekodera sterowane z Arduino. Dekoder jest potrzebny, bo na bezpośrednie sterowanie kolumn zabraknie pinów.
    Zalety: mniej układów (1 + 9 tranzystorów)
    Wady: bardziej skomplikowana płytka - dużo połączeń "odległych".
  • REKLAMA
  • #4 19153229
    tomaszhod
    Poziom 9  
    Posty: 111
    Pomógł: 1
    Ocena: 21
    Sprzętowo to jeżeli chodzi o 595 to mniej więcej wiem. Tutaj potrzebuje pomocy programistycznej. A jeśli chodzi o Twój drugi pomysł to chętnie bym zobaczył schemat.
  • #5 19153375
    Konto nie istnieje
    Poziom 1  
  • #6 19153498
    Wirnick
    Poziom 30  
    Posty: 1774
    Pomógł: 72
    Ocena: 239
    Witam!
    szelus napisał:

    Jeżeli chodzi o układ takiego zegara na bazie Arduino, to widzę dwie sensowne możliwości.
    1. Korzystając z 18 układów 595, jak proponujesz. Układy należy połączyć w trzy łańcuchy - dwa po 8 układów (minuty/sekundy) i jeden z dwóch układów (godziny).

    Zastosowanie rozwiązania kolegi emarcus jest też ciekawe, ale też wystarczy 60 sztuk.
    Ja mam jeszcze jedną propozycję, jeśli chcesz to zrobić na c595.
    Zastosować 60 diod RGB. Do katod jednej diody podłączyć jedno wyjście z ośmiu c595(zostają 4 do dowolnego wykorzystania). Multipleksowo sterować anody wszystkich diod(R - godziny, G - minuty, B - sekundy).
  • #7 19153739
    Konto nie istnieje
    Poziom 1  
  • #8 19153779
    Wirnick
    Poziom 30  
    Posty: 1774
    Pomógł: 72
    Ocena: 239
    Co do estetyki, niech się wypowie Autor. Autor prawdopodobnie się uczy - potrzebna jest Mu "głęboka woda", by jako doświadczony przejść na uproszczenia. Będzie skomplikowany kod - razem go stworzymy.
  • #9 19154284
    trol.six
    Poziom 31  
    Posty: 1650
    Pomógł: 151
    Ocena: 381
    Wirnick napisał:
    . Autor prawdopodobnie się uczy - potrzebna jest Mu "głęboka woda",

    Raczej kurs "podstawy C".

    szelus napisał:
    to widzę dwie sensowne możliwości.

    Ja widze trzecią (czwartą), multipleksowanie przez dwa. Więcej może nie być sensu z powodu jasności diod. Proste PCB i łatwe sterowanie. 10 układów. Pięć szeregów koniecznie na jeden wspólny port. W arduino będzie 20 x 8 bitów informacji od razu w gotowej formie do wysyłki. Plus gdzieś dwa wyjścia sterujące. Też mogą być na tym samym porcie jeśli to możliwe. Zadanie trywialne.

    Czwarta to trzy diody podpięte pod jeden PIN. Dzięki temu PCB jeszcze prostsze. I sterowanie na przemian: sekundy, minuty, godziny. 8 układów. Tu należy się zastanowić nad konfiguracją. Czy jeden szereg czy może 8 równolegle, a może 4 szeregi x 2.

    Na cyfrowych układach też nie takie trudne. Można zamienić 595 na 164. Ale układy cyfrowe są dość wrażliwe na zakłócenia EMI, stąd trzeba dobrze zrobić PCB, i zasilanie. No i raczej nikt tego nie zaprojektuje.

    Rozwiązanie z WS2812B też może być ciekawe jeśli autor ma zamysł różnych efektów. Jak i diody RGB też są fajne. Tylko że z diodami RGB może dojść niuans różnych jasności.
    .
  • REKLAMA
  • #10 19154303
    tomaszhod
    Poziom 9  
    Posty: 111
    Pomógł: 1
    Ocena: 21
    Nie upieram się na 595 ale mam ich kilkanaście więc bym wykorzystał. Co do LED to mam RGB ale i tak muszę je podłączyć tak jak 3 oddzielne ze wspólna katodą. Np czerwony sekundy, zielony minuty, niebieski godziny. Jeszcze nie mam nic gotowego, ledy pewnie będę montował bezpośrednio w tarczy zegara nie do płytki, bo zegar ma być duty (śred. 50cm).

    Dodano po 4 [minuty]:

    [quote="trol.six"]
    Wirnick napisał:
    . Autor prawdopodobnie się uczy - potrzebna jest Mu "głęboka woda",

    Raczej kurs "podstawy C".

    Zrobiłem kurs arduino na forbocie. I to tyle. W zasadzie to umiem zapalić i zgasić leda:) no i jeszcze ify ogarnąłem. A po za tym skończyłem szkołę elektroniczną w 87 roku i jeszcze nas o lampach uczyli :)
  • Pomocny post
    #11 19154354
    piotrek0207
    Poziom 20  
    Posty: 379
    Pomógł: 35
    Ocena: 70
    Tu inny przykład zegara :)

    http://danyk.cz/hodiny_en.html

    tomaszhod napisał:
    A po za tym skończyłem szkołę elektroniczną w 87 roku i jeszcze nas o lampach uczyli :)


    A myślałem, że to ja jestem za stary na takie zabawy z elektroniką :)
  • #12 19154407
    mpier
    Poziom 29  
    Posty: 817
    Pomógł: 153
    Ocena: 141
    To może jeszcze jeden sposób (czwarty, piąty): multipleksowanie /132. Efektywnie będzie to i tak 1/3, jeśli autor potrzebuje tylko po jednej diodzie dla godzin, minut i sekund jednocześnie. Wszystko można podłączyć bezpośrednio do mikrokontrolera: 132 diody to będzie 12 pinów i kilkanaście metrów przewodu. Plus: nie potrzeba 74HC595, minus: nie potrzeba 74HC595.
  • #13 19154439
    trol.six
    Poziom 31  
    Posty: 1650
    Pomógł: 151
    Ocena: 381
    mpier napisał:
    minus: nie potrzeba 74HC595.

    Raczej skomplikowane PCB. No i ewentualny spadek jasności.

    Ja bym zaczął od wyboru LED. Jeśli mają efektywne świecenie to zastosowałbym metode 4. Czyli 3 diody na jeden pin. Ponieważ PCB i sterowanie jest trywialne.

    Jeśli słabo świecą to zostaje trzecia albo pierwsza.

    Potem można myśleć co dalej. No i ewentualnie dodać sterowanie jasnością.

    tomaszhod napisał:
    Zrobiłem kurs arduino na forbocie. I to tyle. W

    Czyli jak pisałem, podstawy C. Np tutorial "C in 21 days"
    .
  • #14 19154580
    tomaszhod
    Poziom 9  
    Posty: 111
    Pomógł: 1
    Ocena: 21
    Sterowanie jasnością i tak musi być poprzez fotorezystor. Aby mi w nocy nie łupało po oczach a w dzień było widać.

    Dodano po 13 [minuty]:

    No fajnie, że zareagowaliście, A teraz od teoretyzowania do praktyki. Jeśli na 595 to może mi ktoś podesłać schemat podłączeniowy? Tzn podłączam tak jak na pierwszym obrazku 8 scalaków (w zasadzie na 60 sekund to potrzeba 7,5) jako pierwszy licznik. Potem tak samo jako drugi i co z niego pod arduino?
    A jak podłączyć wersję 4/5 czyli multipleksowanie na samym arduino??
    Jak możecie podeślijcie mi swoje pomysły w formie schematu.

    Dodano po 1 [godziny] 43 [minuty]:

    Zastosuj konfigurację diod typu WS2812B /13, lub innych tego typu (indywidualnie adresowalne diody RGB).

    e marcus[/quote]

    Czy chodziło Ci o takie coś? https://allegrolokalnie.pl/oferta/tasma-led-ws2812b-czarne-pcb-argb-60led-1m

    Podpowiesz jak to podłączyć?
  • #15 19155057
    Konto nie istnieje
    Poziom 1  
  • #16 19157270
    tomaszhod
    Poziom 9  
    Posty: 111
    Pomógł: 1
    Ocena: 21
    Dzięki emarcus. Interesuje mnie taki efekt jak w pierwszym i trzecim linku. Trzeci jest nawet lepszy A tam pokazane na całej taśmie bez cięcia LEDów na pojedyncze. Jeśli przyjmując , że cała taśma led 60 kosztuje 25 zł. to nie jest to duży koszt. Chyba, że ta taśma w tej cenie się do niczego nie nadaje. Co o tym myślisz?
  • #17 19157721
    Konto nie istnieje
    Poziom 1  
  • #18 19157937
    tomaszhod
    Poziom 9  
    Posty: 111
    Pomógł: 1
    Ocena: 21
    Czyli zasada działania ta sama, cod programu taki sam tylko rozmiar dopasować ?

    Dodano po 7 [godziny] 16 [minuty]:

    mpier napisał:
    Wszystko można podłączyć bezpośrednio do mikrokontrolera: 132 diody to będzie 12 pinów i kilkanaście metrów przewodu


    Ciekawe rozwiązanie. Mógłbyś podesłać schemat jak połączyć 132 diody aby miały 12 wyjść? Chyba wiem o jaka zasadę chodzi ale nie umiem tego zwizualizować.

    Dodano po 56 [minuty]:

    mpier napisał:
    Wszystko można podłączyć bezpośrednio do mikrokontrolera: 132 diody to będzie 12 pinów i kilkanaście metrów przewodu


    Ciekawe rozwiązanie. Mógłbyś podesłać schemat jak połączyć 132 diody aby miały 12 wyjść? Chyba wiem o jaka zasadę chodzi ale nie umiem tego zwizualizować.
  • #19 19159172
    Konto nie istnieje
    Poziom 1  
  • #21 19159935
    Konto nie istnieje
    Poziom 1  
  • #22 19161425
    tomaszhod
    Poziom 9  
    Posty: 111
    Pomógł: 1
    Ocena: 21
    emarcus napisał:
    Aż tak kiepsko z 'budżetem' domowym u ciebie?


    To na razie na próbę. Zobaczymy czy w ogóle mi z tego coś wyjdzie. Może się okazać że nie będą mi pasować. docelowo miało być na zwykłych ledach 5mm. Ale łatwość sterowania tych RGB chyba mnie przekonała. Trzeba będzie to dokupię te które proponujesz.
  • #24 19166976
    Konto nie istnieje
    Poziom 1  

Podsumowanie tematu

✨ Użytkownik planuje stworzyć zegar z 132 diodami LED, wykorzystując rejestry przesuwne 74HC595 oraz Arduino Uno R3. W dyskusji poruszono różne metody realizacji projektu, w tym wykorzystanie 18 układów 595 w trzech łańcuchach (dwa po 8 dla minut i sekund oraz jeden dla godzin) oraz alternatywne podejście z użyciem diod WS2812B, które umożliwiają łatwiejsze sterowanie i efekty wizualne. Użytkownik poszukuje pomocy w programowaniu oraz schematach podłączeniowych. Wskazano również na potrzebę zastosowania rezystora na linii sterującej dla diod WS2812B oraz omówiono kwestie estetyki i praktyczności montażu diod w tarczy zegara.
Wygenerowane przez model językowy.
REKLAMA