Działanie:Na rysunku poniżej przedstawiony jest schemat ideowy sterownika:
Głównym elementem układu jest procesor U1 (AT89C4051) współpracujący z rezonatorem kwarcowym X (12MHz) i kondensatorami C1 (33pF) i C2 (33pF). Dioda D1 zabespiecza przed odwrotną polaryzacją napięcia zasilania. Kondensator C4 (100uF) filtruje napięcie zasilające a C3 (4,7uF) pracuje w obwodzie resetu mikrokontrolera i ma umożliwić mu poprawne rozpoczęcie pracy po włączeniu zasilania. Złącze GP1 (goldpin) zapewnia kontakt z zasilaczem i przyciskami. Rezystory R5 (180R), R6 (180R) i R7 (100R) ograniczają prąd diody D2 (LED RGB) natomiast R8 (180R), R9 (180R) i R10 (100R) diody D3 (LED RGB). Elementy R7 i R10 mają mniejsze wartości ze względu na gorszą sprawność czerwonych diod led i konieczność zasilania ich większym prądem. D2 i D3 podłączone są do innych wyprowadzeń mikrokontrolera poniważ wydajność prądowa portów procesora jest mała a w ten sposób nie są konieczne dodatkowe tranzystory. Schemat ideowy zasilacza przedstawia poniższy rysunek:
Układ U1 (7805) wraz z kondensatorami C1 (1000uF) i C2 (47uF) zapewnia stabilizowane napięcie 5V dla mikrokontrolera i współpracujących elementów. Przyciski S1 (N.C.) i S2 (N.C.) służą do ustawiania szybkości zmiany kolorów. Dioda D1 sygnalizuje stan pracy urządzenia a rezystor R1 (510R) ogranicza jej prąd. Złącze GP1 zapewnia kontakt z płytką sterownika. Budowa:Sterownik można zbudować korzystając z płytki dostępnej tutaj. Gdyby konieczny był rysunek w odbiciu lustrzanym to można skorzystać z rysunku dostępnego tutaj. Montaż urządzenia jest bardzo prosty. Należy zwrócić uwagę na prawidłowe przylutowanie diod led RGB. Pod mikrokontroler U1 podstawka jest bezwzględnie konieczna, gdyż w przeciwnym razie nimożliwe będzie jego zaprogramowanie. Płytkę sterownika należy umieścić w przezroczystej matowej obudowie żeby zapewnić optymalne warunki miesznia się barw (najlepszy jest jakiś kryształ). Pomocą w konstrukcji może okazać się schemat montażowy dostępny tutaj. Zasilacz i przyciski zostały zlutowane w "pająku", bez płytki drukowanej i zamontowane w obudowie transformatora zasilającego. Przyciski użyte w układzie są typu N.C. (normalnie zwarte) ze względu na fakt że akurat takie miałem w czarnym kolorze. Można zastosować zwykłe uSwitch'e ale wtedy konieczna będzie zmiana dwóch linijek programu. Wykaz Elementów:Sterownik:1x GOLDPIN 1x5 2x 100R 2x 33pF 1x Rezonator Kwarcowy 12MHz Zasilacz:2x Przycisk dowolny (N.C.) 1x 510R 1x 47uF Elektrolit 1x 7805 Programowanie:Mikrokontroler do sterownika został zaprogramowany w wersji demo programu BASCOM 8051 firmy MCS Electronics (http://www.mcselec.com/). Program przedstawiony jest poniżej: Dim Rled As Byte , Gled As Byte , Bled As Byte Dim Licznik As Byte Dim Flaga As Bit , Ctrled As Bit Dim N As Byte , Pomoc As Byte , Prz1 As Byte , Prz2 As Byte Dim Dziel As Word , Dziel2 As Word , Szybkosc As Word Enable Interrupts Config Timer0 = Timer , Gate = Internal , Mode = 2 On Timer0 Przerwanie Load Timer0 , 1 Enable Timer0 Start Timer0 P1 = 255 P3 = 255 Rled = 100 Gled = 0 Bled = 0 Szybkosc = 6000 N = 1 Pomoc = 0 'Nazwy pinow '**************************** Rd Alias P1.4 Gd Alias P1.3 Bd Alias P1.2 Rd2 Alias P1.7 Gd2 Alias P1.6 Bd2 Alias P1.5 Plsw Alias P3.0 Misw Alias P3.1 Contled Alias P3.2 '**************************** Do If Flaga = 1 Then Flaga = 0 Ctrled = Not Ctrled Contled = Ctrled Select Case N Case 1: Incr Gled If Gled = 100 Then N = 2 Case 2: Decr Rled If Rled = 0 Then N = 3 Case 3: Incr Pomoc If Pomoc = 100 Then N = 4 Pomoc = 0 End If Case 4: Incr Bled If Bled = 100 Then N = 5 Case 5: Decr Gled If Gled = 0 Then N = 6 Case 6: Incr Pomoc If Pomoc = 100 Then N = 7 Pomoc = 0 End If Case 7: Incr Rled If Rled = 100 Then N = 8 Case 8: Decr Bled If Bled = 0 Then N = 9 Case 9: Incr Pomoc If Pomoc = 100 Then N = 10 Pomoc = 0 End If Case 10: Incr Gled If Gled = 10 Then N = 11 Case 11: Incr Bled If Bled = 100 Then N = 12 Case 12: Decr Rled If Rled = 10 Then N = 13 Case 13: Incr Gled If Gled = 100 Then N = 14 Case 14: Decr Bled If Bled = 10 Then N = 15 Case 15: Incr Rled If Rled = 100 Then N = 16 Case 16: Incr Bled If Bled = 100 Then N = 17 Case 17: Incr Pomoc If Pomoc = 80 Then N = 18 Pomoc = 0 End If Case 18: Decr Bled If Bled = 0 Then N = 19 Case 19: Decr Gled If Gled = 0 Then N = 20 Case 20: Incr Pomoc If Pomoc = 100 Then N = 1 Pomoc = 0 End If End Select End If Loop End Przerwanie: Incr Licznik If Licznik = 100 Then Licznik = 0 If Licznik < Rled Then Reset Rd Reset Rd2 Else Set Rd Set Rd2 End If If Licznik < Gled Then Reset Gd Reset Gd2 Else Set Gd Set Gd2 End If If Licznik < Bled Then Reset Bd Reset Bd2 Else Set Bd Set Bd2 End If Incr Dziel If Dziel >= Szybkosc Then Dziel = 0 Set Flaga End If Incr Dziel2 If Dziel2 = 200 Then Dziel2 = 0 Gosub Przyciski End If Return Przyciski: If Plsw = 1 Then '+ Incr Prz1 If Prz1 = 2 Then Prz1 = 0 Szybkosc = Szybkosc - 200 If Szybkosc < 200 Then Szybkosc = 200 End If Else Prz1 = 0 End If If Misw = 1 Then '- Incr Prz2 If Prz2 = 2 Then Prz2 = 0 Szybkosc = Szybkosc + 200 If Szybkosc > 12000 Then Szybkosc = 12000 End If Else Prz2 = 0 End If Return Zdjęcia Projektu:
|
|||||||||||||||||||||||


