Witam wszystkich.
Chciałbym przedstawić wykonanie bardzo prostego i fajnego projektu.
Zafascynowany wyświetlaczami widmowymi postanowiłem nauczyć się od podstaw zasad ich działania. Generalnie wykorzystują one zasadę bezwładności naszego oka. Dla przykładu gdy patrzymy na koło, które wykonuje ok 30 obrotów na sekundę możemy odnieść wrażenie, że stoi on w miejscu. Na tej samej zasadzie działa multipleksowanie wyświetlaczy 7-segmentowych, które są już zapewne większości znane.
A co gdyby na 7 diodkach wyświetlić napis i odpowiednio szybko je przesunąć – ujrzymy ten napis “wiszący” w powietrzu. Niestety podczas testów okazało się, że odczytanie wyrazów dłuższych niż 5 znaków jest już problematyczne, ale na filmikach/zdjęciach o długim czasie naświetlania możemy uzyskać ciekawe efekty.
Do zbudowania projektu potrzeba:
– mikrokontroler ATtiny2313
– 7 diodek led
– 7 rezystorów 330Ohm
– 2 przyciski monostabilne i 1 przełącznik ON/OFF
– kondensatorek 22uF i 100nF
– baterie zegarkową wraz ze złączem
– płytkę prototypową
– obudowę do tego wszystkiego – ja użyłem Z-75
Elementy nie były jakoś specjalnie dobierane – użyłem tego co walało się w szafie.
Wykonanie:
Na osobnej płytce zamontowałem diody wraz z rezystorami oraz wyprowadziłem goldpiny do podłączenia do drugiej płytki z mikrokontrolerem na tzw. “kanapkę”.
Teraz trzeba wywiercić dziury na diody w obudowie. Możemy przy odmierzaniu posłużyc się płytką prototypową – przykładamy ją na górę i wiercimy wiertłem 1mm w odpowiednich miejscach, następnie poprawiamy wiertłem 5mm.
Przymierzamy, czy płytka z diodami pasuje. ja dodatkowo zabezpieczyłem wszystko klejem na gorąco:
Widać tu też zamocowanie przycisku uruchamiającego wyświetlenie napisu(ten na górze) oraz do zmiany napisu(ten na przodzie).
Następnie na drugiej płytce lutujemy wszystko według schematu:
Oczywiście połączenia od mikrokontrolera do diod są wykonane za pomocą wcześniej wspomnianych goldpinów na schemacie je pominąłem dla większej czytelności.
U mnie wygląda to tak (po zamontowaniu wszystkich przycisków):
Na dole znajduje się miejsce na przełącznik ON/OFF.
Gotowe urządzenie wygląda tak:
Obsługa:
Po uruchomieniu mamy domyślnie wybrany pierwszy napis ( w programie jest miejsce na 4, ale można to sobie zmienić według potrzeb). Przyciskiem na przodzie zmieniamy wybrany napis – zapali się wtedy na sekundę dioda z jego numerem). Następnie uruchamiamy wyświetlenie napisu przyciskiem na górze. Gdy wciśniemy go bez ruszania zobaczymy po prostu, że diody migają z różną mocą. Lecz, gdy będziemy nim machać możemy uzyskać takie efekty:
Natomiast po małych zmianach w programie można np napis wyświetlać w pętli, albo w jakiejś kolejności.
Tutaj przykłady tego przy włączonym słabym świetle:
Program
Całość jest napisana w języku C w środowisku Eclipse Luna. Attiny jest przestawione na taktowanie 4MHz.
Nie będę omawiał kodu, gdyż jest on banalnie prosty i nawet początkujący sobie z nim poradzą.
Tutaj można go pobrać: widmowy1
Może ktoś znający się lepiej na fotografii/filmowaniu znajdzie dla niego jakieś fajne zastosowanie w swoich pracach.
Na jakie jest to zasilanie? 3.3V czy 5V?
Na schemacie jest napisane 3.3V a rezytory do czerwonych diód są policzone jak na 5V?
Zasilanie jest 3,3. Większa wartość rezystorów jest dlatego, aby układ dłużej działał na baterii. Wcześniej sprawdzałem dla mniejszych wartości oporu i efekt się nie różnił zbytnio.
A jednak sporo ludzi tutaj to mocno początkujący więc i kod wypadało by omówić bo to chyba ciekawsza strona tego projektu…
ooo to, prosimy o omówienie programu! :D
dobrze, więc niedługo dodam krótki, ale dokładny opis co i jak :)
Ciekawe kiedy…
Podobny wyświetlacz był użyty w “zegarku binarno-widomowym” w listopadowym EdW (11/2014). W porównaniu do programu tamtego zegarka (Basic AVR) Twój kod jest dość przejrzysty. Pomijając obsługę przycisków, jest tam tylko pętla wyświetlająca kolejne pasy zadeklarowanych liter co określony czas. Nadal jednak nie mogę pojąc skąd taki wyświetlacz wie w którym momencie rozpocząć linie tekstu. Nie ma tu przecież żadnej synchronizacji.
między liniami tekstu nie ma żadnej synchronizacji, trzeba to robić z wyczuciem :)
Ten reset wiszący w powietrzu to zły pomysł.
Reszta ok ;)
Fajny projekt, ale chciałbym wgrać to do płytki arduino w jaki sposób mogę to zrobić ?