Spisu treści:

Programowalna dioda LED: 6 kroków (ze zdjęciami)
Programowalna dioda LED: 6 kroków (ze zdjęciami)

Wideo: Programowalna dioda LED: 6 kroków (ze zdjęciami)

Wideo: Programowalna dioda LED: 6 kroków (ze zdjęciami)
Wideo: Jak poprawić jakość Twoich filmów na YT? 2024, Listopad
Anonim
Programowalna dioda LED
Programowalna dioda LED

Zainspirowany różnymi diodami LED, migającymi diodami LED i podobnymi instrukcjami, chciałem zrobić moją wersję diody LED sterowanej przez mikrokontroler. Pomysł polega na tym, aby przeprogramować sekwencję migania diody LED. To przeprogramowanie można wykonać za pomocą światła i cienia, np. możesz użyć swojej latarki. To jest moja pierwsza instrukcja, wszelkie komentarze i poprawki są mile widziane. Aktualizacja 12.08.2008: W sklepie Tinker Store jest już dostępny zestaw. Oto film z przeprogramowania. Przepraszamy za jakość.

Krok 1: Jak to działa

Jako wyjście używana jest dioda LED. Jako wejście użyłem LDR, rezystora zależnego od światła. Ten LDR zmienia swój rezystor, gdy otrzymuje mniej lub więcej światła. Rezystor jest następnie używany jako wejście analogowe do mikroprocesora ADC (przetwornik analogowo-cyfrowy).

Sterownik posiada dwa tryby pracy, jeden do nagrywania sekwencji, drugi do odtwarzania nagranej sekwencji. Gdy kontroler w ciągu pół sekundy zauważy dwie zmiany jasności (ciemna, jasna, ciemna lub na odwrót), przechodzi w tryb nagrywania. W trybie nagrywania wejście LDR jest mierzone wiele razy na sekundę i przechowywane w chipie. W przypadku wyczerpania pamięci sterownik powraca do trybu odtwarzania i rozpoczyna odtwarzanie nagranej sekwencji. Ponieważ pamięć tego małego kontrolera jest bardzo ograniczona, 64 bajty (tak, bajty!), kontroler jest w stanie zapisać 400 bitów. To wystarcza na 10 sekund przy 40 próbkach na sekundę.

Krok 2: Materiały i narzędzia

Materiały i narzędzia
Materiały i narzędzia
Materiały i narzędzia
Materiały i narzędzia

Materiały- 2 x rezystor 1K- 1 x LDR (Light Dependent Resistor), m.in. M9960- 1 x niskoprądowa dioda LED, 1.7V, 2ma- 1 x Atmel ATtiny13v, 1KB flash RAM, 64 bajty RAM, 64 bajty EEPROM, [email protected] 1 x CR2032, 3V, 220mAhNarzędzia- lutownica - przewód lutowniczy - płytka stykowa - programator AVR - zasilacz 5V - multimetr Oprogramowanie - Eclipse - wtyczka CDT - WinAVRC Koszt bez narzędzi powinien wynosić poniżej 5$. Użyłem ATtiny13v, ponieważ ta wersja tej rodziny kontrolerów jest w stanie pracować przy 1,8V. Umożliwia to prowadzenie obwodu z bardzo małą baterią. Aby działał przez bardzo długi czas, zdecydowałem się na zastosowanie niskoprądowej diody LED, która osiąga pełną jasność już przy 2mA.

Krok 3: Schematy

Schematy
Schematy

