Elektroniczna wizytówka 85 LED

wi8Elektroniczna wizytówka/wyświetlacz. W zależności od przyciśniętego przycisku wyświetla przesuwający się tekst za pomocą 85 multipleksowanych diod LED. Może służyć także jako zwykły wyświetlacz do dyskretnego przekazywania informacji, a ponieważ posiada niewielkie wymiary (24mm x 85mm), można go zabrać wszędzie. Dzięki zastosowaniu mikrokontrolera ATmega88V, pobór prądu i wymagane napięcie pracy zmniejszono do minimum. uProcesor ten pracuje już od 1.8V, a w trybie uśpienia pobiera jedynie 0.1uA (całe urządzenie ok 1.5uA). Diody LED pracują od 2V, więc w przypadku rozładowania baterii poniżej nominalnego poziomu 3V urządzenie może jeszcze bardzo długo pracować. Po włożeniu baterii zostaje wyświetlony komunikat powitalny, i stan baterii (pomiar do 3.44V z rozdzielczością i dokładnością 0.01V).

Programowanie napisów odbywa się za pomocą wbudowanego edytora, a same napisy przechowywane są w nieulotnej pamięci eeprom mikrokontrolera. 512B pamięć pozwala na zapamiętanie 4 napisów, 127 znaków każdy (128-a komórka użyta jest do przechowania znaku specjalnego, oznaczającego koniec napisu). Urządzenie posiada także kilka opcji, można je zmieniać poprzez krótkie przytrzymanie jednego z przycisków:

1 – zmiana szybkości przesuwającego się tekstu (szybciej/wolniej)
2 – umożliwia wyświetlanie tekstu w negatywie (normalnie/negatyw)
3 – zamiana każdej małej litery na wielką (zwyczajnie, małe i wielkie/wszystkie wielkie)
4 – edytor napisów, po wejściu ukaże się komunikat z informacją aby wybrać napis do edycji i wybieramy przycisk którego tekst chcemy edytować. Obsługa: przycisk 1 to poprzedni znak, przycisk 2 to następny znak, przycisk 3 to przeskoczenie do edycji kolejnego znaku. Nie trzeba wykorzystywać całej 127 znakowej pamięci, aby zakończyć edycje można nacisnąć przycisk 4 co spowoduje wpisanie końcowego znaku specjalnego i przejście w normalny tryb pracy. Opcje celowo nie są zapisywane w pamięci, po usunięciu baterii przybierają ustawienia domyślne.

Podczas bezczynności urządzenie śpi, po przyciśnięciu któregokolwiek z przycisków zacznie wyświetlać odpowiedni napis. Przyciśnięcie innego przycisku podczas wyświetlania spowoduje natychmiastowe, płynne rozpoczęcie wyświetlania innego odpowiedniego napisu. Przyciśnięcie tego samego przycisku spowoduje zatrzymanie się przesuwania tekstu (pauza) do czasu naciśnięcia któregokolwiek z przycisków. Po zakończeniu wyświetlania urządzenie przechodzi w stan bezczynności.

Ograniczenie prądu dla diod zostało wykonane programowo, po każdym wyjściu ze stanu bezczynności dokonywany jest pomiar napięcia baterii, i przez cały czas pracy urządzenie ogranicza prąd diod odpowiednio regulując wypełnienie, czyli czas trwania impulsów zaświecających diody (programowy PWM).

Sam wyświetlacz to 85 diod led w obudowach 0805. 5 rzędów po 17 diod. Wyświetlanie odbywa się poprzez multipleksowanie, to znaczy że w jednej chwili świeci się tylko jeden rząd odpowiednio zapalonych diod, przełączanie rzędów następuje tak szybko że migotanie nie jest widoczne dla ludzkiego oka ani żadnej zwykłej kamery cyfrowej.

Inne: Wymiary to 24mm x 85mm x 5mm (w najgrubszym miejscu). Trzy ścieżki po stronie diod należy wykonać cieniutkim drutem nawojowym (izolowanego lakierem), poprowadzenie ich ścieżkami/przelotkami nie było możliwe. Uchwyt baterii wykonałem z innego uchwytu mniejszej baterii, można go oczywiście zakupić (trudno dostępny w Polsce) lub wykonać z blaszki. Złącza programowania nie ma, uznałem że będzie ono zbędne. Linie mosi miso i sck to trzy pierwsze przelotki od strony baterii, linia reset wyprowadzona w postaci “testpointu”. Same przelotki wykonane cieniutkim drucikiem, otwory wiercone wiertłem 0.6mm (użycie większego niż 0.7mm zniszczy pady przelotek) i zalutowane po obydwu stronach. Większość przelotek ukryta jest pod padami diód i przycisków. Sama płytka zaprojektowana w darmowej wersji eagle, wykonana termotransferem, cynowana chemicznie (nie polecam). Program pisany w bascom’ie, kod wynikowy zajmuje około 6.2kB (z czego większość to sama obsługa przycisków i edytor, cała działająca reszta bez tego zajmuje tylko niecałe 3kB). Fusebity: wewnętrzny generator 8MHz. należy zadbać o to aby watchdog oraz brown-out detection były wyłączone, pobierają cenny prąd podczas bezczynności.

Dodałem kod źródłowy, wymaga jeszcze kilku poprawek.

POBIERZ – pliki projektu eagle 5.4.0, wsad HEX, BIN, źródło BAS, schemat i płytka w PDF.
.


Electronic business card / scroll display. 85 SMD 0805 led’s matrix display, Atmega88V uController, and couple of other smd parts. Dimensions are 24mm x 85mm, supplied from 3V small coin battery. It will work for long time, even on discharged battery (2V). After button is pressed, device is waking-up from power-down mode and start scrolling text equivalent to pressed button. 4 text’s are saved in eeprom memory, each one can be 127 character length (128 cell is used for holding special end-char).

There are couple of options, you can access them by holding buttons:
1 – scroll speed (slower/faster)
2 – text in negative/positive
3 – change all displayed small letters to big ones
4 – text editor, after entering press one of buttons to select text to edit. Then, B1 is for previous character, B2 is for next character, B3 is for skip to next cell, after pressing that button previous character is saved. There is no need to use all 127 memory, press B4 to end edit, it will save last character, put special end-char, and go back to normal mode.

In normal mode, during scrolling text, pressing the same button will pause scroll and pressing again release pause. Pressing other button will cause immediately smooth skip to new text. After all text has been scrolled, device go to power-down mode and charge only 1uA from battery. When displaying, it measures battery voltage and calculates pwm for software leds current limiting, accepted voltage from 2V to 3.5V. Above that, increased current may damage leds. Below that, device can work even from 1.8V (used 2V red leds). On top side of pcb you must connect 3 led rows with thin winding wire. Fusebits: Internal 8MHz generator, and make sure to disable watchdog and brown-out which suck about 20uA in power-down.

Source code included, it need some improvements.

DOWNLOAD – eagle 5.4.0 project files, firmware HEX, BIN, source BAS, PDF schematics and pcb.
.

Get the Flash Player to see this content.

(it is hardly to record something like that with a cheap camera, focus is not set properly for better wiev)
(music: good polish d’n'b, “fizyk – gods on acid”)

Comments 13 komentarzy

  1. Mariusz :

    Dlaczego nie polecasz cynowania chemicznego, sam wykonujesz odpowidnie preparaty?

  2. manekinen :

    Zakup tanich preparatów do cynowania, bazujących na tiomoczniku, to pieniądze wyrzucone w błoto. Po idealnym przygotowaniu płytki i postępowaniu ściśle wg instrukcji, owszem, otrzymamy ładną powłokę. Jest jednak ona nie odporna na temperaturę i topniki, przy lutowaniu po prostu traci swoje właściwości od wysokiej temperatury, i już nie chroni miedzi przed śniedzeniem tak jak powinna. Nie ma to jak tradycyjne pocynowanie :)

  3. Tomek :

    Mistrzowskie! Szczerze mówiąc nie wyobrażam sobie praktycznego zastosowania ale jako zabawka doskonałe, no i ten edytor :) Lutowanie tych wszystkich ledów chyba nie było zbyt ekscytujące :D

  4. manekinen :

    Lutowanie tego ręcznie było męczarnią, tylko 5 pierwszych diod dało mi jakąś satysfakcje a potem… chociaż jak pomyśle jak bym miał robić to na diodach przewlekanych to… ehh

  5. Mate9 :

    Hey dude, great work! I saw this on tehnikservice.net… you know, its much better than that other business card, you have this text editor and stuff. Thanks for the sources, i try to make my own, BIG greetings!

    Oh and one question, how it looks in sunny day?

  6. manekinen :

    Hi! You mean this one? -> http://www.youtube.com/watch?v=CxioR15PrL8 i don’t know if it has a text editor… but is much better designed and has nice casing with graphics :)

    And for the question, it looks very poorly, best results are after the sunset or in good shadow. You know, this is supplied just from one button battery…

  7. Maksym :

    Gratuluje pomysłu!!! Naprawdę świetny projekt!!
    Jakie są parametry diod, których użyłeś (kąt świecenia, jasność)??

  8. Anton :

    Przepraszam, można użyć i Mega8 i Mega88? Firmware jeden dla obu kontrolerów?
    tłumaczone z Google

  9. Anton :

    Can smbdy port into mega8 (mega8ai) like in shematic version?
    Czy ktoś port w mega8 (mega8ai) jak w shematic wersji?
    Может кто-нибудь портировать на mega8 (mega8ai) ?

  10. Anton :

    może być bardziej parrallelno z portirogvaniem w języku angielskim, faktem jest, że chcę przetłumaczyć na język rosyjski(z Bascom), prawdopodobnie może być używany i port, ale ja jestem lepszy reasekuratorów, jako początkujący
    Lubię, dzięki za pracę!
    Tłumacz z Google

  11. Anton :

    Przykro mi, ale … można przetłumaczyć na angielski swoje uwagi w tej części kodu, gdzie utworzyć tabelę znaków?
    I’m sorry, but can you translate into English your comments in the part of source code where you create a table of characters?

Napisz coś / Write something :)

Możesz używać: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Proszę pozostawić te dwa pola tak jak są:

>>Dodaj obrazek / Add image<<