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

Zegar matrycowy 8x80 + termometr oraz datownik z imieninami

rabbit2 02 Apr 2012 23:21 42014 79
Altium Designer Computer Controls
  • Zegar matrycowy 8x80 + termometr oraz datownik z imieninami

    Witam.
    Chciałem zaprezentować swoje dzieło, a jest nim zegar matrycowy.
    Zegar ten poza wskazywaniem aktualnego czasu wskazuje również temperaturę, datę wraz z imieninami oraz maksymalną temperaturę zarejestrowaną w dzień i minimalną zarejestrowaną w nocy. Zegar ma 6 trybów wyświetlania - z sekundnikiem, bez sekundnika, razem z temperaturą, małe cyfry lub razem z animacją :) (taki bajer dla dzieciaka). Zegar ma tryb ECO, czyli po godzinie 22:00 wyświetlane cyfry zegara są wielkości 3x5, co sprawia, że zmniejsza się zużycie energii elektrycznej. Co 3 minuty wyświetlane jest info tekst w formie scrolla, czyli dzień tygodnia, dzień, miesiąc, rok, imieniny, temperatura. Po godzinie 22:00 zamiast info tekstu w formie scrolla, co trzy minuty pojawia się odczyt temperatury. Całość sterowana jest pilotem IR od TV. Zegar w razie zaniku napięcia podtrzymywany jest z baterii. Tak dla ciekawości napisze ze mikrokontroler główny nie używa w tym przypadku żadnego timera :)

    Z czego zrobiony jest zegar:

    mikrokontroler główny atmega 32
    mikrokontroler do obsługi IR attiny 2313
    odbiornik IR TSOP 2236
    10 matryc 8x8
    rejestr przesuwny 74HC595
    multiplekser 74 hc 138 do obsługi linii
    Eeprom 24c64, w którym zapisane są imieniny
    RTC Ds 1307


    Oprogramowanie wyszło z Bascoma.
    Schemat oraz PCB z Eagle'a.
    Poniżej zamieszczam schemat i zdjęcia z pracy nad zegarkiem oraz wideo prezentacje.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Schemat płyty wyświetlacza.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Schemat płyty głównej.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Wydrukowana mozaika.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Płytki wyświetlacza po termotransferze.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Trawienie płytki wyświetlacza.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Wiercenie - około 200 otworów musiałem wywiercić :)
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Połowa wyświetlacza gotowa.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Wyświetlacz w całości.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Tył płytki wyświetlacza.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Tył płytki wyświetlacza.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Pierwsze próby wyświetlacza.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Płyta główna po trawieniu.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    RTC ds 1307 przed lutowaniem.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Troszkę było tego do wlutowania.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Płyta główna z płytą wyświetlacza łączone są goldpinami.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Płyta główna, jeszcze niekompletna.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Pierwsze próby programowania.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Pierwsze efekty :)
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami

    Do zrobienia obudowy użyłem kątowników PCV, plexi, folia do przyciemnienia szyb samochodowych.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninamiZegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Skrzynka uciosowa, brzeszczot i ramka wycięta.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Teraz trochę kleju.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Teraz przyciemnienie plexi.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    Ramka gotowa.
    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami
    I efekt końcowy.
    A to wideoprezentacja:







    Pozdrawiam.

    Cool? Ranking DIY
    About Author
    rabbit2
    Level 20  
    Offline 
    rabbit2 wrote 586 posts with rating 339, helped 31 times. Live in city Będzin. Been with us since 2003 year.
  • Altium Designer Computer Controls
  • #2
    pier
    Level 24  
    Przepiękny multi zegarek Ci wyszedł. I jaki praktyczny.
    Widać przemyślane wszystko od początku do końca. Brawo.

    Nie wiem tylko po co jest Attiny2313? Przecież atmega poradziłaby sobie z pilotem.
    Nie doczytałem się też jaki jest czujnik temperatury.
  • #3
    jaras1987
    Level 11  
    Mam jedną małą uwagę. Powinno być "2 kwietnia" a nie "2 kwiecień". Bardzo fajna konstrukcja.
  • #4
    krzycho123
    Level 31  
    Bardzo efektowna konstrukcja, jak zrealizowałeś przechowywanie imiennin i skąs są pobierane ?
  • #5
    VSS
    Level 21  
    Bardzo dobre, bardzo dobry pomysł, świetne wykonanie. Chętnie zrobiłbym taki zegar, bo mam kilkanaście takich wyświetlaczy. Czy jest szansa na wsad do procesora?
  • #6
    mirekk36
    Level 42  
    Świetna realizacja, fajny efekt końcowy ;)

    dwie małe uwagi:

    - na schemacie kropki (Junction) daje się tylko w miejscach gdy łączą się co najmniej 3 przewody a nie na każdym zgięciu

    - też się przyłączam do pytania dlaczego użyłeś oddzielnego procka na sterowanie IR, przecież w Bascomie masz do tego komendy i można było wbudować spokojnie w Atmega32, która steruje wyświetlaczem. Piszę o tym bo jeśli tak dobrze poradziłeś sobie z oprogramowaniem wyświetlacza matrycowego i to jeszcze z takimi efektami to na pewno dałbyś radę jeszcze tą obsługę IR tam wcisnąć.
  • #7
    dondu
    Moderator on vacation ...
    Drobne uwagi:
    1. Schemat płyty głównej mógłby być znacznie bardziej czytelny, gdybyś używał etykiet i zrobił tak: Jak projektować czytelne schematy?
    2. Nie filtrujesz pinów zasilających układów scalonych. Warto o to dbać, bo łączny koszt to może 1zł, a pewność pracy urządzenia wzrasta bardzo znacząco.
    3. na schematach nie podajesz wartości niektórych elementów biernych.

    Ogólnie, fajny projekcik :)
  • Altium Designer Computer Controls
  • #8
    michalk2
    Level 18  
    Ogólnie Twoja praca zasługuje na pochwałę. Gratuluję pomysłu i wykonania. Zauważyłem, że używasz podobnych narzędzi Top toolsa jak ja :)

    Co mi się nie podoba:
    - schemat z dwoma uC nadaje się do kosza - nieczytelny; wspomniane kropki na narożnikach to pikuś; zastanawia mnie tajemnicze połączenie pięcio-przewodowe pomiędzy dwoma uC i do tego jeszcze dziwnie włączone tranzystory; należy go poddać optymalizacji to z chęcią będzie się go czytać

    - na schemacie używaj czasem szyny oraz labelów w przypadku wielu połączeń równoległych
  • #9
    raffiki
    Level 13  
    Czepiam się ale
    rabbit2 wrote:
    Procesor główny atmega 32

    to jest mikrokontroler
  • #10
    Sławek-K
    Level 15  
    Pomijając małe uchybienia (kropki gdzie nie ma węzła, brak wartości elementów itp) to WIELKIE brawa! Bardzo estetycznie wykonany no i oprogramowanie , przemyślane , dopracowane , można powiedzieć idealne. Może program lub choćby wsad dałoby radę wstawić? Pozazdrościć tylko umiejętności...
  • #11
    a_noob
    Level 23  
    Świetna konstrukcja, w warunkach domowych naprawdę pogratulować.

    Co do dodatkowego mikrokontrolera to z doświadczenia wiem, że kontroler zajęty przeliczaniem i wyświetlaniem danych ma problem z odbiorem dodatkowych danych bez zatrzymywania dotychczasowej pracy. Ja tak miałem z klawiaturą AT i wydaje mi się że kolega miał podobnie z pilotem. Takie rozwiązanie oszczędza nerwy. Ale oczywiście mogę się mylić i powody były inne.

    Pozdrawiam.
  • #12
    mirekk36
    Level 42  
    a_noob wrote:

    Co do dodatkowego mikrokontrolera to z doświadczenia wiem, że kontroler zajęty przeliczaniem i wyświetlaniem danych ma problem z odbiorem dodatkowych danych bez zatrzymywania dotychczasowej pracy. .... Takie rozwiązanie oszczędza nerwy. Ale oczywiście mogę się mylić ....


    No możesz się mylić bo na 100% odbiór IR nie zakłóciłby działania takiego procesora z taką aplikacją. Da radę to zrobić, zapewniam cię. Jeśli coś nie wychodzi na początku to nie ma co się zrażać - warto próbować dalej aż wyjdzie ;) ..... a w końcu wyjdzie na pewno.
  • #14
    danthe
    Level 30  
    Ogólne bardzo ładne, ale można było sobie sporo pracy zaoszczędzić stosując zamiast 74595 układy SCT2024, po pierwsze potrzeba by ich 5 sztuk, po wtóre nie były by potrzebne rezystory ograniczające prąd. Posiadają też linię "OE", na którą można podać sygnał PWM do regulacji jasności podłączonych led'ów.
  • #15
    hessuss
    Level 13  
    a_noob -> od tego są przerwania i timery. Moja tablica 8*128 ma timer z preskalerem 64 i radzi sobie w między czasie z klawiaturą PS2, RSem232, sterowaniem jasnością, pamięcią SPI, zegarkiem i termometrem I2C. Polecam lekturę przerwań, od kiedy je poznałem programowanie stało się prostsze.
  • #17
    xojciectadeuszx
    Level 18  
    Jakich matryc użyłeś?
  • #18
    eurotips
    Level 39  
    A nie wystarczyłoby 6 wyświetlaczy zamiast 10?
    Dużo miejsca to zajmuje i sporo prądu pożera.
    Pierwszy raz widzę taki projekt, szacunek dla autora.
  • #19
    SylwekK
    Level 32  
    Świetna konstrukcja! Jak widać w Bascom można napisać coś sensownego :) Chciałbym to potwierdzić na przykładzie moich sterowników silników (jeden od krokowych, drugi DC), które ostatnio zaprojektowałem ale niestety to robota komercyjna więc kodu i szczegółów konstrukcyjnych udostępnić nie mogę.
    Pomysł z dodatkowym uC czyli tiny2313 do pilota wcale nie wydaje mi się głupi, a to dla tego, że sam stosuję podobną metodę i np. do badania stanu baterii w moich projektach zrobiłem układzik na tiny13 (jako dodatkowy moduł), który robi nieco więcej niż tylko pokazuje jej stan i ma tą zaletę, że jeśli przyjdzie mi zasilać urządzenie z innego źródła to wystarczy zmienić wsad kontrolera baterii, a nie całego głównego urządzenia, które w sumie może pracować i bez tego kontrolera :)
  • #20
    rabbit2
    Level 20  
    Witam i od razu odpowiadam na pytania.

    Quote:
    Nie wiem tylko po co jest Attiny2313? Przecież atmega poradziłaby sobie z pilotem.


    ... po części odpowiedział kolega "a_noob" . Kiedyś robiłem niewielki zegarek który sterowałem pilotem od TV i miałem dość duży problem z opanowaniem tego , efekt był taki że pilot działał mułowato , trzeba było naciskać kilka razy przycisk żeby załapał itp dziwne rzeczy sie działy nie mogłem tego opanować i teraz postanowiłem sobie ułatwić sprawę i sterowanie ir powierzyłem osobnemu mikrokontrolerowi w tym przypadku to attiny 2313.


    Quote:
    Nie doczytałem się też jaki jest czujnik temperatury.


    Czujnik temperatury DS 18B20

    Quote:
    Mam jedną małą uwagę. Powinno być "2 kwietnia" a nie "2 kwiecień".


    ... a no tak ,,, poprawię przy aktualizacji oprogramowania.

    Quote:
    jak zrealizowałeś przechowywanie imienin i skąd są pobierane ?


    Imieniny przechowywane są w eepromie 24c64 i z niego sa pobierane.
    Tekst imion zamieniłem na kod ascii i kazdy kod zapisałem w kolejnych komórkach.
    Imiona kolejnych dni oddzieliłem znakiem kropki. Każdy miesiąc zapisałem w jakimś przedziale adresów. I np po odczytaniu daty jest miesiąc styczeń , dzień np 5 to program zaczyna przeszukiwać eeprom od adresu zarezerwowanego dla miesiąca stycznia i liczy odczytane "kropki" , po zliczeniu ich w tym przypadku pięciu , do zmiennej IMIENINY zapisywane są imiona aż do napotkania kolejnej "kropki" Oczywiście przed zapisem do zmiennej IMIENINY dane z eepromu zamieniam z ascci na odpowiadające im znaki . Troszkę zagmatwane ale banalnie proste i działa bez problemów.

    Quote:
    - na schemacie kropki (Junction) daje się tylko w miejscach gdy łączą się co najmniej 3 przewody a nie na każdym zgięciu


    No tak , ale miałem już kilka takich przypadków że pomimo że na schemacie niby było połączenie to na płytce już go nie było , i po wytrawieniu płytki okazuje sie że brakuje kilku ścieżek i robota na nic. Teraz żeby mieć pewność ze wszystkie połączenia są również odzwierciedlone na płycie pcb klepie wszędzie te kropki .

    Quote:
    Schemat płyty głównej mógłby być znacznie bardziej czytelny

    ... trochę go poprawiłem ale daleko mi jeszcze do ideału.

    Quote:
    Nie filtrujesz pinów zasilających układów scalonych.

    ... no tego nie kumam , możesz przybliżyć temat ?

    Quote:
    zastanawia mnie tajemnicze połączenie pięcio-przewodowe pomiędzy dwoma uC

    ... to jest sterowanie , wykorzystywane są dwa a pozostałe miały mieć inne zastosowanie , Attniny 2313 po odebraniu odpowiedniej komendy z pilota IR podaje stan wysoki na jeden z tych tranzystorów( w zależności od tego jaki przycisk został wciśnięty ), a ten ustawia stan niski na pinie atmegi . Wiem że można wykorzystać RX TX ale w tym przypadku zrobiłem to w ten sposób.


    Quote:
    Jedyne czego mi brakuje to przynajmniej wyjścia i obsługi na termometr zewnętrzny


    Włącz pierwszy film i przewiń na 2:19 tam widać biały przewód z wtyczką jack to przewód którym jest właśnie podłączony zewnętrzny czujnik temperatury . Zresztą widać na wyświetlaczu temperatura +8.0'c , w mieszkaniu mam nieco cieplej :)



    Quote:
    Może coś o kosztach ?


    najdroższe były matryce ok 6 złotych sztuka, potem atmega ok 13 zł,reszta to drobnostki , myślę ze w ok 100 złotych się zmieściłem.

    Quote:
    Jakich matryc użyłeś?


    takich LTM1388O-AMBW
    http://download.maritex.com.pl/pdfs/op/LTM1388O-AMBW.pdf

    Quote:
    A nie wystarczyłoby 6 wyświetlaczy zamiast 10?
    Dużo miejsca to zajmuje i sporo prądu pożera.


    Chciałem 10 matryc żeby zmieścić wszystko . Co do pożerania prądu to aż tak źle nie jest , jednocześnie świeci tylko połowa jednej linii . Czyli wygląda to tak . Najpierw wyświetlana jest prawa strona pierwszej linii od góry , potem lewa strona pierwszej linii, następnie lewa połowa drugiej linii następnie prawa połowa drugiej linii itd , tak że jednocześnie może świecić tylko 40 pikseli a żę podczas wyświetlania normalnych znaków to mniej więcej naraz świeci ok 20 pikseli .to chyba nie tak źle
  • #21
    dondu
    Moderator on vacation ...
    rabbit2 wrote:
    Quote:
    Schemat płyty głównej mógłby być znacznie bardziej czytelny

    ... trochę go poprawiłem ale daleko mi jeszcze do ideału.

    Człowiek uczy się całe życie :)


    rabbit2 wrote:
    Quote:
    Nie filtrujesz pinów zasilających układów scalonych.

    ... no tego nie kumam , możesz przybliżyć temat ?

    Proszę bardzo: Zakłócenia w pracy mikrokontrolerów
  • #22
    mirekk36
    Level 42  
    rabbit2 wrote:

    Quote:
    - na schemacie kropki (Junction) daje się tylko w miejscach gdy łączą się co najmniej 3 przewody a nie na każdym zgięciu


    No tak , ale miałem już kilka takich przypadków że pomimo że na schemacie niby było połączenie to na płytce już go nie było , i po wytrawieniu płytki okazuje sie że brakuje kilku ścieżek i robota na nic. Teraz żeby mieć pewność ze wszystkie połączenia są również odzwierciedlone na płycie pcb klepie wszędzie te kropki .


    No i takie problemy będziesz miał zawsze jeśli nie zakodujesz sobie w pamięci raz na zawsze, że połączenia na schemacie rysuje się poleceniem NET a nie WIRE tak jak ty to robisz. Przez to czasem coś ci nie łączy.....

    A jak zaczniesz robić za pomocą NET to nie dość, że nigdy już nie spotkasz się z takim problemem, to jeszcze kropki będą się automatycznie stawiać tam gdzie potrzeba ;) ..... Nie mówiąc już o tym, że nigdy nic nie zginie po przejściu na PCB. To jest tylko kwestia poznania Eagla.
  • #23
    Slaby
    Level 12  
    Witam,
    Projekcik fajny jak na warunki domowe to bardzo ładnie wyszedł.
    Matryce z Maritexu znane mi ;) Podobnych użyłem w konstrukcji tablic wewnętrznych w pracy.
    Mała uwaga: Tak jak kolega "danthe" napisał lepiej było by użyć gotowych driverów np SCT2404 bądź, jak już kupowałeś w Maritexie, to tam mają całe mnóstwo rożnych driverów np. najprostszy MBI5026.
    Jednak rezystory ograniczające prąd muszą być, ponieważ jeśli by ich nie było driver mógłby mocno się grzać. Pamiętajmy, że jest to sterowanie matrycowe czyli w jednym momencie driver może "ciągnąć" nawet 16 diod co przy prądzie impulsowym jednej diody (żeby świeciło to z sensowną jasnością) rzędu 40mA daje 640mA a spadek napięcia na driverze musi wynosić napięcie zasilania- spadek napięcia na diodzie (ok 2V) więc moc chwilowa może przekraczać maksymalną moc traconą na driverze (w zależności od obudowy). Dlatego jeśli ustawi się w driverze duży prąd i doda rezystor szeregowy wtedy moc tracona na driverze jest znacznie mniejsza bo driver pracuje w nasyceniu.
    Można też jako klucze załączające wiersze zastosować tranzystory MOSFET P-kanał jakieś małe np FDS9435. Przy zastosowaniu driverów warto tez było by (żeby tablica świeciła jaśniej) zastosować wydajniejszy prądowo stabilizator albo w ogóle zasilacz impulsowy najprostszy typu STEP DOWN.
    Kolega "danthe" słusznie zauważył że gotowe drivery mają wejście OE które może służyć do regulacji jasności za pomocą PWM'a.
    Napisał kolega ze jednocześnie świeci tylko połowa linii, z tego wniosek że wypełnienie tablicy jest nie 1/8 tylko 1/16 więc żeby tablica świeciła z zadowalającą jasnością to te prądy które podałem wyżej trzeba jeszcze zwiększyć.
    Ogólnie tablica fajna choć faktycznie myślę że jeden mikrokontroler by sobie poradził ze wszystkim ;)
    Podam przykład: u mnie w firmie powstała konstrukcja na '51 dokładnie na AT89C51ED2 która obsługuje tablice o rozdzielczości 32x120 i jest w stanie na tym kontrolerze regulować jasność odbierać dane po RS485 itd.. Kwestia dopracowania programu.
    Ale generalnie projekcik bardzo fajny gratulacje bo nie jest łatwo sterować takim rodzajem wyświetlacza.
    Pozdrawiam :)
  • #24
    bm33
    Level 13  
    Witam
    Też mi się podoba projekt. Mam pytania:
    1. Jak zrealizowałeś zdekodowanie kodu pilota?
    2. Czy nie zastanawiałeś się nad synchronizacją czasu i daty z wzorcem np. DCF77
    3. Czy nie warto wprowadzić czujnika światła do regulacji jasności? (gdy jest ciemno to możne razić w oczy przy oglądaniu TV a w słoneczny dzień może być słabo widoczne)
  • #25
    Dexter77
    Level 28  
    Widać że autor się starał, projekt bardzo ładny. Ale wychodzą braki w wiedzy z zakresu elektroniki. Zapewne autor jest niezłym programistą.
    Więc może jeszcze gniazdko Ethernet i wyświetlanie ulubionego kanału RSS? Albo prognozy pogody?
  • #26
    rabbit2
    Level 20  
    Witam i odpowiadam.

    Quote:
    Jak zrealizowałeś zdekodowanie kodu pilota?

    Program pisałem w Bascomie , a pilot który używam pracuje w RC5 . Bascom ma gotowe komendy do obsługi " dekodowania" RC5 , tak że obsługa pilota była chyba najmniejszym problemem . Kody do odpowiednich przycisków pilota , można znaleźć w sieci , ja użyłem na szybko zrobionego na płytce testowej odbiornika IR + LCD i kody spisałem z wyświetlacza LCD.

    Quote:
    Czy nie zastanawiałeś się nad synchronizacją czasu i daty z wzorcem np. DCF77

    nie , zegar na razie odmierza czas dokładnie nie spieszy nie opóźnia i chyba tak już zostanie . Taka synchronizacja fajna sprawa , ale to dodatkowy układ , a odbiorniki radiowe , strojenie itp. to nie są moje dobre strony , mógłbym sobie nie poradzić , a po co się zniechęcać .

    Quote:
    Czy nie warto wprowadzić czujnika światła do regulacji jasności? (gdy jest ciemno to możne razić w oczy przy oglądaniu TV a w słoneczny dzień może być słabo widoczne)


    Czujnik oświetlenia miał być w początkowej fazie projektowania , potem miało być ściemnienie wyświetlacza po godzinie 22:00 ( jest na schemacie w okolicy regulatora lm 317) , ale pozostawiłem tak jak jest , ponieważ wyświetlacz jest naprawdę doskonale widoczny i w słoneczne dni kiedy to w pokoju jest bardzo jasno i nie razi również kiedy jest ciemno . Kolor matrycy Amber bursztyn tak elegancko kontrastuje z czarna plexi że nie musi świecić jasno żeby był doskonale widoczny w dzień jak i w nocy , jestem na to wyjątkowo uczulony i dlatego sprawa jasności matrycy jest tematem cały czas otwartym i jeśli zajdzie taka potrzeba dorzucę układ który będzie ciemniał matryce w zależności od oświetlenia w pokoju . Jasność matrycy reguluje LM 317




    A jeszcze jak by kogoś interesowało czym tworzyłem znaki , litery , cyfry itp to odpowiadam tym:

    Zegar matrycowy 8x80 + termometr oraz datownik z imieninami

    Na szybko zrobiony program na potrzebę tego projektu . Generator znaków . Po utworzeniu ręcznie za pomocą myszy znaku , klikam na "Przelicz" i otrzymuje zapis w takiej postaci jak widać . Pierwsza liczba to pierwsza linia od góry , druga liczba do druga linia od góry itd . Zamieniając programowo te liczby z dec na bin otrzymamy odzwierciedlenie każdej lini w postaci np 103 czyli pierwsza linia po zamianie z dec na binar wygląda tak 1100111 , druga 67 to 1000011 , itd.
    Pozdrawiam.
  • #27
    danthe
    Level 30  
    Do Slaby, odnośnie dodatkowych rezystorów - nie są potrzebne, wszystkie matryce są jednakowe, co umożliwia zmniejszenie napięcia zasilającego tranzystory linii do wartości spadku na diodzie LED + ok. 1V aby wystarczyło na stratę w tranzystorze i minimalne straty w SCT2024.
  • #28
    przemekbary
    Level 16  
    Witam!
    Z tego co widzę to mogło być automatyczne ustawianie czasu nadawanego przez Frankfurt (jeśli dobrze pamiętam). Są do tego gotowe scalaki. Funkcjonalność ta przydaje się częściej niż się myśli... Poza tym, bardzo fajny projekt. Nic tak nie cieszy jak elektronika, która przydaje się w życiu codziennym.
  • #29
    Slaby
    Level 12  
    Kolego danthe mylisz się. Matryce tylko teoretycznie są jednakowe jednak poszczególne diody w matrycach różnią się od siebie zwłaszcza napięciem przewodzenia właśnie. Jednak masz rację, że obniżenie napięcia zasilania wierszy pozwoliło by na delikatną redukcję mocy wydzielanej na driverach. Jednak należy zachować margines i w tym celu są właśnie rezystory szeregowe. Pełnia one role tak jak by trochę źródeł prądowych. Sposób podłączenia bez rezystorów szeregowych jest wykorzystywany w sterowaniu diod statycznym, tam gdzie każda dioda anodą jest przypięta na stałe do plusa a katoda jest podłączona do wyjścia drivera. Wtedy (ponieważ na diody są sterowane statycznie) prądy ładowane w diodę są rzędu maks 10mA przy dzisiejszych diodach co razem daje maks 160mA przy załączonych wszystkich wyjściach drivera. Poza tym dobrze było by dać, przy takim sterowaniu, jeszcze rezystory od każdej kolumny do plusa i od każdego wiersza do masy. Rezystory rzędu 10kohm a nawet przy gorszych matrycach mniejsze rzędu 4,7kohm. Bez nich w zależności od wielkości rozrzutu diod w matrycach może występować efekt delikatnego świecenia pikseli które normalnie nie powinny świecić. Wynika to z faktu czasów wyłączania diod tranzystorów itd. Taka dioda w matrycy potrafi już nieźle świecić przy prądach poniżej 1mA stad taki efekt.
    Generalnie takie matrycowe sterowanie stosuje się wszędzie tam gdzie nie musimy uzyskiwać dużych jasności wyświetlaczy. Np w tablicach pracujących wewnątrz budynków. Na zewnątrz stosuje się przeważnie sterowanie statyczne. Chyba, że raster diod jest tak mały że możliwe jest uzyskanie przy sterowaniu dynamicznym jasności takiego wyświetlacza rzędu 6000cd/m2 co jest wymagane żeby treść na tablicy była widoczna w pełnym słońcu. Oczywiście dochodzi tu kwestia jeszcze kontrastu itd ale to inna bajka.
    Sterowanie statyczne ma tą zaletę, że raz wpisana informacja zostaje na tablicy do czasu zaniku napięcia zasilania driverów. Tablica o sterowaniu matrycowym musi być ciągle odświeżana. Zaletą jednak jest mniejsze zużycie driverów bo na każde 16 kolumn wystarczy jeden driver. Przy sterowaniu statycznym ilość driverów jest równa ilości diod podzielonej przez 16 jeśli mamy driver 16 wyjściowy.
    Projekt jest udany generalnie i najważniejsze że działa tak jak to było zamierzone:)
    A do wypchnięcia danych na drivery można spokojnie stosować interfejs SPI jeśli jest zaimplementowany sprzętowo w kontrolerze :) Nie trzeba martwic się o wypychanie tylko wrzucamy dane do bufora a interfejs sam je sobie wypchnie ;) w tym czasie można robić coś innego np odbierać dane po podczerwieni :)
    Pamiętajmy, że drivery mogą przyjąć clocka nawet rzędu 30MHz w połączeniu kaskadowym więc zostaje mnóstwo czasu na robienie czegoś innego. Oczywiście przy założeniu odświeżania całej tablicy na poziomie minimum 75 Hz bo poniżej niestety będzie widoczne mruganie tablicy. A i jeszcze jeden efekt przy dynamicznym sterowaniu tablicy. Jeśli mamy tekst przewijany poziomo na tablicy co przy sterowaniu będzie on pochylony w prawo bądź w lewo w zależności od tego od którego wiersza zaczynamy wyświetlanie (górnego czy dolnego) Efekt ten można znacznie zredukować stosując odświeżanie tablicy duuuużo wyższe niż przesuwanie tekstu po niej. Np jeśli odświeżanie tablicy następuje raz na każde przesunięcie napisu o 1 piksel to pochylenie napisu będzie równe dokładnie 1 pikselowi. Jeśli jednak odświeżymy tablicę np 10 razy na każde przesunięcie tekstu o 1 piksel to pochylenie będzie równe tylko 1/10 piksela. To jest efekt tylko i wyłącznie postrzegania przez ludzki wzrok ;)
    Ale dość tych wywodów bo koledzy zaraz mnie tu do porządku doprowadzą :)
    Pozdrawiam i jeszcze raz projekcik bardzo mi się podoba :)
    Dodam tylko, że nie jestem programistą z zawodu dlatego nie wchodzę w szczegóły oprogramowania :)
    Pozdrawiam raz jeszcze wszystkich kolegów bo widzę że projekt wzbudził konkretne zainteresowanie :)
  • #30
    Hopen
    Level 12  
    Witam,
    podepnę się pod temat.
    Projekcik bardzo fajny i sam robię podobny, ale tablicę RGB 5x12. Czy można umieścić pliki płytki i wsad procka?

    Ja niestety mam mały problem. Też piszę program w Bascomie, tylko nie wiem jak zamieścić, żeby po skończonym jednym zdaniu przeszedł do następnego.
    Jak realizuję to w pętli głównej, to ciągle pobiera pierwsze znaki i tak w kółko wyświetla.
    Ktoś mi pomoże?
    Problem swój umieściłem:
    https://www.elektroda.pl/rtvforum/topic2262434.html