Mini Lampka RGB 2


10
Ocena: None Średnia: 10 (13 głosujących)

Urządzenie jest ulepszoną i rozbudowaną wersją układu Mini Lampki RGB. Ma za zadanie podświetlać na różne kolory kryształ lub inny przedmiot dobrze rozpraszający światło. Zastosowanie mikrokontrolera z rodziny AVR powoduje większą szybkość działania i eliminacje niewielkiego migotania powstającego przy małej jasności kolorów w stosunku do poprzedniej wersji urządzenia. Lamka posiada 3 tryby pracy z czego najbardziej efektowną stanowi generowanie płynnych losowych przejść kolorów. W roli obudowy zastosowano imitację skały wykonaną z pasty modelarskiej, co znakomicie ułatwia zastosowanie kryształu o nietypowych i nieregularnych kształtach.

Działanie:


Schemat ideowy lampki przedstawia poniższy rysunek:

Sercem układu jest mikrokontroler U1 (ATTINY2313) wraz z rezonatorem kwarcowym X1 (16MHz) i kondensatorami C1 (22pF) i C2 (22pF). Stabilizator U2 (7805) wraz z kondensatorami C3 (470uF) i C4 (100uF) stanowi prosty zasilacz stabilizowany. Rezystory R2 (180R), R3 (100R) i R4 (180R) oraz R5 (180R), R6 (100R) i R7 (180R) ograniczają prąd diod D2 (Led RGB) i D3 (Led RGB). Dioda D1 (Led) wraz z rezystorem ograniczającym prąd R1 (330R) stanowi kontrolkę szybkości animacji.

Budowa:


Lampkę można zbudować w oparciu o płytkę drukowaną dostępną tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. Montaż układu nie jest skomplikowany lecz należy zwrócić uwagę na kilka istotnych szczegółów. Lutowanie rozpoczynamy od rezystorów, następnie montujemy kondensatory ceramiczne C1 i C2 na leżąco i nad nimi rezonator kwarcowy również leżąco (możemy także zastosować kwarc o mniejszych gabarytach). Stabilizator wraz z współpracującymi kondensatorami montujemy tak jak na zdjęciu u dołu strony. Przyciski klawiatury jak również diody D1 - D3 lutujemy od strony druku. Pod diody RGB można zastosować kawałki podstawki precyzyjnej co umożliwi ich ewentualną wymianę. Mikrokontroler należy obowiązkowy wyposażyć w podstawkę ze wzgledu na brak złącza programującego na płytce. Pomocą w montażu będą zdjęcia modelu a także dostępny tutaj schemat montażowy. Układ można zamknąć w małej obudowie i połączyć np. z krzyształem górskim za pomocą utwardzanej na powietrzu pasty modelarskiej jak to zrobiłem w tym projekcie. Utwardzoną pastę modelarską można pomalować dowolną farbą, najlepiej akrylową (do kupienia w sklepie dla plastyków). Gdy mamy diody RGB ze wspólną katodą należy dołączyć ich wspólne wyprowadzenia (katody) do masy i zaprogramować mikrokontroler wersją programu dla diody ze wspólną katodą.

Druga wersja płytki wraz z odpowiednim schematem montażowym jest dostępna w załącznikach. Wersja ta nie zawiera stabilizatora i jest przystosowana do rozcięcia na dwa fragmenty (klawiaturę i moduł sterujący). Ponadto część płytki z mikrokontrolerem została znacznie zmniejszona i upakowana.

Gdy chcemy podłączyć do układu więcej diod to możemy zastosować tranzystory NPN lub MOSFET N (dla diod ze wspólną anodą) według jednego ze schematów poniżej:

Dla diod ze wspólną katodą należy zastosować tranzystory PNP lub MOSFET P (schemat jest analogiczny tylko wszystko się odwraca). Ze względu na fakt iż tranzystory działają jak inwentery do mikrokontrolera należy wgrać program dla diod o przciwnej polaryzacji niż zastosowane w projekcie. Ilość dołączanych diod jest ograniczona tylko maksymalnym prądem jaki jest dopuszczalny dla zastosowanych tranzystorów.

Wykaz Elementów:


5x uSwitch

2x 100R
4x 180R
1x 330R

2x 22pF
1x 100uF Elektrolit
1x 470uF Elektrolit

1x Rezonator Kwarcowy 16MHz (przy 10MHz może migać)
1x Dioda LED
2x Dioda LED RGB (4 wyprowadzenia, wsp. anoda)
1x 7805
1x ATTINY2313 + Podstawka

Programowanie:


