logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Oświetlenie RGB, sterownik w oparciu o AVR

Krychol rc 19 Paź 2011 22:12 3206 9
  • #1 10045158
    Krychol rc
    Poziom 22  
    Witam

    Chcę sobie zrobić 4 reflektory z diodami 3W na imprezy.
    Pomysł padł aby wykorzystać jakiś mikrokontroler AVR.
    Czy zna ktoś projekt sterownika diodami RGB w rytm basu ?
    Chodzi o to żeby mikrofon zbierał dźwięki z otoczenia przepuszczał poprzez filtr dolnoprzepustowy a następnie podawał na wejście uC, który przykładowo będzie zmieniał kolor na losowy przy każdym uderzeniu basu.
    Ostatnio wykonałem płytkę testową i mogę na niej zbudować próbny układ lecz nie czuję się na siłach aby napisać program do losowego zmieniania koloru diod przy każdym uderzeniu basu.
    Czy znalazła by się osoba która napisała by chociaż część programu w BASCOM aby przykładowo dioda RGB zmieniała kolor przy naciśnięciu np. jakiegoś switcha ?
    Był bym bardzo wdzięczny a z resztą bym już sobie poradził.

    Ogólnie to mam na myśli skonstruowanie czegoś takiego:

    Oświetlenie RGB, sterownik w oparciu o AVR

    Z góry dziękuję i pozdrawiam.
  • Pomocny post
    #2 10045365
    And!
    Admin grupy Projektowanie
    Czy kolorami RGB chcesz sterować włącz/wyłącz czy płynnie,
    zmieniając ich jasność na PWM ?

    W przypadku włącz wyłącz najprościej zrobić tak:


    Kod: text
    Zaloguj się, aby zobaczyć kod


    Nazwa bass może być aliasem dla pinu na którym pojawia się stan wysoki (np. pind.1),
    lub wynikiem bardziej złożonego warunku.

    Nazwa Red itd. może być aliasem na porty sterujące diodami (np portc.1).

    Przy sterowaniu PWM mamy do wykorzystania wartość N-bitową
    (w zależności od rozdzielczości PWM) od której wartości zależy jasność świecenia.

    Z bardziej zaawansowanych rzeczy, można zastanawiać się nad implementacją
    DFT, FFT do wykrywania pulsowania amplitudy na określonym paśmie częstotliwości.







  • #3 10045452
    Krychol rc
    Poziom 22  
    Dziękuję za odpowiedź lecz nie wiem czy coś źle zrobiłem ale program nie nie działa.
    Dodam jeszcze że switch po naciśnięciu u mnie na płytce testowej ma stan iski i stanem niskim również są załączane diody rgb.
    Co do sterowania PWM to było by super gdyby program losowo po naciśnięciu np dawał, fioletowy, pomarańczowy, zielony, żółty, biały, niebieski itd, a nie tylko niebieski lub zielony lub czerwony.

    Program (nie działa):

    Config Portb = 255
            Portb = 255
    Config Portd = &B0000000
            Portd = &B1111111
    
    
    DIM tmp as byte
    
    Do
    
     If Pind.0 = 0 Then
    
      Tmp = Rnd(2)           '50% szans trafienia
    
      If Tmp = 0 Then
       set portb.0
      else
       Reset Portb.0
      End If
    
      Tmp = Rnd(3)           '33% szans trafienia
    
      End If
    
    
     If Pind.0 = 0 Then
    
      Tmp = Rnd(2)           '50% szans trafienia
    
      If Tmp = 0 Then
       Set Portb.1
      else
       Reset Portb.1
      End If
    
      Tmp = Rnd(3)           '33% szans trafienia
    
      End If
    
       If Pind.0 = 0 Then
    
      Tmp = Rnd(2)           '50% szans trafienia
    
      If Tmp = 0 Then
       Set Portb.2
      else
       Reset Portb.2
      End If
    
      Tmp = Rnd(3)           '33% szans trafienia
    
     End If
    
    Loop
    
    End
    


    Z całym oświetleniem chodzi mi o uzyskanie efektu reflektorów PAR.

    Z góry dziękuję za odpowiedź.
  • Pomocny post
    #4 10045501
    And!
    Admin grupy Projektowanie
    Nie mam obecnie kompilatora,
    ale na początek sprawdź najprostszy test
    dla portb.3 czyli negacja stanu pind.0
    PWM warto się zainteresować.


    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #5 10048533
    Krychol rc
    Poziom 22  
    Sprawdziłem właśnie powyższy program i działa na zasadzie zapalenia diody przy włączeniu i gdy nacisnę i trzymam switch PD.0 zwarty do masy to dioda gaśnie, zapala ponownie się po puszczeniu switcha.
  • Pomocny post
    #6 10051486
    And!
    Admin grupy Projektowanie
    Może to przez brak opóźnienia w pętli głównej o którym zapomniałem.

    Można także zastosować wykomentowany kod oczekiwania na "zanik basu".

    Czy możesz pokazać schemat układu testowego ?

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    #7 10052518
    Konto nie istnieje
    Poziom 1  
  • #8 10055593
    Krychol rc
    Poziom 22  
    Postanowiłem dać sobie spokój i zastanawiam się czy nie lepiej by było sterować tym poprzez program komputerowy i interfejs USB -> DMX.
    Scheamat zaczerpnął bym z tej strony:

    http://www.hypex.sk/index.php?action=Konstrukcie/DMX2RGB/DMX2RGB.htm

    Czy mógł by mi ktoś przekompilować program na HEX w asemblerze na ATtiny2313 ustawiając porty tak (do samych testów bo posiadam płytkę testową na ATtiny2313 i chciał bym to sprawdzić):

    -P1.0 = PB.0
    -P1.1 = PB.1
    -P1.2 = PB.2
    -P1.3 = PB.3
    -P1.4 = PB.4
    -P1.5 = PB.5
    -P1.6 = PB.6
    -P1.7 = PB.7

    -P3.0 = PD.0
    -P3.1 = PD.1
    -P3.2 = PD.2
    -P3.3 = PD.3
    -P3.4 = PD.4
    -P3.5 = PD.5
    -P3.7 = PD.6

    oraz przekompilować na AT89C2051 bo oficjalnie na nich będę wykonywał ten projekt gdyż są tańsze.

    Proszę o to kogoś gdyż nie znam się na asemblerze.

    Głównie zależy mi mw. na takim efekcie (patrz tylko na reflektory PAR):

    http://www.youtube.com/watch?v=0liGU2x4cZU&feature=fvwrel

    Więc nie będę kombinował tak jak na początku bo to nie da takiego efektu.

    I jeszcze jedno pytanie czy za pomocą jednego interfejsu DMX USB będzie można podłączyć 4 PAR-y LED a każdy będzie wykonywał swoje polecenia jak na filmiku ?

    Z góry dziękuję i pozdrawiam
  • #9 10056356
    And!
    Admin grupy Projektowanie
    ATtiny2313 i AT89C2051 to dwie różne architektury,
    kod w asm potraktowałbym jako schemat rozwiązania,
    jest bardzo przejrzyście napisany i dobrze skomentowany.

    Można by się pokusić o poszukanie programu tłumaczącego
    asm 8051 na C i analizować program w C.
    Jednak myślę że bardziej efektywne będzie wydrukowanie
    sobie listy rozkazów i rejestrów 8051 i przeanalizowanie programu,
    a następnie napisanie go od nowa na AVR.

    PWM w ATtiny2313 możesz obsługiwać w całości sprzętowo,
    są dwa wyjścia na liczniku 8b i dwa na 16b.
  • #10 10059395
    Krychol rc
    Poziom 22  
    Wybieram się jutro do sklepu po 2051 i będę na nim przeprowadzał testy.
    Czy mógł bym jednak prosić o przkompilowanie tego programu na hex ponieważ mi podczas kompilacji wyskakują błędy i nie wiem jak je poprawić, a nie mam zbytnio teraz ochoty na naukę asemblera po to by przekompilować na szybko program.
    Wiem, że dla kogoś kto się zna na asm to dla niego jest to minuta roboty, i będę za to bardzo wdzięczny.

    Pozdrawiam
REKLAMA