Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Miniaturowy sterownik wyświetlacza LCD2USB

manekinen 11 Mar 2009 17:08 108142 265
IGE-XAO
  • Miniaturowy sterownik wyświetlacza LCD2USB

    Umożliwia podłączenie dowolnego wyświetlacza LCD ze sterownikiem HD44780 do komputera za pośrednictwem USB. Możliwości i kombinacje wyświetlania zależą od programu na PC, za pomocą którego sterujemy LCD - a instalując dodatkowe pluginy można wyświetlić praktycznie każdą informację. Dodatkowym aututem jest koszt budowy urządzenia, wynoszący poniżej 10zł + koszt wyświetlacza.

    Autorem projektu jest Till Harbaum http://www.harbaum.org/till/lcd2usb/index.shtml , niestety płytka zamieszczona na stronie jest dwustronna, i żeby wykonać wersję jednostronną (DIP czy SMD) konieczne było wprowazenie zmian w programie, takich jak przekonfigurowanie większości pinów i zmiana procedury obsługi portu wyświetlacza. Wykonana przeze mnie płytka posiada wymiary 25mm x 42mm (szerokość 16 goldpinów) więc bez trudu chowa się za wyświetlaczem. Zastosowałem także gniazdo mini-usb, dzięki czemu płytka przylega bardzo blisko wyświetlacza. Po za wyświetlaniem danych na LCD, sterownik posiada takze dwa przyciski oraz regulację kontrastu i podświetlenia LCD - wszystko z poziomu programu na PC. Co więcej wartości elementów nie są krytyczne, diód zenera na liniach USB można nie montować jesli sterownik w PC akceptuje sygnały 5V. Bardzo dobrym programem do obsługi wyświetlacza pod windows jest LCDsmartie, niestety nie potrafi odczytać stanu przycisków, chociaż te w aplikacji testowej działają bezbłędnie. Jeśli planujemy urządzenie zabudować, przyciski dobrze będzie wyprowadzić na panel - ja wlutowałem, bo urządzenie będzie stało na biurku przytwierdzone do kawałka plexi. Ścieżki 16 mils, bez problemu do wykoania termotransferem.

    Koszty:
    -ATMega8 - 4zł
    -rezonator kwarcowy 12MHz - 1.50zł
    -gniazdo mini-usb - 2zł
    do tego kilka goldpinów, rezystorów, kondensatorów, tranzystor NPN, kawałek laminatu, daje nam 10zł.

    Artykuł na mojej stronie: http://diy.elektroda.eu/?p=150

    A tutaj przykładowy filmik jak sobie można skonfigurować program: http://www.youtube.com/watch?v=HXgL-AoiT1Q

    Załączam zmodyfikowany wsad.hex i płytkę eagle v5.4.0. i jej odpowiednik wraz ze schematem w PDF.
    UWAGA! PDF ze ścieżkami jest już w odbiciu lustrzanym!



    Miniaturowy sterownik wyświetlacza LCD2USB Miniaturowy sterownik wyświetlacza LCD2USB Miniaturowy sterownik wyświetlacza LCD2USB Miniaturowy sterownik wyświetlacza LCD2USB

    Miniaturowy sterownik wyświetlacza LCD2USB Miniaturowy sterownik wyświetlacza LCD2USB Miniaturowy sterownik wyświetlacza LCD2USB Miniaturowy sterownik wyświetlacza LCD2USB

    Miniaturowy sterownik wyświetlacza LCD2USB Miniaturowy sterownik wyświetlacza LCD2USB Miniaturowy sterownik wyświetlacza LCD2USB Miniaturowy sterownik wyświetlacza LCD2USB

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    manekinen
    Level 29  
    Offline 
    manekinen wrote 1629 posts with rating 2285, helped 75 times. Live in city Kętrzyn. Been with us since 2006 year.
  • IGE-XAO
  • #2
    lorak17
    Level 15  
    Bardzo ładnie wyszła Ci płytka, ja zamiast portu mini USB dodał bym kabelek i zakończenie 4x gold-pin żeński. Można było by wpinać bezpośrednio w płytę główną komputera, oczywiście w przypadku, kiedy LCD był by używany do uatrakcyjnienia obudowy komputera.
  • #3
    skaktus
    Level 37  
    Ładnie i starannie wykonane. Teraz tylko jakiejś obudowy brakuje.

    Mam też pytanie - gdzie kupowałeś gniazdo mini USB ?
  • #4
    maniek1818
    Level 22  
    Zauważyłem, że przy połączeniu ATMEGI z USB nie ma diod zenera, takie jakie spotyka się przy programatorach USBasp. Układ bez nich pracuje również stabilnie :?:
  • IGE-XAO
  • #5
    Nerwus
    Level 18  
    Takie pytanie jak jest rozwiazane sterowanie kontrastem z uC.
    Zlacze usb mozna kupic w www.tme.pl napewno nie w miescie Autora.
    W czym robiles plytke. Nie masz biblioteki dla Protela z taka obudowa rezonatora.
    P.S.
    Pozdrowienia dla Ketrzyna
  • #6
    manekinen
    Level 29  
    Co do obudowy, mam na myśli coś takiego jak to https://www.elektroda.pl/rtvforum/files-rtvforum/sta50053_112.jpg , tylko bez tych szpecących śrubek :)

    Oczywiście zamiast gniazda usb można podlutować przewody, to już jak komu pasuje. Generalnie miało być małe i niewidoczne :)
    Gniazdo brałem ze sklepu avt, już wcześniej na zapas. Ale zawsze można wydłubać ze starej komórki, itp.

    Sterowanie kontrastem jak i podświetleniem jest płynne, poprzez kanały PWM. Podświetlenie poprzez tranzystor npn, a kontrast przez cewkę i kondensator, w zasadzie można dać opornik zamiast tej cewki i na jedno wyjdzie. Płytka robiona w Eagle, jak by co mogę do PDF wyeksportować, no problem.
    A w mieście autora można co najwyżej stabilizator 5V dostać i nic więcej :)

    Dodano po 6 [minuty]:

    A co do zenerek, przeważnie komputery stacjonarne nie mają problemu z napięciem 5V na liniach danych, jednak warto dać bo przy laptopach będą problemy. Ja akurat takich nie miałem więc wlutuje sobie przy okazji.
  • #7
    Tomekddd
    Level 23  
    fajnie to wyszło bo jest niewielkie i nadaje sie dla nowszych kompów bez LPT.
    Zastanawia mnie sterowanie kontrastem za pomoca cewki i kondensatora nigdy o takim nie słyszałem jak to sie nazywa to bym poczytał coś więcej o tym sterowaniu.
  • #8
    krzycho123
    Level 31  
    Super , już dawno czegoś takiego poszukiwałem .
    W mojej ostatniej obudowie HTPC zastosowałem wyświetlacz pod LPT i smartie ale to nie wygodne pozatym nowe płyty nie mają już LPT.

    Interesowałem się też słynym już projektem , nawet na elektrodzie o nim pisali :
    http://forums.bit-tech.net/showthread.php?t=115461
    tylko że zastosowany PIC jest trudno dostępny i drogi a Atmega jest tania i mam ich spory zapas :)

    Dzięki za PCB .
  • #9
    manekinen
    Level 29  
    Tomekddd, kontrast jest zwyczajnie regulowany napięciem z kanału PWM, tak jak podświetlenie, a cewka i kondensator stanowią tylko filtr LC tłumiący wady PWMa, być może trafić się wyświetlacz ze sterownikiem czułym na punkcie zasilania, i bez filtrowania będa się dziać dziwne rzeczy. Nie wiem jak by się zachował gdyby podpiąć bezpośrednio pod wyjście PWM, ale raczej nic dobrego by z tego nie wyszło.
    Z resztą jak porównać płytkę i schemat, wartości troche odbiegają od siebie, jak pisałem wyżej nie sa krytyczne i w razie braku jakiegoś elementu można zastąpić go innym o podobnych właściwościach.
    Np. do kwarcu w ogóle nie trzeba dawać kondensatorów, zamiast rezystorów ograniczających prąd linii usb można dac zwory, i układ powinien działać.

    krzycho123 też widziałem ten projekt, wielką zaletą jest obsługa impulsatora jednak odstrasza nieznajomość PICów :(
  • #10
    krzycho123
    Level 31  
    manekinen ,fakt impulsator mógłby się przydać ale pod atmegą też można by to zrobić tylko trzeba by napisać nowy soft dopasowany do któregoś z pluginów.

    Jak odpale twoj projekt podziele się spostrzeżenia co do PWM .
  • #11
    maly.borkowo
    Level 15  
    A ja mam jeszcze takie pytanko, jako że dopiero zaczynam a chętnie bym sobie zrobił taki sterownik - w jaki sposób to zaprogramować? Widzę wyprowadzone MISO, MOSI, SCK, na trzy goldpiny, ale czy nie potrzeba jeszcze resetu?
  • #12
    manekinen
    Level 29  
    krzycho123, na stronie autora są zamieszczone źródła biblioteki LCD2USB.DLL, podane jest co i z czym sie je, więc do biblioteki można dopisać dodatkową funkcję i skompilować. Od strony mikrokontrolera też nie powinno być ciężko, są źródła w C, dopisać odczyt portów impulsatora i wsio. O LCDsmartie nie ma co się martwić, bo to nie w nim dorabiać funkcje ale tylko odpowiednio odczytywać z biblioteki. Niestety to za dużo na moją głowę.
    Co do PWM, działa zaskakująco dobrze. Ten większy LCD na zdjęciach nie ma pinu kontrastu, ale sprawdzałem na tym mniejszym i z poziomu programu można regulować w pełnym zakresie. Zapomniałem wspomnieć że nastawy zapisywane są w eeprom.

    Aha, nie mój projekt, to jest tylko moje wykonanie (no, z małą modyfikacją). Oklaski należą się dla Tilla Harbauma.

    maly.borkowo - reset nie jest wyprowadzony, na zdjęciu to ta nóżka nie przylutowana, akurat linie danych i zegarowa wypadają na pinach wyświetlacza i nie ma problemu, natomiast z resetem trzeba się podlutować lub przytrzymać szpileczką na czas zaprogramowania. Firmware raczej nie będzie już aktualizowany, od półtora roku wisi ten sam.
  • #13
    maly.borkowo
    Level 15  
    Mam jeszcze jedno pytanie do kolegi manekinen
    Tam R2 i R3 (te z dołu na zdjęciu) to są chyba 220Ω tak? ich wartość nie wpływa zbyt na działanie układu? bo powinny być chyba 68Ω ?

    Pozdrawiam.

    Post edytowałem.
    [CMS]
  • #14
    CMS
    Administrator of HydePark
    Proszę o export schematu i płytki do PDF'a.
    Z pewnością nie tylko mi się przyda.

    Zauważyłem na jednym ze zdjęć że udało się koledze wyświetlić temperaturę GPU.
    Mi się to nie udało, można wiedzieć jak kolega do tego doszedł ?
  • #15
    User removed account
    User removed account  
  • #16
    manekinen
    Level 29  
    deska202 - stacją lutowniczą za 80zł, ale grunt aby była regulacja temperatury i cienki czysty grot - to juz połowa sukcesu. Duuuużo topnika i cieniutka cyna. Na końcu umyć i voila :) Prawde mówiąc o z pół dnia przy lutowaniu tego ustrojstwa spędziłem.
    maly.borkowo - nie 220Ω, tylko niech kolega zainteresuje się oznaczeniami elementów SMD. 2,2,0 - czyli 22 i liczba zer. W tym przypadku 22Ω... nie miałem 68Ω więc dałem takie, nie próbowałem z większymi ale myśle że 100Ω nie robiło by różnicy.

    CMS - uaktualniłem załącznik, druk, opis, i schemat jest tez w pdf. A co do GPU, wszystko zalezy od wtyczek. Są wtyczki do SpeedFan'a, Everest'a, a nawet do MBM. Niestety dodatkowy program musi ciągle pracować, ale można sobie wyświetlić praktycznie każą informację. Można także dodać FPS - potrzebna jest starsza wersja programu Fraps, jeszcze nie sprawdzałem.
    Wtyczki do LCDsmartie znajduja się tu: http://lcdsmartie.sourceforge.net/smartied.htm
    Polecam także forum LCDsmartie: http://forums.lcdsmartie.org można znaleźc dużo pomysłów i rozwiązań.

    Gusioo Tak, to jest warstwa "unrouted". Eagle tylko przypomina że nie jest połączona masa, ale my wiemy że masa jest połączona gniazdem USB :) Można to ostrzeżenie zaakceptować w "warnings" i nie będzie się pojawiało.
  • #17
    manekinen
    Level 29  
    Znajdę troche czasu to zrobię płytkę pod wyświetlacz z pinami 2*8. I jeszcze wspomnę że oryginalna płytka ma wyprowadzenie E2, czyli do wyświetlaczy z dwoma pinami Enable - moja nie ma - ale pin ten jest aktywny, nie zmieniałem go, w razie czego można się podlutować - jest to ten sam co w oryginale.

    Post edytowałem.
    [CMS]
  • #18
    krzycho123
    Level 31  
    manekinen , jeśli jeszcze mógłbyś dla pewności powiedzieć jak z fuse'ami .
    Oscylator na zew i coś jeszcze ?
  • #19
    manekinen
    Level 29  
    -zewnętrzny rezonator z kondensatorami
    -włączyć CKOPT
    -i dobrze by było jeszcze włączyć brown-out detection, urządzenie korzysta z eepromu, a miałem sytuacje w innych układach że przy zaniku napięcia do eepromu były wpisywane głupoty.
  • #20
    11111olo
    Level 42  
    Zmontowałem to na płytce stykowej i działa. Może ktoś wie jak ustawić w SMARTIE żeby na wyświetlaczu uzyskać takie fajne skaczące słupki z Winampa?
  • #21
    Gonza
    Level 27  
    Trzeba mieć plugin Winamp Spectrum Analyzer, ściągnięty ze strony Smartie. Jeden plik wrzucasz do katalogu Smartie, jeden do katalogu Winampa, odpowiednimi komendami ustawiasz w Smartie rodzaj słupków itp. Przeczytasz o tym pluginie na stronie i wszystko stanie się jasne.
    http://lcdsmartie.sourceforge.net/winampplugin.html

    PS. Przy okazji, gdyby ktoś miał zbędnego PIC18F2550, na mojej stronie skromny opis jak wykonałem "przejściówkę" dla mojego LCD na podstawie opisu ze wspomnianej już tutaj strony forums.bit-tech.net - http://www.gonza.tsi.net.pl.
  • #22
    mlassota
    Level 18  
    Witam
    Wykonałem układ ale nie obyło się bez przygód:

    Okazuje się, że diody Zenera 3,6V są niezbędne - przynajmniej przy mojej płycie głównej - Gigabyte.
    Pierwotnie - podobnie jak autor postu nie montowałem ich - zachęcony stwierdzeniem autora:

    Quote:
    A co do zenerek, przeważnie komputery stacjonarne nie mają problemu z napięciem 5V na liniach danych, jednak warto dać bo przy laptopach będą problemy. Ja akurat takich nie miałem więc wlutuje sobie przy okazji.


    W przypadku braku Zener'ek - Urządzenie ma awarie...

    Pluginy - naprawdę ciekawe sa dostępne na stronie :
    http://lcdsmartie.sourceforge.net/smartied.htm
    Są tam zarówno wtyczki do programów jak i np duże zegary...
    Gratuluję projektu
    Pozdrawiam
    M
  • #23
    manekinen
    Level 29  
    Gratuluje również :) Diody Zenera wlutowałem przy najbliższej okazji, dałem 3V3. Pod czym działają a pod czym nie, nie wiem, wyczytałem o nich w tematach o programatorach na USB. Nie wiem też czy podłączanie bez nich stanowi jakieś zagrożenie dla sterownika w komputerze, ale zdrowe to raczej nie jest. Aha, pola lutownicze pod zenerki są duże, tak żeby przylutować element przewlekany z obciętymi nogami - ciężko jest dostać odpowiednią zenerkę w smd :)

    Do wtyczek już dawałem link, ale jeszcze napisze jak wyświetlić FPS:
    -pobieramy program fraps w wersji 2.7 lub niższej.
    -w LCDSmartie dajemy następującą linię:
    Code:
    $LogFile(c:\Program Files\fraps\FRAPSSEC.TXT,2)

    Z początku może wyświetlać że nie odnaleziono pliku, trzeba włączyć fraps i jakąś aplikację 3D.
  • #24
    mlassota
    Level 18  
    Witam
    Diody Zenera 3,6V w SMD są bez problemu w TME - kupowałem coś jeszcze i dołożyłem :)

    Pojawił się inny problem.
    Niektóre płyty główne - w tym moja (GIGABYTE EP31-DS3L z chipset'em Intel P35) mają permanentnie podpięte zasilanie USB z +5VSB a nie +5V co powoduje niegaśnięcie podświetlenia wyświetlacza po wyłączeniu komputera. Problem rozwiązałem wyprowadzając zasilanie z innego miejsca (zasilanie HDD) i "uwspólniając" (-). Rozwiązanie może nie "profesjonalne" ale moja płyta nie ma możliwości zmiany zasilania z +5VSB na +5V więc to jedyna możliwość.

    Jeszcze jedna zaobserwowana w związku z modyfikacją sytuacja. Podanie napięcia (5V) na linie zasilające nie powoduje załączenia układu - muszą być podane sygnały na linie danych...

    Pozdrawiam i raz jeszcze gratuluję konstrukcji
    M
  • #25
    pgoral
    Level 26  
    W sumie to powinno się sterować tym podświetlaniem z użyciem jakiegoś mosfeta i nie pobierać zbędnego prądu z usb póki się układ tam nie "zamelduje" albo jak już się "wymelduje". W sumie wystarczy Ale jak na jednostkowe rozwiązanie to każde jest dobre jeżeli prowadzi do celu :)

    To pierwsze rozwiązanie to malutka modyfikacja wsadu do kontrolera i wykorzystanie którejś z nóg atmegi do sterowania podświetlania.
  • #26
    krzycho123
    Level 31  
    mlassota , to nie problem w większości płyt w tym pewnie na twojej są zworki ( w okolicach portów obok procka lub gdzie indziej) którymi można ustawić czy +5v ma być podawane na porty czy nie .

    Sprawdź w instrukcji płyty.
  • #27
    mlassota
    Level 18  
    W problem ze zworki nie ma :( ani w Biosie tez nie można tego ustawić... Problem rozważany był w inny temacie na elektroda i... nic W manual'u tez nie ma żadego opisu skąd ma być zasilany USB Jedyne wspomnienie o +5VSB jest przy opcjach budzenia (lan'em bądź dzwonkiem)
    Podam link do manual'a - może ktoś znajdzie - będę wdzięczny - ja szukałem i nie znalazłem - oto link: http://www.gigabyte.pl/download/mb/manual/20806/

    Przepraszam za offtop...
    Pozdrawiam
    M
  • #28
    pgoral
    Level 26  
    Zawsze można poprostu odłączyć oryginalne zasilanie i podłączyć normalne 5V włączane razem z kompem. Przy okazji oszczędzi to nieco prądu jeżeli jeszcze jakieś inne urządzenia pracują na USB. :) Tylko wtedy nie będzie opcji budzenia komputera właśnie z USB.
  • #29
    manekinen
    Level 29  
    pgoral wrote:
    W sumie to powinno się sterować tym podświetlaniem z użyciem jakiegoś mosfeta i nie pobierać zbędnego prądu z usb póki się układ tam nie "zamelduje" albo jak już się "wymelduje".

    No wstyd. Nie przeczytał opisu i kombinuje :) . Przecież podświetlenie JEST zasilanie przez tranzystor, i można nim sterować z programu. Najprościej jest wyłączyć podświetlenie klawiszem "N" przy otwartym oknie lcdsmartie, lub się pobawić w konfiguracji żeby robił to sam. W zakładce "actions" są dwa polecenia "Backlight(0/1)" i "BacklightToggle" którymi można sterować podświetleniem dodając nowy warunek IF. Nie mogę znaleźć informacji jaką zmienną sprawdzać (tzn która przechowuje informacje czy program jest włączony/wyłącza się).
  • #30
    11111olo
    Level 42  
    A o jaką zmienną dokładniej chodzi?