Mikrokontroler do lampki został zaprogramowany w wersji demo programu BASCOM AVR firmy MCS Electronics (http://www.mcselec.com/). Program przedstawiony jest poniżej:

'************* Konfiguracja uC *****************
'***********************************************
$regfile = "attiny2313.dat"
$crystal = 16000000
 
Config Portb = &B11111111 : Portb = &B11111111
Config Portd = &B00000000 : Portd = &B11111111
 
Config Timer0 = Timer , Prescale = 8
Enable Timer0 : On Timer0 Prztimer0
 
Enable Interrupts
'********** Konfiguracja uC Koniec  ************
 
'******************  Nazwy *******************
'***********************************************
Rd Alias Portb.0
Gd Alias Portb.1
Bd Alias Portb.2
 
Rd2 Alias Portb.3
Gd2 Alias Portb.4
Bd2 Alias Portb.5
 
Syg_led Alias Portb.7
Sw_port Alias Pind
 
'*************  Nazwy Koniec  ****************
 
'******************  Zmienne *******************
'***********************************************
Dim Licznik As Byte
Dim Rled As Byte , Bled As Byte , Gled As Byte
Dim Rand_r As Byte , Rand_g As Byte , Rand_b As Byte
Dim Pomoc As Byte
Dim Flaga As Bit
Dim Dzielnik As Word
Dim Dzielnik2 As Byte
Dim Dzielnik3 As Byte
Dim Szybkosc As Byte
Dim Licznik_sw As Byte
Dim Stan_portu As Byte
 
Dim Arg As Word
Dim Wartosc As Word
Dim Pozycja As Word
 
Dim Stopbit As Bit
 
Dim Animacja As Byte
 
'*************  Zmienne Koniec  ****************
 
'************ Warunki Poczatkowe ***************
'***********************************************
Pozycja = 0
Dzielnik2 = 0
Szybkosc = 10
Stopbit = 1
Animacja = 0
'*******  Warunki Poczatkowe Koniec  ***********
 
'**************  Petla glowna ******************
'***********************************************
Do
 
 If Flaga = 1 Then                                          'co 32ms
   Flaga = 0
 
   Gosub Przyciski
 
   Incr Dzielnik2
   If Dzielnik2 >= Szybkosc And Stopbit = 1 Then
     Dzielnik2 = 0
 
     Syg_led = Not Syg_led
 
     'pierwszy tryb  - przejscia plynne ustalone
     If Animacja = 0 Then
       Incr Pozycja
       If Pozycja = 900 Then Pozycja = 0
       Gosub Pozycja_do_rgb
     End If
 
     'drugi tryb - losowe przejscia
     If Animacja = 1 Then
       Incr Pozycja
       If Pozycja >= 50 Then
         Pozycja = 0
         Rand_r = Rnd(3)
         Rand_g = Rnd(3)
         Rand_b = Rnd(3)
       End If
 
       If Rand_r = 1 Then If Rled < 100 Then Incr Rled
       If Rand_r = 2 Then If Rled > 0 Then Decr Rled
 
       If Rand_g = 1 Then If Gled < 100 Then Incr Gled
       If Rand_g = 2 Then If Gled > 0 Then Decr Gled
 
       If Rand_b = 1 Then If Bled < 100 Then Incr Bled
       If Rand_b = 2 Then If Bled > 0 Then Decr Bled
     End If
 
     'trzeci tryb - losowy kolor
     If Animacja = 2 Then
       Pozycja = Rnd(900)
       Gosub Pozycja_do_rgb
     End If
 
   End If
 End If
 
Loop
End
'************ Petla glowna Koniec **************
 
'************ Przerwanie timer 0 ***************
'***********************************************
Prztimer0:
 
 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 Dzielnik
 If Dzielnik = 250 Then
   Dzielnik = 0
   Set Flaga
 End If
 
Return
'******** Przerwanie timer 0 Koniec ************
 
'************   Inne Etykiety    ***************
'***********************************************
Przelicz:                                                   'funkcja \_ _ _ _/^^^
  If Arg > 899 Then Arg = Arg - 900
 
  If Arg > 100 And Arg < 500 Then Wartosc = 0
  If Arg <= 100 Then Wartosc = 100 - Arg
  If Arg >= 500 And Arg <= 600 Then Wartosc = Arg - 500
  If Arg > 600 Then Wartosc = 100
Return
 
Pozycja_do_rgb:
  Arg = Pozycja
  Gosub Przelicz
  Rled = Wartosc
  Arg = Pozycja + 300
  Gosub Przelicz
  Gled = Wartosc
  Arg = Pozycja + 600
  Gosub Przelicz
  Bled = Wartosc
Return
 
Przyciski:
If Sw_port <> 255 And Stan_portu = Sw_port Then
  Incr Licznik_sw
  If Licznik_sw = 10 Then
    Select Case Stan_portu
      Case 126:                                             'plus
        Licznik_sw = 5
        If Szybkosc > 1 Then Decr Szybkosc
      Case 125:                                             'minus
        Licznik_sw = 5
        If Szybkosc < 40 Then Incr Szybkosc
      Case 124:                                             'plus i minus
        Stopbit = Not Stopbit
        Syg_led = 1
      Case 111:                                             ' R
        Pozycja = 700
        Gosub Pozycja_do_rgb
      Case 119:                                             ' G
        Pozycja = 400
        Gosub Pozycja_do_rgb
      Case 123:                                             ' B
        Pozycja = 100
        Gosub Pozycja_do_rgb
      Case 110:                                             'plus R
        Licznik_sw = 8
        If Rled < 100 Then Incr Rled
      Case 109:                                             'minus R
        Licznik_sw = 8
        If Rled > 0 Then Decr Rled
      Case 118:                                             'plus G
        Licznik_sw = 8
        If Gled < 100 Then Incr Gled
      Case 117:                                             'minus G
        Licznik_sw = 8
        If Gled > 0 Then Decr Gled
      Case 122:                                             'plus B
        Licznik_sw = 8
        If Bled < 100 Then Incr Bled
      Case 121:                                             'minus B
        Licznik_sw = 8
        If Bled > 0 Then Decr Bled
      Case 103:                                             ' R G
        Rled = 100
        Gled = 100
        Bled = 0
      Case 115:                                             ' G B
        Rled = 0
        Gled = 100
        Bled = 100
      Case 107:                                             ' R B
        Rled = 100
        Gled = 0
        Bled = 100
      Case 99:                                              ' R G B
        Rled = 100
        Gled = 100
        Bled = 100
      Case 108:                                             ' plus minus R
        Animacja = 0
      Case 116:                                             ' plus minus G
        Animacja = 1
      Case 120:                                             ' plis minus B
        Animacja = 2
 
    End Select
 
  End If
Else
  Stan_portu = Sw_port
  Licznik_sw = 4
End If
 
Return
'********    Inne Etykiety Koniec  ************

Na rysunku poniżej przedstawiona jest konfiguracja Fuse bitów mikrokontrolera (screen shot z programu BASCOM AVR Demo). Zanaczone na czerwono opcje należy koniecznie ustawić:

Na rysunku poniżej przedstawiono konfigurację Fuse bitów mikrokontrolera na podstawie programu Burn-O-Mat:

Obsługa:


W standardowej wersji oprogramowania układ może pracować w trzech trybach działania:
1. Przejścia Ustalone - kolory zmieniają się w sposób płynny według ustalonej zależności B->G->R->B (900 kolorów)
2. Przejścia Losowe - losowany jest sposób płynnej zmiany natężenia dla każdej barwy niezależnie (1000000 kolorów)
3. Przejścia Skokowe - losowany jest jeden ocień co określony czas, zmiana następuje skokowo (900 kolorów)

W poniższej tabeli zawarta jest instrukcja obsługi lampki:

Zdjęcia Projektu:

ZałącznikWielkość
Schemat44.78 KB
Płytka10.3 KB
Płytka (odbicie lustrzane)10.27 KB
Płytka (3 na stronie)25.92 KB
Montowanie14.72 KB
Opis6.91 KB
Opis (odbicie lustrzane)6.95 KB
Kod Źródłowy6.62 KB
Program po kompilacji (BIN)1.94 KB
Program po kompilacji (HEX)5.48 KB
Kod Źródłowy (Dioda ze wsp. Katodą)6.62 KB
Program po kompilacji (BIN) (Dioda ze wsp. Katodą)1.94 KB
Program po kompilacji (HEX) (Dioda ze wsp. Katodą)5.48 KB
Płytka (Wersja 2)11.1 KB
Płytka (odbicie lustrzane) (Wersja 2)11.14 KB
Płytka (6 na stronie) (Wersja 2)54.54 KB
Montowanie (Wersja 2)15.05 KB



Portret użytkownika mirley

Re: Problemy z Lampką

To o czym piszesz to prawie napewno jest problem nie ustawionych fusebitów. Przeczytaj artykuł i wszystkie odpowiedzi powyżej a dowiesz się co i jak ustawić. Działanie przycisków jest niejako odwrócone , przyciski działają w odwrotnej kolejności niż na schemacie. Wszystko opisałem wyżej tylko trzeba przeczytać. Jak by mimo poprawnego ustawienia fusebitów nie chciało działać w normalnym tępie to dokładnie skontroluj płytkę i sprawdź zwarcia.

Ps. Odnośnie programowania pod C++ to jestem w trakcie tworzenia Mirley Ambilight, podświetlanie wielokanałowe ekranu. Aplikacja do odczytu i sterowania kolorami jest właśnie w trakcie tworzenia a jedną z jej funkcji będą podobne animacje kolorów jak w tej lampce. Wszystko jak narazie piszę w C++ Buildier 6, później będzie pod QT4 w C++. Jak będziesz śledził postępy na stronie to umieszczę tam potem kod źródłowy do programu

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Ariel

Witajcie Wielki szacunek dla

Witajcie

Wielki szacunek dla twórcy układu, czytałem wszystkie odpowiedzi i pytania do 4-tej strony wiec jeśli moje pytanie pojawiło się później to przpraszam.

Moje pytanie:

Jest możliwość dopisania do programu opcji włącz/wyłącz osobnym klawiszem z tym żeby przy załączeniu układu był w tym samym momencie co przed wyłączeniem ?

Pozdrowionka

Portret użytkownika mirley

Re: Włącz/Wyłącz RGB

Musisz dokładnie opisać czy chodzi o to że układ po nacisnięciu przycisku ma wygasić diody i zatrzymać animację. Czy może chodzi o to żeby po kliknięciu Stop zapisał ustawienia do pamięci i mozna było wyłączyć zasilanie, a po ponownym włączeniu do zasilania żeby układ pamiętał ostatni punkt animacji.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Ariel

Najlepiej byłoby gdyby po

Najlepiej byłoby gdyby po naciśnięciu stop i odłączeniu zasilania zapamiętał wybraną funkcje i obecny kolor, ale z tego co pisałeś nie wiele pozostało pamięci dlatego opcja bez podtrzymania po braku zasilania też myślę była by dobrą opcją :)

Portret użytkownika mirley

Re: Lampka

Sprawdzałem kod źródłowy teraz i niestety nie da się już nic sensownego dopisać do programu. Musiałbym znacząco uprościć kod co w efekcie zmniejszyło by funkcjonalność. Jeśli np. używasz tylko trybu losowych przejść to dało by się coś dopisać kasując pozostałe tryby pracy. Nie dam rady teraz przerobić tego programu ze względu na brak czasu ale jak napiszesz czego ewentualnie mogło by nie być w programie to zajmę sie tym w wolnej chwili.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Ariel

:)

Oooo fajnie a powiedz mi skąd masz taką wiedzę ?? Uczę się programowania i no nie czuje takich drastycznych skoków wiedzy :( Co do programu to przejścia ustalone (płynne) mogły by zostać usuniete z resztą jeśli mówisz że tak ciężko z pamięcią to zawsze mozna użyć ATmegi8 A mniej wiecej kiedy byś miał czas moze jakieś wzkazówki jak to ugryść to z chęcią bym pomyslał o tym :) Moim zdaniem fajny bajer byłby gdyby była możliwość wł/wył układu :)

Portret użytkownika mirley

Re: Lampka RGB

Nie mogę obiecać kiedy zajmę się przróbką programu bo sam nie wiem kiedy się znajdzie czas. Mozna by użyć ATMega8 lub innego ale założeniem było zrobić to wszystko na ATTiny2313.