Kilka uwag na temat schematu. Wejście resetujące nie jest podłączone. To nie jest najlepsza praktyka. Lepiej byłoby użyć rezystora 10K jako podciągania. Ale działa dobrze dla mnie bez i oszczędza rezystor. Aby obwód był tak prosty, jak to możliwe, użyłem wewnętrznego oscylatora. Oznacza to, że oszczędzamy kryształ i dwa małe kondensatory. Wewnętrzny oscylator pozwala sterownikowi pracować z częstotliwością 1.2MHz, co jest więcej niż wystarczającą prędkością dla naszych celów. Jeśli zdecydujesz się na użycie innego zasilacza niż 5V lub na użycie innych diod LED, musisz obliczyć rezystor R1. Wzór jest następujący: R = (Zasilanie V - LED V) / 0,002A = 1650 Ohm (Zasilanie = 5V, LED V = 1,7V). Używając dwóch niskoprądowych diod LED zamiast jednej, wzór wygląda tak: R = (Zasilanie V - 2 * LED V) / 0,002A = 800 Ohm. Należy pamiętać, że w przypadku wyboru innego typu diody LED należy skorygować obliczenia. Wartość rezystora R2 zależy od zastosowanego LDR. 1KOhm działa dla mnie. Możesz użyć potencjometru, aby znaleźć najlepszą wartość. Cicuit powinien być w stanie wykryć zmiany światła w normalnym świetle dziennym. Aby oszczędzać energię, PB3 jest ustawiony na wysoki tylko wtedy, gdy wykonywany jest pomiar. Aktualizacja: schemat wprowadzał w błąd. Poniżej znajduje się poprawna wersja. Dzięki, dave_gadat.

Krok 4: Montaż na płytce prototypowej

Montaż na płytce prototypowej
Montaż na płytce prototypowej
Montaż na płytce prototypowej
Montaż na płytce prototypowej

Jeśli lubisz testować swój obwód, płytka prototypowa jest bardzo przydatna. Możesz zmontować wszystkie części bez konieczności lutowania czegokolwiek.

Krok 5: Zaprogramuj obwód

Zaprogramuj obwód
Zaprogramuj obwód
Zaprogramuj obwód
Zaprogramuj obwód

Sterownik można zaprogramować w różnych językach. Najczęściej używane są Assembler, Basic i C. Użyłem C, ponieważ najlepiej pasuje do moich potrzeb. Byłem przyzwyczajony do C dziesięć lat temu i udało mi się wskrzesić część wiedzy (no, tylko trochę…). Do napisania programu polecam Eclipse z wtyczką CDT. Pobierz eclipse tutaj https://www.eclipse.org/ i wtyczkę tutaj https://www.eclipse.org/cdt/. Do kompilacji języka C na mikrokontrolery AVR potrzebny będzie kompilator skrośny. Na szczęście istnieje port słynnego GCC. Nazywa się WinAVR i można go znaleźć tutaj https://winavr.sourceforge.net/. Bardzo dobry tutorial jak programować kontrolery AVR za pomocą WinAVR jest tutaj https://www.mikrocontroller.net/articles/AVR-GCC- Instruktaż. Przepraszamy, jest w języku niemieckim, ale możesz znaleźć tysiące stron z samouczkami na ten temat w Twoim języku, jeśli ich szukasz. Po skompilowaniu źródła musisz przesłać plik hex do kontrolera. Można to zrobić podłączając komputer do obwodu za pomocą ISP (w programatorze systemowym) lub korzystając z dedykowanych programistów. Użyłem dedykowanego programatora, ponieważ nieco ułatwia obwód, oszczędzając kilka przewodów i wtyczkę. Wadą jest to, że za każdym razem, gdy chcesz zaktualizować oprogramowanie, musisz zamieniać kontroler między układem a programatorem. Mój programista pochodzi z https://www.myavr.de/ i używa USB do łączenia się z moim notebookiem. Wokół jest wiele innych i możesz go nawet zbudować sam. Do samego transferu użyłem programu o nazwie avrdude, który jest częścią dystrybucji WinAVR. Przykładowa linia poleceń może wyglądać tak:

avrdude -F -p t13 -c avr910 -P com4 -U flash:w:flickled.hex:iW załączeniu możesz pobrać źródło i skompilowany plik szesnastkowy.

Krok 6: Lutowanie

Lutowanie
Lutowanie

Jeśli twój obwód działa na płytce stykowej, możesz go przylutować.

Można to zrobić na płytce drukowanej (płyta drukowana), na płytce prototypowej lub nawet bez płytki. Postanowiłem to zrobić bez, ponieważ obwód składa się tylko z kilku elementów. Jeśli nie jesteś zaznajomiony z lutowaniem, polecam najpierw poszukać samouczka lutowania. Moje umiejętności lutowania są trochę zardzewiałe, ale myślę, że rozumiesz. Mam nadzieję, że ci się podobało. Alex

Zalecana: