Znajdywacz słów
0 komentarze Opublikowano 25 paź 2012 z etykietką programowanieProgram wydawać się może, że bardziej przydatny byłby krzyżowkowiczowi, niż elektronikowi-hobbyście, ale pozory mylą. Jak wiadomo, na wyświetlaczach 7-segmentowych możemy nie tylko przedstawiać cyfry, ale także coś, co wygląda jak litery. Znalazłem na Wikipedii spis wszystkich możliwych kombinacji segmentów i sporządziłem na tej podstawię listę liter, które można wyświetlić na prostym wyświetlaczu: ABCDEFGHIJLŁNOPRSUYZ. Zaciekawiło mnie ile słów mogę zbudować z tak ograniczonej puli.
Napisałem zatem program, który bada listę istniejących słów pod kątem występowania w niej dozwolonych liter. Użyłem listy PWN-u, pod adresem http://www.sjp.pl/slownik/po.phtml. Ma ona kodowanie windows-1250, ale możemy użyć każdej innej, np. w UTF-8 - ważne, żeby miała po prostu zapisane słowo pod słowem (żadnych przecinków, tabulatorów itp.). Listę wynikowych słów program zapisuje do pliku (bo może ich być bardzo dużo).
Program jest w wersji konsolowej dla Windows. Wymaga .NET 4.0, ale pewnie jest on już zainstalowany w Twoim komputerze.
Z kopytka powstaje toyota i 73 inne słowa. |
Oto lista parametrów, wyciągnięta z pomocy:
findwords -d PlikSłownika -l ListaLiter [-e Kodowanie] [-o PlikWyjściowy]
Gdzie:
-d: ścieżka do pliku słownika, gdzie każde słowo jest w kolejnej linii
-l: lista liter, podana jednym ciągiem
-e: kodowanie słownika (w formie takiej, jak wpisuje się w HTML, np. UTF-8).
Jeśli nie podano, Windows-1250 - typowe kodowanie listy słów PWN-u
-o: ścieżka do pliku wyjściowego.
Jeśli nie podano, zostanie użyta nazwa słowa.txt
np.
findwords -d słowa-win.txt -e UTF-8 -l ABCDEFGHIJLNOPSUYZ
-o "%HOMEDRIVE%%HOMEPATH%\Desktop\7segment.txt"
Program operuje równolegle na wszystkich możliwych procesorach, więc wyszukiwanie słów odbywa się całkiem szybko - zwykle to kilka-kilkanaście sekund. Podsumowując, wynik eksperymentu trochę mnie zawstydził - ja przez minutę potrafiłem wymyślić jedynie kilka słów, które da się ułożyć z tych liter, a komputer znalazł ich kilkadziesiąt tysięcy i to w 8 sekund :D Tak więc aplikację uznaję za przydatną.
Link do programu:
http://www.mediafire.com/?84g1c1dj905jz7b
Link do list słów autorstwa PWN:
http://www.mediafire.com/?d0bq97g7rcbulq3
Impulsowa przetwornica stałoprądowa
10 komentarze Opublikowano 24 paź 2012 z etykietką elektronikaNazwa brzmi dość groźnie, ale to nieskomplikowane urządzenie, którego zadaniem jest przy jak najmniejszych stratach utrzymać stały prąd w obwodzie wyjścia, niezależnie od obciążenia i napięcia wejściowego.
Trochę teorii
Po co to i dlaczego? Otóż do zasilania mocnych diod LED, które można znaleźć w nowoczesnych latarkach. To niezawodne i wydajne źródła światła, ale jest jeden haczyk, bo powinny być zasilane stałym prądem. Do klasycznej latarki wkładamy zwykle 2 paluszki, które dają w miarę stałe napięcie 3V, które zasila żarówkę. Dlaczego w przypadku diod ten patent by się nie sprawdził? Otóż wszystkie diody mają bardzo stromą charakterystykę. Powoli zwiększając napięcie, trafimy w końcu na taki punkt, w którym pobierany prąd gwałtowanie podskoczy. Wystarczy, że nasze bateria będą miały o 0.1V więcej, aby prąd podskoczył o kilkadziesiąt mA, uszkodzi cenną diodę. Dlatego lepiej patrzeć na prąd, niż starać się precyzyjnie wyregulować napięcie, które waha się z egzemplarza na egzemplarz i w dodatku zależy jeszcze od temperatury.Jak to się robi? Na 2 sposoby - liniowo i impulsowo. Regulator (stabilizator) liniowy to złożona z 2-3 elementów prosta konstrukcja, oparta np. układzie LM317, która zachowuje się jak "inteligentny rezystor", zmieniając swą oporność tak, aby w obwodzie płynął stały, ustalony prąd. Dzieje się to poprzez spadek napięcia na wewnętrznym tranzystorze, którego nadmiar wydziela się w postaci ciepła. Zatem przy zasilaniu trzywatowej diody o napięciu przewodzenia ~3V prądem 1A z akumulatora 12V będziemy mieć do wytracenia aż 9W ciepła. Sprawność takiego układu wynosi 3V / 12V = 25%. Bardzo słabo. Ale może przynajmniej na nim coś usmażyć.
Problem sprawności rozwiązują przetwornice impulsowe. W liniowych elementem wykonawczym jest mocny tranzystor, którego stopień otwarcia ustala płynący prąd i to na nim odbywa się spadek napięcia i wytracanie energii w postaci ciepła. W przetwornicy impulsowej też znajdziemy tranzystor, ale pracuje on w inny sposób - w pełni otwiera się i zamyka kilkadziesiąt tys. razy na sekundę, a regulacja napięcia odbywa się poprzez dobór stosunku czasu otwarcia do zamknięcia. Skąd taki dziwny pomysł? Otóż jak wiadomo tranzystor w stanie przewodzenia generuje bardzo mały spadek napięcia (typ. 0.2V, max. 1V), więc grzeje się dużo, dużo mniej, niż gdyby był otwarty do połowy.
Jednak pojawia się tu mały problem - taki układ wytwarzałby prąd zmienny o przebiegu prostokątnym, niezbyt zdatny do zasilania czegokolwiek poza żarówką. Aby temu zaradzić, szeregowo montuje się cewkę, która stanowi magazyn energii w momencie, kiedy tranzystor wykonawczy jest zamknięty. Typowo dodaje się też szybką diodę półprzewodnikową, aby zabezpieczyć obwody przetwornicy przed impulsem napięcia o odwrotnej polaryzacji, pojawiającym się w momencie wyłączenia cewki, a także kondensator, dodatkowo wygładzający napięcie wyjściowe. Cały proces włączania i wyłączania cewki odbywa się kilkadziesiąt tys. razy na sekundę, więc efekt zlewa się w stabilny prąd stały, który może zasilać nie tylko diody, ale nawet wrażliwe mikrokontrolery.
Cewka dzięki swojej zdolności magazynowania energii odciąża przetwornicę (nie musi ona wtedy pobierać prądu), przez co w idealnym (ale niestety nierealnym) układzie dochodzi do takiej konwersji, że Napięcie wejściowe × prąd wejściowy = napięcie wyjściowe × prąd wyjściowy. Tak więc żądna energia nie marnuje się w postaci ciepła. W praktyce jest to bardzo mała ilość - 10-20% na dobrze zaprojektowanej płytce.
CC SMPS, czyli constant current switched-mode power supply
Zaprezentowany układ oparty jest na kostce LM2576. To wyjątkowo tania (~5zł), prosta w złożeniu (5 elementów) i efektywna (η typ. 80%) przetwornica w przyjaznej obudowie TO-220.Są dwie wersje układu - regulowana i z predefiniowanym napięciem. Nas interesuje ta pierwsza, gdyż posiada pin FEEDBACK, pełniący kluczową rolę w stabilizacji napięcia wyjściowego. Niestety ani nota katalogowa, ani wujek Google nie opisują sposobu stabilizacji prądu. Okazuje się to jednak całkiem proste, tylko trzeba odejść od typowej aplikacji LM2576.
Ale najpierw kilka zdań na temat roli pinu FEEDBACK. Jest to wejście służące przetwornicy do pomiaru napięcia wyjściowego, aby mogła na jego podstawie skorygować swoje parametry pracy (głównie stosunek czasu włączenia do wyłączenia). Dlaczego ten pin jest wyprowadzony, a pomiar nie odbywa się wewnątrz układu scalonego, jak np. w stabilizatorze liniowym 7805? Ano po to, żebyśmy mogli sobie pokombinować :) Przetwornica oczekuje na tym pinie 1.23V i zrobi wszystko co w jej mocy, żeby tyle tam było. Nie na wyjściu, tylko na pinie FEEDBACK. Gdybyśmy chcieli stabilizować napięcie, wstawilibyśmy dzielnik, który dostarczałbym jakąś część napięcia wyjściowego do pinu FEEDBACK, np. 10%, przez co otrzymalibyśmy stabilne 12.3V. A jak stabilizować prąd? Wymyśliłem dwie wersje - prostą i optymalną.
Policzmy teraz jak ustalić prąd 700mA. Przy takim prądzie na rezystorze 0.1Ω mielibyśmy spadek 0.07V. Jakie musi być wzmocnienie, aby wyszło z tego 1.23V? Mniej więcej 1.23÷0.07=17.6. Zatem aby uzyskać prąd 0.7A należy dobrać wzmocnienie 17.6x i rezystor pomiarowy 0.1Ω. A co ze stratami? 0.7A×0.1Ω=0.07W. To tak śmiesznie niska wartość, że w porównaniu do 3W pobieranych przez diodę, jest kompletnie niewyczuwalna :) Największe straty generuje przetwornica (dla czegoś musi kosztować tylko te 5zł :)) - średnio 1W na 1A p W wyniku pomiarów obliczyłem sprawność tej konstrukcji na η≈75%, przy czym rośnie ona wraz z pobieranym prądem.
Ta wersja daje nam też możliwość płynnej regulacji prądu. Można zauważyć, że potencjometr zapewnia bardzo nieliniowe wzmocnienie, ale przez to prąd jest dużo bardziej liniowy (takie tam skomplikowane wzory i coś tam pewnie w mianowniku :P). Dla R2=100kΩ i potencjometru 50kΩ uzyskujemy zakres ~0-1.25A, czyli całkiem w sam raz do zasilania diód mocy.
Jeśli chcemy iść w wyższe prądy, skorzystajmy z wzoru I=(1.23/Rsc)/(1+R2/R1). Dla ciekawskich: dla układu bez wzmacniacza wzór to tylko I=1.23/Rsc, bo pomiar odbywa się bezpośrednio na rezystorze Rsc, więc korzystamy z czystego prawa Ohma. W wersji ze wzmacniaczem wzmacnia on napięcie na Rsc zgodnie ze wzorem na wzm. nieodwracający, czyli A=(1+R2/R1) razy, zatem "pomaga" przetwornicy A-krotnie, stąd dzielenie przez tą wartość. W praktyce nie jest to super dokładny wzór, bo w grę jeszcze wchodzi napięcie offsetowe i inne niedoskonałości wzm. op., ale do orientacyjnego ustalenia zakresu wystarcza, a dokładnej regulacji możemy dokonać potencjometrem.
Mała uwaga odnośnie źródeł prądowych: nigdy, przenigdy nie podłączajmy do nich diod kiedy są włączone. Bez obciążenia na wyjściu każdego źródła prądowego pojawia się maksymalne możliwe napięcie. To nie problem, dopóki nie ma kondensatora w obwodzie wyjścia, ponieważ ładuje się on wtedy tym maksymalnym napięciem i oddaje je momentalnie pierwszej podłączonej rzeczy, powodując przepływ bardzo dużego prądu na ułamek sekundy. To wystarcza, aby spalić cenny element. Niestety kondensator wyjściowy jest niezbędny dla zagwarantowania stabilnej pracy przetwornicy i nie można go pominąć. Zatem zawsze pamiętajmy, aby najpierw podłączać diodę, a dopiero potem włączać zasilanie tego typu przetwornicy.
Domofon otwierany kodem Morse'a
3 komentarze Opublikowano z etykietką elektronikaModuł wejściowy
Moduł kontrolny
Moduł wyjściowy
Zasilacz stabilizowany im. Rurka z TVN-u
4 komentarze Opublikowano 14 paź 2012 z etykietką elektronikaTen zasilacz jest wersją deluxe mojego poprzedniego, sprawdzonego modelu, który służył mi 2 lata. Konstrukcja nie jest specjalnie wyszukana, ale dzięki temu łatwo wszystko naprawić, co jest ważne w zasilaczu laboratoryjnym. Urządzenie posiada 2 sekcje - jedną regulowaną, a drugą ze stałym napięciem 5V. Obie wyposażone są w ogranicznik prądowy, który w przypadku sekcji regulowanej jest wielozakresowy, z dodatkowymi zakresami dla różnych diod LED. Regulacja napięcia odbywa się w płynny sposób, z możliwością wyboru konkretnych "typowych" lub "akumulatorowych" napięć, bo zasilacz może służyć też jako uniwersalna ładowarka. Można ładować 1 celę NiMH, 1 lub 4 cele Li-ion lub 12-woltowy akumulator ołowiowy.
- Precyzyjnie dobrane napięcia predefiniowane: 1.5V, 3.3V, 4.2V, 5V, 9V, 12V, 14.4V, 16.8V
- Możliwość dokładnego ustawienia dowolnego napięcia za pomocą potencjometrów
- Ogranicznik prądowy 10mA, 20mA, 50mA, 100mA, 250mA, 350mA, 500mA, 700mA, 1A z przydatnymi dla LED-ów wartościami
- Dodatkowe wyjście 5V z możliwością ograniczenia prądowego do 20mA
- Podświetlane przyrządy: woltomierz i dwuzakresowy amperomierz.
Schemat ideowy |
W zasilaczu wykorzystano popularne stabilizatory liniowe LM317 w funkcji regulatora prądu i regulatora napięcia. Po wyprostowaniu przez prostownik mostkowy, prąd przepływa przez rezystory pomiarowe RSC, które w ilości 1 lub 2 można wybrać za pomocą przełącznika wyboru zakresu. Napięcie odkładające się na nich, ograniczone do ~0.5V przez dwie diody krzemowe, zasila miliwoltomierz pełniący funkcję amperomierza.
Dalej znajduje się pierwszy stabilizator w konfiguracji ogranicznika prądowego, gdzie jego rezystor został zastąpiony przełącznikiem obrotowym S1 i całą gamą rezystorów, dzięki czemu można wybierać z predefiniowanych wartości ograniczenia. Jeśli zależy nam na jak największym prądzie, można obejść ogranicznik za pomocą przełącznika S2.
Za ogranicznikiem naturalnie znajdziemy regulator napięcia w typowej konfiguracji. Na schemacie narysowano 1 potencjometr wieloobrotowy, ale równie dobrze sprawdzi się kombinacja szeregowa dwóch potencjometrów o wartościach będących w proporcji 1:10.
Kondensator wyjściowy ma niewielką wartość aby chronić podłączane elementy, gdy polegamy na zabezpieczeniu prądowym. Scenariusz zakłada napięcie ustawione na 25V i ogranicznik na 10mA. W momencie podłączenia obciążenia, np. diody LED, popłynąłby przez nią chwilowo duży prąd z naładowanego do 25V kondensatora. Dlatego wartość kondensatora wyjściowego jest taka, by wyeliminować wzbudzanie się stabilizatora i nic ponadto.
Stałe napięcie 5V powstaje dzięki stabilizatorowi 7805. Tutaj również na wyjściu znajdziemy mały kondensator, ponieważ obwód zawiera ograniczenie prądowe. Zbudowane jest ono na miniaturowym LM317L w funkcji ogranicznika prądowego w typowej konfiguracji, ustawionego na 20mA. Można go obejść przełącznikiem S3 i wtedy ogranicza nas już jedynie wydajność układu 7805. Niestety przy jednym uzwojeniu transformatora zasilającego jest ona niska, ponieważ stabilizator musi średnio wytracić w postaci ciepła około 25V różnicy, ale na szczęście przy zasilaniu układów logicznych nie odczuwa się tego.
W środku... Sporo kabli. W sumie nie ma czym się chwalić :P |
A co do nazwy... :) Ogólnie mówiąc, budowa tego zasilacza była istną drogą przez ciernie. Podczas jego budowy naprzeklinałem się przez niego tak, jak Durczok naprzeklinał się przez Rurka :P
Lampka RGB
3 komentarze Opublikowano 4 paź 2012 z etykietką elektronikaNajprostszy trik na poprawienie efektu "wow", jaki sprawia układ, to dodanie do niego czegoś świecącego. Opisywany układ robi 3-krotnie większe wrażenie, ponieważ używa trójkolorowych diod RGB :) Wykorzystuje je bez żadnego konkretnego celu, po prostu aby sobie poświecić na płynnie zmieniający się kolor.
Lampka oparta jest na mikrokontrolerze ATTiny13, taktowanym wewnętrznym zegarem 9.6Mhz. Program, napisany w C, w pętli zapala kolejne składowe kolory (czerwony, zielony i niebieski) na odpowiednio długi czas, który przekłada się na ich średnią jasność. Takie rozwiązane w przeciwieństwie do typowego PWM zapewnia wyższą jasność, bo w dowolnym momencie zawsze pali się w pełni jeden kolor R/G/B - nie ma momentów, kiedy diody są ciemne. Dzięki temu pobór prądu jest stały, a zakłócenia mniejsze.
Proporcje czasów świecenia poszczególnych kolorów ustalane są przez funkcję uruchamianą co pewien czas w przerwaniu timera. Timer dodatkowo sprawdza stan przycisku zatrzymującego zmianę koloru oraz odczytuje przez ADC stan potencjometru regulacji tempa i na jego podstawie kalibruje swoją częstotliwość. Jak widać to sporo operacji, ale z uwagi, że wykonują się one bardzo rzadko w porównaniu do operacji z pętli głównej (czyli przełączania kolorów), nie zakłócają one płynności animacji.
Schemat to nic odkrywczego - mikroprocesor steruje trzema tranzystorami kluczującymi równolegle połączone diody. Daje to średni stały pobór prądu ~80mA. Rezystor R8 może nie być wymagany, ale z dziwnych przyczyn nie mogłem programowo aktywować pull-upa w mikroprocesorze.
Archiwum bloga
Kategorie
- elektronika (5)
- kusza (2)
- mechanika (2)
- programowanie (3)
W planach
- Herbatron 2
- Programowalny wyzwalacz do lamp błyskowych
- Zegar/kalendarz/termometr na lampie VFD
- Transmiter kodów RC5 sterowany klaśnięciami