Jeśli chodzi o więdzę to wcale takiej dużej nie mam jak by się mogło wydawać. Po prostu interesuje się tym o czym tu piszę. A wszystko zaczęło się od kursu BASCOM'a w Elektronice Dla Wszystkich

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

Podziękowania

Bardzo dziekuję za listing, w weekend poćwiczę.
A mam jeszcze jedno pytanie, czy płynne rozjaśnianie i ściemnianie diody, to też PWM?

Portret użytkownika mirley

Re: Lampka RGB

To z jaką mocą dioda świeci zależy od wypełnienia przebiegu. U mnie jest to tak zrobione, że zależy to od wartości trzech zmiennych. To jest jedna kwestia, a to w jaki sposób zmieniasz wartości tych zmiennych sterujących, daje odpowiedni efekt świetlny. Przypisanie na stałe wartości do zmiennych Rled, Gled i Bled daje jednolity kolor bez zadnych zmian. Natomiast jeśli te wartości w sposób odpowiedni zaczniesz zmieniać podczas działania programu (np po jakiejś funkcji lub losowo) to uzyskasz zmiany kolorów.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika kamil

Witam!Własnie testuje twój

Witam!
Własnie testuje twój programik, jeszce raz dziękuję. Zastanawiam się nad jednym:

'************ Warunki Poczatkowe ***************
'***********************************************
'ustala natęzenia barw od 0 do 100, 100-zgaszony, 0-max swieci
Rled = 50
Gled = 50
Bled = 50
'*******  Warunki Poczatkowe Koniec  ***********

Zakres jest tylko od 0 do 100? bo w RGB jest 0-255.


Portret użytkownika mirley

Re: Lampka RGB 2

Oczywiście wartości RGB są od 0 do 255, ale zmienne Rled Gled i Bled nie są wartościami RGB ale poziomami wypełnienia przebiegu prostokątnego jaki jest podawany na każdą z diod.

Zależność natężenia świecenia diody od wypełnienia przebiegu prostokątnego nie jest oczywiście liniowa ale wykazuje zależność ok. [tex]10 \cdot \sqrt{x}[/tex]. W efekcie dla wypełnienia 1% uzyskujesz natężenie 10%, dla wypełnienia 4% uzyskujesz natężenie 20%, no i dla wypełnienia 64% uzyskujesz natężenie świecenia 80%....

Ostatecznie mówiąc z Programowego PWM zbudowanego na liczniku do 100 uwzglkędniając kwadraty liczb naturalnych uzyskasz 10 odcieni swiecenia każdego z kolorów. Taki sposób zastosowałem w moim nowo powstającym projekcie gdyż 10x10x10 kolorów to i tak dużo odcieni jak na diody RGB :)

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

Witam! Powoli kumam, jak to

