Spisu treści:
- Krok 1: Jak to działa
- Krok 2: Materiały i narzędzia
- Krok 3: Schematy
- Krok 4: Montaż na płytce prototypowej
- Krok 5: Zaprogramuj obwód
- Krok 6: Lutowanie
Wideo: Programowalna dioda LED: 6 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:33
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- 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
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
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
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
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:
Programowalna klawiatura: 5 kroków (ze zdjęciami)
Programowalna klawiatura: W tym projekcie pokażę, jak zrobić stosunkowo prostą i niedrogą programowalną klawiaturę do mapowania najczęściej używanych skrótów klawiaturowych, aplikacji i nie tylko. Ta klawiatura jest wykrywana jako klawiatura we wszystkich głównych systemach operacyjnych, nie są potrzebne żadne dodatkowe sterowniki
PixelPad Indian: programowalna plakietka elektroniczna: 11 kroków
PixelPad Indian: Programmable Electronic Badge: PixelPad to elektroniczna plakietka programistyczna oparta na mikrokontrolerze ATmega32U4 i ma wiele wbudowanych funkcji. Sztuka PCB jest inspirowana kulturą, sztuką i rysunkami Indii. Korzystając z PixelPad, możesz używać go jako urządzenia do noszenia
Programowalna bluza z kapturem Stranger Things: 9 kroków (ze zdjęciami)
Programowalna bluza z kapturem Stranger Things: Być może nigdy nie będziesz musiał spędzać czasu w koszmarnym świecie potworów, ale czasami po prostu chcesz nosić koszulkę, która mówi, że możesz tam mieszkać, jeśli chcesz. Ponieważ taka koszula nie istnieje na wolnym rynku, postanowiliśmy zrobić nasz o
Kartonowa programowalna klawiatura: 8 kroków (ze zdjęciami)
Kartonowa programowalna klawiatura: Wraz z rozwojem technologii ludzie chcą, aby rzeczy były coraz bardziej wirtualne, jednak czasami po prostu bardziej praktyczne i wygodne jest posiadanie czegoś fizycznego, czego można dotykać i wchodzić w interakcje własnymi rękami. Jeden przykład
Najcieńsza programowalna skórzana bransoletka na świecie!: 6 kroków (ze zdjęciami)
Najcieńsza na świecie programowalna bransoletka skórzana!: Button-schemer firmy Aniomagic to niesamowity mały widget. Jest to czytnik programów otoczenia wielkości monety, który można zaprogramować za pomocą specjalnie synchronizowanych błysków światła. Dzięki niemu stworzymy najcieńszą na świecie programowalną bransoletkę.Mam