Urządzenie jest prostym sterownikiem trójkolorowych diod led. Ma za zadanie podświetlać różnokolorowym światłem kryształ, imitację kamienia lub inny podobny przedmiot. Zastosowanie mikrokontrolera zapewnia małe wymiary układu, prostotę wykonania i bardzo dobry efekt wizualny dzięki generowaniu całej palety barw. W układzie pracuje mikrokontroler 
















Na jakiej zasadzie sygnał z wyprowadzeń ?
Hej gratuluje projektu , ale mam jedno pytanie . Czy nogi diód nie powinny być zwarte z wyprowadzeniami odpowiedzialnymi za sygnał PWM ? nurtuje mnie to dość długo a jakoś sam nie potrafię sobie tego wytłumaczyć.
Mini Lampka
Wyprowadzenia diod są dobrze podłączone a opisywana lampka działa poprawnie juz długi czas. Układ działa na programowej implementacji prostego PWM. Jest to poprostu licznik zliczający impulsy do pewnej wartosci ustalonej (w tym przypadku 100) i jedna instrukcja warunkowa sprawdzająca czy jest on mniejszy od zmiennej określającej wypełnienie przebiegu podawanego na diodę. Fragment programu za to odpowiedzialny przedstawiam poniżej:
Dzięki temu że sterowanie portami odbywa się w klasyczny sposob nie jest istotne do jakich wyprowadzeń zostały podłączone diody
:: Zapoznaj się z regulaminem :: Załóż konto! :: Wesprzyj rozwój strony
Witam! Na początku jest
Witam!
Na początku jest napisane, że to AT89C2051 a później że C4051...
Jest jakaś różnica między tymi Elementami? Bo wgrałem wsad na C2051 (a nie mam zielonego pojęcia o uP)
i nie wiem czy zatrybi, a badzo mi na tym zależy... Proszę o szybką odpowiedź
Re: 2051<->4051
Mikrokontroler 2051 różni się od 4051 tylko pamięcią flash na program. W opisie napisalem że 2051 ma być a potem dałem 4051 bo taki miałem pod ręką. Nie ma to znaczenia.
Dla pewności przekompiluj program w BASCOM 8051 wybierając w opcjach poprawny mikrokontroler i dopiero potm zaprogramuj
:: Zapoznaj się z regulaminem :: Załóż konto! :: Wesprzyj rozwój strony
Kurczę już trochę za późno.
Kurczę już trochę za późno. mam nadzieje że wstanie. Programatora nie mam. Mikrokontroler programował kuzyn...
A tak z innej beczki - ta dioda w schemacie zasilacza to od czego? bo jest wpięta "zaporowo" (tak się na to mówi :P) i już nie czaje kiedy ona ma świecić. Bascoma nie znam heh...
Re: Lampka
Faktycznie dioda jest wpieta zaporowo, mój błąd :). Oczywiście ma być włączona przeciwnie, tak aby miała szansę zaświecić w normalnych warunkach pracy
:: Zapoznaj się z regulaminem :: Załóż konto! :: Wesprzyj rozwój strony
kurczę, nie podoba mi się
kurczę, nie podoba mi się jeszcze to wyprowadzenie. wygląda na to, że do nogi GND w AT89c dochodzi prąd o napięciu 5V. Bo w tej złączce na zasilaczu 1 to 5V a to ma się łączyć z 1 na sterowniku i tu ta jedynka idzie do GND. Nie czaje już tego... To ja się mylę czy jest błąd na schemacie?
Re: Lampka
Problem jest taki że ten projekt robiony był w czasach kiedy o stronie internetowej jeszcze nie myslałem, więc coś takiego jak dbanie o to aby do pinu 1 na płytce pasował pin 1 na drugiej płytce było totalnie bez znaczenia.
Oczywiście złącze należy podłączyć tak aby GND pasowało do GND procesora i tak samo VCC. Kolejność pozostałych pinów jest dobra, należy tylko złącza podłączyć do siebie 1-5, 2-4, 3-3, itd
Jak znajdę trochę czasu to ten schemat poprawnie przerysuję
:: Zapoznaj się z regulaminem :: Załóż konto! :: Wesprzyj rozwój strony
przepraszam za moją
przepraszam za moją upierdliwość :P wiem, że działam na nerwy ale chciałem się upewnić, czy te diody są napewno ze wspólną katodą? Bo jutro jade do elektronicznego (święto ;-) ) i nie chcę kupić złych.
Niet niet to są diody ze
Niet niet to są diody ze wspólną Anodą czyli z łączonym plusem.
te kondy przy kwarcu mogą być
te kondy przy kwarcu mogą być 36pF albo 30pF?
jeśli tak to które lepssze?
Re: kondensatory
Zastosuj 30pF
:: Zapoznaj się z regulaminem :: Załóż konto! :: Wesprzyj rozwój strony
czy trzeba
mam pytanie czy trzeba programowca ten układ bo ja amator a chcail bym sobie robic cos takiego bym kupil elementy zrobił płytkę i po lutował i czy to bedzie dzialac
Jak zaprogramujesz, to będzie
Jak zaprogramujesz, to będzie działać ;)
Poczytaj: http://mirley.firlej.org/jak_zaprogramowac_pierwszy_avr to nie jest trudne ;)
Re: Lampka RGB
Oczywiście procesor trzeba zaprogramować i trzeba miec do tego programator dość złożony. Zajmij sie budową Lampki RGB 2 ona jest zbudowana na innym procesorze, którego będziesz mógł zaprogramować według opisu podanego we wczesniejszym poście.
Ps. Procesor bez programu nie robi dokładnie nic :)
:: Zapoznaj się z regulaminem :: Załóż konto! :: Wesprzyj rozwój strony
Lampka RGB
tak ale ja chciał bym bez tych guzików lampę co mi jest potrzebne do zaprogramowania
Re: Lampka
Zajmij się drugą wersją lampki. Jak zaprogramować i co jest potrzebne napisałem w artykule: http://mirley.firlej.org/jak_zaprogramowac_pierwszy_avr
Ps. Pytania do lampki RGB 2 pisz już pod jej opisem. Najpierw jednak dokładnie poczytaj co napisałem a wszystko się wyjaśni
:: Zapoznaj się z regulaminem :: Załóż konto! :: Wesprzyj rozwój strony
Hey to znowu ja (ten, co przy
Hey to znowu ja (ten, co przy jego komentach jest taka gąbka żółta z zębem na wierzchu :P) i kurde mam pytankobo zrobiłem w końcu to cudeńko i druga dioda mi tak świieci że prawie wcale jej nie widać, a poza tym w innych kolorach :/ to ja pomyślał, że zrobie ja na tranzystorach z jednego działającego wyjścia no i polutował je ja Panie i inwersja mi się zrobiła i muszę przeprogramować kłostke a nie wiem jak zmienić program.
Pomoże Pan bo ja prosty chłopak ze wsi i się na takich rzeczach nie znam totalnie?
Re: Lampka RGB
Zmiana programu nie jest skomplikowana. Wystarczy fragment:
Zamienić na ten poniżej w którym jest inwersja stanów na wyjściu:
Ps. Tak szczerze mówiąc to ja też z miasta nie jestem :))
:: Zapoznaj się z regulaminem :: Załóż konto! :: Wesprzyj rozwój strony
O! Gorące Bóg zapłać ;-) A to
O! Gorące Bóg zapłać ;-)
A to normalne, że układ startuje po kilku / kilkunastu sekundach?
Re: Lampka
Zadbaj o to aby w ustawieniach bascoma był zaznaczony odpowiedni typ mikrokontrolera i rezonator kwarcowy 12MHz i przekompiluj jeszcze raz program.
Ten programik jest trochę stary i nie ma ustawień wpisanych w kod źródłowy, tak jak to mam w późniejszych opracowaniach
:: Zapoznaj się z regulaminem :: Załóż konto! :: Wesprzyj rozwój strony
"Przyciski użyte w układzie
"Przyciski użyte w układzie są typu N.C. (normalnie zwarte) ze względu na fakt że akurat takie miałem w czarnym kolorze. Można zastosować zwykłe uSwitch'e ale wtedy konieczna będzie zmiana dwóch linijek programu. "
...a można wiedzieć których i jak? :)
Re: Przyciski Lampka
W procedurze obsługi przycisków należy zmienić:
Po prostu zamiast wykrywać wysoki stan z rozwarcia po naciśnięciu należy wykrywać niski przy zwieraniu do masy.
:: Zapoznaj się z regulaminem :: Załóż konto! :: Wesprzyj rozwój strony
przyciski
schemat pozostaje bez zmian...
Re: Lampka
Schemat pozostaje bez zmian. Wstaw przyciski zwykłe (normalnie rozwarte) w miejsce tych na schemacie.
:: Zapoznaj się z regulaminem :: Załóż konto! :: Wesprzyj rozwój strony
przyciski
ok wielkie dzięki
Witam, mógłbyś opisać jaką
Witam,
mógłbyś opisać jaką rolę pełni tutaj zmienna
Dzięki
Re: Lampka RGB
Np fragment:
Zmienna ta pracuje jako licznik pomocniczy. Odlicza ilość kroków w których kolor pozostaje nie zmieniony. W poprzednich krokach kolor był zmieniany o jedną wartość co krok. Po czym program wpada na fragment powyżej i czeka poprostu 100 kroków zwiększając tą zmienną. Po odliczeniu 100 kroków przechodzi do modyfikowania następnego koloru i znowu trafia na fragment gdzie czeka jakiś czas itd
:: Zapoznaj się z regulaminem :: Załóż konto! :: Wesprzyj rozwój strony
A czy if nie powinien być
A czy if nie powinien być zamknięty w każdym case?
Niedawno zacząłem się uczyć
Niedawno zacząłem się uczyć bascoma, i pytanie którego nie mogę rozgryźć...
Deklarujesz zmienne Bled Gled i Rled, ok.
Zmieniają swoje wartości od 0 do 100, ok.
Ale nigdzie nie widzę powiązania tej zmiennej z aliasem żadnym, no za chiny nie rozumiem jak to działa, że on podaje coraz większe napięcia / natężenia na linie portu :(
Re; Lampka
Są dwie konstrukcje if, jeśli jest jedno polecenie w tej samej linijce to nie ma end if. jesli masz kilka poleceń lub przeniesiesz je do linijki niżej to trzeba end if.
Polecenie alias o którym wspominasz totalnie nic nie robi a jedynie pozwala wygodnie nazwać porty i piny procesora. Przejście między Zmiennymi Rled ,Bled.... a portem jest we fragmencie:
Nie sterujemy tu żadnym napięciem czy prądem, sterowanie odbywa sie na zasadzie PWM, czyli regulacją szerokości impulsu przy stałej częstotliwości. Cyklicznie zwiekszana jest wartość Licznik od 0 do 100, jeśli ustawisz Rled = 50 to porównanie ze zmienną licznik ustawi stan niski na porcie jak licznik będzie 0-49 a stan wysoki jak będzie licznik równy 50-99 itp. Wartości można dobrać sobie dowolnie. jak ustawisz zmienną Rled = 100 to zawsze Rled > Licznik i stan na porcie jest zawsze 0 co owocuje świeceniem na maxa. W przypadku Rled=50 wypełnienie jest 50%
:: Zapoznaj się z regulaminem :: Załóż konto! :: Wesprzyj rozwój strony
Post new comment