Witam!
Powoli kumam, jak to działa, ale nie mogę sobie poradzić w tym przypadku , z płynnym rozjaśnianiem i ściemnianiem ustalonego koloru :(
No bo jak zaczynam zmniejszać wypełnienie to zmienia mi się kolor :(

Portret użytkownika mirley

Re: Kolory

Żeby to dobrze wykonać trzeba zrozumieć jak zmienają się barwy RGB w zależności od jasności koloru. Pomocny może okazać się do tego program graficzny umożliwiający podgląd wartości RGB koloru (np. Paint). Sam nigdy tego nie robiłem więc dokładnie nie wiem niestety.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

Jakie tranzystory?

Witam

Jakie moge zastosowac najprostsze tranzystory jesli chcialbym podlaczyc 12 diod RGB?

Portret użytkownika gosc

Otwory na płytce.

Witam. Jakim wiertłem mają być zrobione otwory na płytce ? Czy 1,2 mm wystarczy ?

Portret użytkownika mirley

Re: Lampka RGB

Odnośnie wiertła to należy wiercić wiertłem 1mm. Większe wiertło może spowodować oderwanie standardowych pól lutowniczych.

Odnośnie tranzystorów to dla diod ze wspólną anodą można dać jakiś NPN o większym prądzie np. BD135 , BD137 lub BD139. Dla diod ze wspólna katodą mogą być ich odpowiedniki PNP to znaczy: to BD136, BD138 lub BD140.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Lukasr29

Pamięć kolorów

A czy lampka po wyłączeniu i włączeniu zasilania przywraca poprzednie ustawienia kolorów w trybie bez animacji czy trzeba za każdym razem ustawiać żądany kolor?

Portret użytkownika mirley

Re: Lampka

Lampka nie pamięta kolorów. nie ma na to juz miejsca w programie. Lampka stertuje zawsze od jednej barwy i trybu przejść ustalonych, chyba że program zostanie zmodyfikowany według wpisów wcześniej.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Bercik

Pytanie o programator

Czy w tym sample isp programmer mogę zastosować kwarc 16mhz czy muszą być te 4? Czy w programatorze mogę użyć rezysorów 220R tak połączonych aby dały 330R?

Portret użytkownika mirley

Re: Lampka RGB

Po pierwsze pytanie jest nie na temat. Co ma wspólnego programator z lampką RGB? Po drugie nie dałeś żadnego linka do schematu lub opisu, ale wniskuje że to ten standardowy z helpa do BASCOMA. Kwarc 4MHz nie jest konieczny może być dowolny inny. Rezystory daj 220R zamiast 330R i też będzie działać. Ten kwarc 4MHz był dal procesora AT90S2313 a teraz z pewnością masz TINY2313 więc kwarc może być dowolny. Poczytaj tutaj

Ps. Przeczytaj regulamin, bo następnym razem taki wpis pójdzie do kosza bez pytania, zaloguj się aby zadać pytanie na forum

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Paszo

rezonator

witam!
zastanawiam się jakie konsekwencje przyniesie zmiana rezonatora na większy znaczy o większej częstotliwości np20MHz ??

Portret użytkownika mirley

RE: Lampka RGB

Będzie działać z kwarcem 20MHz ale z większym juz nie. Musisz w kodzie zmienić linijkę z crystal= ...

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika paszo

Program

Witam !!
Mam dwa pytania:
1. Jak juz ustaliliśmy rezonator moze być 20MHz i trzeba zmienić wartość w kodzie i teraz jak ten kod przekonwertować na binarny, ??
2. Jeśli mam diody ze wspulna anodą i chcem je podłaczyć przez tranzystory to musze zastosować program dla diód ze wspólną katodą tak ??

Portret użytkownika mirley

Re: Lampka RGB

1. Program musisz skompilować w BASCOM AVR
2. Tak, tranzystor działa jako inwerter a programy dla wspólnej anody i katody różnią się tylko przeciwnym stanem logicznym na wejściach. Wszystko resztę jest w opisie

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika paszo

Działa!!!

Witam !!
Lampka jest świetna dziś ją uruchomiłem!! :) Prace przebiegały bez większych problemów, po dokładnym przeczytaniu opisu i zadaniu dokładnie 3 pytań mój pierwszy mikro kontroler ruszył i działa super ( śmieją się zemnie w domu ze ciesze się jak dziecko, ale co poradzić skoro to jest takie fajne). Podoba mi się taka zabawa i zastanawiam się nad stworzeniem odbiornika rc5 do tej lampeczki. :)
Dziękuje za wszystko Mirley a w szczególności za pomoc z tym rezonatorem :)
Pozdrawiam oby więcej takich projektów!!

Portret użytkownika gosc

Diody

Czy zamiast sześciu oporników na pinach odpowiadających kolorom można podłączyć dwa oporniki do wspólnych anod diod?

Portret użytkownika mirley

Re: Lampka RGB

Oczywiście że nie można. Jeśli dasz jeden opornik to uzyskasz zmianę jasności świecenia poszczególnych barw, a dodatkowo np. zaświecenie czerwonego koloru spowoduje zgaszenie niebieskiego mimo że zgodnie z programem powinien on świecić. każda dioda za pomocą rezystora ma ustalony swój maksymalny prąd i nie zmienia się on gdy zostanie włączone druga struktura led z tej samej diody.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

A dla diody RGB ze wspólną

A dla diody RGB ze wspólną katodą wystarczy do uC wgrać tylko program dioda ze wsp. katodą czy trzeba dołożyć jeszcze tranzystory?

Portret użytkownika mirley

Re: Lampka RGB

Jesli mają być dwie diody to bezpośrednio tak jak mówisz, a jeśli więcej to tranzystory i program dla anody. W opisie wszystko jest

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Veni

Witam Mirley... Hmm w

Witam Mirley...
Hmm w zasadzie to wczoraj o 1 w nocy pierwszy raz bawilem sie cokolwiek w bascomie ale kilka rzeczy próbuje uzyskać.
Po 1. Hmm jeśli ktoś wybierze poczatkową animacje - drugi tryb, to lampka zacznie swiecic nie po 2 sekundach a po (50*0.32s) 16sekundach i tak wlasnie jest:P Ja osobiscie skladam lampke bez przyciskow-bo na prezent, wiec chcialem aby zaczynala szybciej wiec ustawilem sobie Pozycja poczatkowa na 44.
Po 2 Hmm dlaczego ten tryb nie jest tak calkiem losowy? Tzn za kazdym razem jak odpalam lampke to kolory są w takiej samej kolejności. Da sie to jakos zmienic?:P Próbowalem zmienic Rnd(3) na Rnd(2) (bo 0 i 1) ale wtedy mam tylko 2 kolory płynnie sie zmieniające... Fioletowy i zielony:P
Po 3 W tym trybie rzeczywiscie jak ktos wczesniej pisal - przy przejsciu kolorów diody mrugają... Hmm może by napisac uproszczony kod (lub skrócic ten:P) do lampki bez przyciskow?:) pozwoli to wtedy uzyc zaoszczedzone miejsce dla lepszego programu:)

A taka ciekawostka... Zasilam Lampke z zasilacza niestabilizowanego ale napiecie na wyjsciu to dokladne 5V. Tak czy siak Attiny swirowal do momentu az do jego nożek (zasilających) nie podpiąłem kondensatora filtrujacego napiecie.(Ja akurat wstawilem 470uF bo taki mialem pod reka) Teraz chodzi elegancko... ;]

 'drugi tryb - losowe przejscia
     If Animacja = 1 Then
       Incr Pozycja
       If Pozycja >= 50 Then
         Pozycja = 0
         Rand_r = Rnd(3)
         Rand_g = Rnd(3)
         Rand_b = Rnd(3)
       End If
 
       If Rand_r = 1 Then If Rled < 100 Then Incr Rled
       If Rand_r = 2 Then If Rled > 0 Then Decr Rled
 
       If Rand_g = 1 Then If Gled < 100 Then Incr Gled
       If Rand_g = 2 Then If Gled > 0 Then Decr Gled
 
       If Rand_b = 1 Then If Bled < 100 Then Incr Bled
       If Rand_b = 2 Then If Bled > 0 Then Decr Bled
     End If

Portret użytkownika mirley

Re: Lampka RGB

1. Faktycznie jest tak jak piszesz gdy zmienisz warunki początkowe :)

2. Na starcie lampki kolory są przypisywane na sztywno. Natomiast potem nie losowana jest barwa ale jeden z trzech efektów (zwiększ kolor = 1, Zmniejsz kolor = 2, nie rób nic = 0) dlatego rnd(3) musi być. Losowanie jest uproszczone bo brak miejsca.

3. Diody nie powinny mrugać o ile masz kwarc 16MHz i dobrze ustawione fusebity, nie zauważyłem tego efektu podczas testów. Program oczywiście możesz przerobić usuwając obsługę klawiatury i inne tryby pracy.

4. Jeśli nie masz stabilizatora to może się zdażyć że tętnienia zasilania zrobią się duże i procesor wypadnie z przedziału napięć zasilania.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Veni

Hmm może źle sie wyraziłem...

Hmm może źle sie wyraziłem... Diody nie migają, tylko przejście nie jest płynne a skokowe... Tak jakby kolory zmieniaja sie tak delikatnie skokowo. Chociaż naprawde jest to słabo widzialne... (Hmm mniejsza ilość kolorów?:P)

A co Ty na taki kod? Jak już mowilem kompletnie nie znam Bascoma. To moja inwencja twórcza i nie wiem co nam to da... Ale wydawalo mi się, że większą losowość.

If Animacja = 1 Then
       Incr Pozycja
       If Pozycja >= 50 Then
         Pozycja = 0
         Rand_r = Rnd(200)
         Rand_g = Rnd(200)
         Rand_b = Rnd(200)
       End If
 
       If Rand_r < 100 Then If Rled < 100 Then Incr Rled
       If Rand_r >= 100 Then If Rled > 0 Then Decr Rled
 
       If Rand_g < 100 Then If Gled < 100 Then Incr Gled
       If Rand_g >= 100 Then If Gled > 0 Then Decr Gled
 
       If Rand_b < 100 Then If Bled < 100 Then Incr Bled
       If Rand_b >= 100 Then If Bled > 0 Then Decr Bled
     End If

No chyba ze dodac tak jakby 3 przedziały... Dla jednego kolory zwiekszają, dla drugiego zmniejszają, dla 3 nie robią nic.

Portret użytkownika mirley

Re: Lampka RGB

Myślę że nic to nie pomoże a dodawanie dwóch przedziałów spowoduje że kolory nigdy nie zostaną w miejscu a zawsze się będą zmieniac. Nie pamiętam juz dokładnie ale byl jakiś powód dla którego dałem 3 przedziały.... Ten problem nie tkwi w losowości a w zależności między jasnościa diody a wypełnieniem przebiegu prostokątnego (wartości Rled Gled i Bled określają wypełnienie). Zależność ta jest pierwiastkowa i przy małej jesności już niewielka zmiana wypełnienia np o 1% daje zauważalny skok jasności. Kombinowanie z losowością nic Ci tu nie da. Trzeba by było zwiększyć częstotliwość pracy i dać więcej wartości wypełnienia np od 0 do 1000. Musisz sam się tym zająć i trochę poczytać w internecie bo nie dam rady teraz :)

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika haker2108

Problem z uruchomieniem

Witam mam problem z uruchomieniem mojej lampki. Ponieważ lampka ma posiadać więcej diodek to zaprojektowałem własną płytkę. Po włączeniu zasilania świeca się dwa kolory niebieski i zielny. Nie reaguje na przyciski po naciśnięciu nic się nie dzieje :(
dodaje link do mojej płytki być może są jakieś błędy
odsiebie.com/pokaz/2995234---a84b.html

Portret użytkownika mirley

Re: Lampka RGB

Po pierwsze to podana przez ciebie płytka nic mi nie daje, prześlij schemat w jakimś normalnym formacie (np gif) i płytkę z narysowanymi i podpisanymi elementami, przecierz nie będę się domyślał co chciałeś w które miejsce wlutować.

Poza tym czy ustawiłeś wszystko według opisu? Przeczytałeś poprzednie odpowiedzi?

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Kubx

Witam Projekt jest bardzo

Witam
Projekt jest bardzo ciekawy, a zarazem prosty. W najbliższym czasie zamierzam sobie zrobić taką lampkę (dopiero zaczynam zabawę z elektroniką).
Czy była by możliwość, aby zamiast przycisków umieścić odbiornik podczerwieni i sterować pilotem (czy program zmieści się wtedy do uC), np. w standardzie RC5?
Pozdrawiam
Kuba

Portret użytkownika gosc

Mam pytanie. Otóz prawie

Mam pytanie. Otóz prawie skońcyłem lutować jednak mam obawy czy jest różnica jak przylutuję ta małe pomarańczowe kondensatory ? Napisem czarnym w dół czy do góry ? Jest jakieś znaczenie ? Tak samo z tymi diodami RGB. Mam od nich 4 nóżki Najkrótsza później dłuższa troszkę, następnie najdłuższa i srednia. CZy ma to jakieś znaczenie jak je przylutuje ? To chyba tyle. Proszę o odpowiedź ponieważ chce jak najszybciej skończyć ;d

Portret użytkownika Kubx

Te kondensatory (ceramiczny -

Te kondensatory (ceramiczny - dobrze mówie?) nie mają biegunowości czyli można je wlutować i tak i tak.

Portret użytkownika mirley

Re: Lampka RGB

Odnośnie pierwszego pytania i pilota RGB to program się nie zmieści jeśli się doda RC5 a w najprostszym przypadku dodatkowo sa problemy z obsługą RC5. Mam zamiar zrobić kolejną wersję takiej lampki właśnie na pilota, jednak teraz brak mi czasu.

"Pomarańczowe" kondensatory ceramiczne mogą być wlutowane jak chcesz. Diody natomiast absolutnie nie. najdłuższa końcówka w standardowej diodzie RGB jest wyprowadzeniem wspólnym (wspólną anodą lub wspólną katodą w zależności jaką diode masz). Do tego projektu bezpośrednio do płytki mozna wlutować diody ze wspólną anodą. Dla diod ze wspólną katodą, wyprowadzenia wspólne mają iść do masy a nie do Vcc

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

Dziękuje za pomoc.

Ok dziękuję. Przy okazji powiem że robię to na prezent na dzień matki :)

Portret użytkownika gosc

To jeszcze raz ja.

Zrobiłem już cała płytkę jednak nie wiem co dalej. Tam gdzie są te 2 kabelki zielony i czerwony co mam podłączyć, jakie napięcie ? Dalej mam zamiar to zaprogramować programatorem opiasnym przez Ciebie. I Znowu nie wiem co mam zrobić. Może mi ktoś to wytłumaczyć dość łopatologicznie ? :) Będę wdzięczny, nie śmiejcie się jestem dopiero nowicujeszem.

Portret użytkownika Kubx

Musisz tam przyłożyć napięcie

Musisz tam przyłożyć napięcie ok. 5V (może być trochę większe lub mniejsze - stabilizator wypuści 5V)

Portret użytkownika gosc

Ok czyli rozumiem, że tam

Ok czyli rozumiem, że tam gdzie ten zielony ma być czerwnoy kabelek +5V ? A na programtor jaki dać ? i Czy uC też muszę zasilić ?

Portret użytkownika mirley

Re: Lampka RGB

Popatrz na schemat i płytkę. Tam gdzie ścieżka idzie do nóżki numer 1 stabilizatora to jest +. Napięcie powinno być ok 7V jeśli stabilizator ma działać dobrze, albo jeśli masz 5V zasilacz to nie montuj stabilizatora i wlutuj zworę między jego nóżki 1 i 3.

podczas programowania mikrokontroler musi być zasilany napięciem 5V. najprościej jest dolutować kabelki od spodu płytki z uC bo jest tam już kwarc i stabilizator. Będziesz miał mniej kłopotu. Jak zaprogramować procesor dowiesz się z artykułu "Jak zaprogramować pierwszy AVR" w dziale artykuły różne.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

W końcu zrozumiałem o co

W końcu zrozumiałem o co chodzi. Jednak nie wiem czy na ten stabilizator może być napięcie 6V lub 11V ?

Bo zrobiłem tak:

Cała płytkę już mam. Do stabilizator mam zamiar podłączyć zasilanie o napięciu 6 lub 11 V. Do procka przylutowałem odpowiednie kable od programatora z twojej strony, a napięcie na procka i masę mam z zasilacza ATX. CZy ten układ będzie działał ? A jeśli nie co może być przycyzną ?

Portret użytkownika Krzysztof

Kondensator strzelił.

Witam. Pomyliłem kable i kondensator strzelił. Ta cała elektronika chyba nie dla mnie. :( Możecie mi powiedzieć gdzie przy tych dwóch wejśćiach na VCC do stabilizaotra ma być + a gdzie - ? I jak to jest w zasilaczu: mam dwa kable jeden czarny drugi czarny z białym paskiem, który jest + a który - ?

-

Nowicjusz :)

Portret użytkownika serv_

RE: RGB

Witam!
Jak sam skrót Vcc wskazuje, będzie to +, natomiast zasilanie podłączasz tylko do nóżki 1 (+) i 2 (-) stabilizatora.
Zapewne ten z kreskami będzie +, ale ja jeszcze bym się upewnił sprawdzając miernikiem albo nawet zwykłą diodą LED z rezystorem.

Pozdrawiam!

P.S.
Najgorsze co można zrobić to zrezygnować ;)

-

-Mamo, zrób mi kanapkę.
-Sam sobie zrób.
-SUDO Mamo, zrób mi kanapkę.
-OK.

Portret użytkownika mirley

Re: Lampka RGB

Do "gosc" (proszę się zalogować albo chociaż podpisać) Nie możesz podłączyć zasilania z dwóch źródeł do płyki. Albo podłączasz zasilacz 11V do stabilizatora i on zapewnia Ci 5V na proceszorza. A od programatora (portu LPT) podłaczasz wszystkie linie sterujące i masę (GND) ale napięcia 5V z zasilacza ATX już nie! Drugim wyjściem jest podłaczenie wszystkiego z komputera, czyli linii sterujących wraz z GND i zasilania 5V bezpośrednio do procesora, ale wtedy stabilizator ma byc niepodłączony do napięcia. W przeciwnym wypadku możesz coś uszkodzić!!

Do Krzysztof: Zasilacz sprawdź tak jak zostalo już wcześniej napisane, Na schemacie na końcówkę IN (numer 1) ma być podłączony +. Dodatkowo jeśli wlutowałeś kondensatory zgodnie ze schematem montażowym to na kondensatorze (C3) jest napisane gdzie jest + a gdzie -

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Krzysztof

Sprostowanie.

Witam. Gość to ja lecz dopiero wczoraj się zarejestrowałem i kilka postów napisałem niezalogowanym. Mója płytka wygląda następująco:

Tam gdzie u Ciebie zielony i czarny kabel puściłem napięcie 6V, teraz już + i - będą dobrze. Do uC mam przylutowane linie programujące do odpowiednich pinów Attiny od odpowiednich pinaów portu LPT. Tylko teraz nie wiem bo płytka jest zasilona- a stabilizator wypscza napięcie 5V. Czy teraz uC jest zasilony ? I nie wiem co z tym teraz zrobić jak zaprogramować ? Gdzie uzyskam masę do programatora ?

-

Nowicjusz :)

Portret użytkownika mirley

Re: Lampka RGB

Jeśli mierzyłeś napięcie za stabilizatorem i względem GND jest 5V to jest ok. Dla pewności możesz przyłożyć sondy miernika między 20 a 10 pin mikrokontrolera, powinno być 5V (zgodnie ze schematem). Masa programatora jest na pinach złącza LPT. W opisie tutaj na pierwszym schemacie znajdziesz podłączenie LPT. Te zwarte piny od 18 do 25 w złączu stanowią masę programatora, którą masz dołączyć do masy procesora (GND).

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.