Elektroda.pl
Elektroda.pl
X
HELUPOWER
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Świąteczna choinka LED by BYRRT :)

byrrt 26 Lis 2007 21:08 17458 30
  • Świąteczna choinka LED by BYRRT :)

    Witam!

    Ponieważ zbliżają się święta naszło mnie na zrobienie takiego oto mini DIY ;)
    Rozpisywać się nie zamierzam, bo nie ma nad czym ale tak w skrócie.. Cały układ zmontowany jest powierzchniowo, płytka wykonana na zlecenie (metalizacja otworów, soldermaska i nadruk), całość sterowana z procesora ATMega8, 18 diod SMD w obudowach 0805 i 19sta 1206 trójkolorowa RGB (kolory zmieniane płynnie z 3ch PWM ATMegi). Program pisany w Bascom AVR. Prosty zasilacz liniowy na płytce. Początkowo powstała wersja z kolorowymi diodami, ale finalnie skończyło się na niebieskim i czerwonym (po prostu ładniej wygląda). Powstały 3 takie układy. Na dniach będą jeszcze wykonane do nich płytki z plexi z wzorem choinki rysowanej laserem.. Zamieszczę fotki jak tylko będę już je miał.. Prostota układu duża a jaka frajda.. :)
    Schematu nie mam, bo płytkę rysowałem „z głowy”. Do ściągnięcia projekt płytki w Eagle’u 4.15 oraz wsad do procka. Fusebit’y ustawić na wewnętrzny rezonator 8MHz. Na filmach kiepsko widać zmianę koloru diody RGB ale jest to tylko spowodowane ułomnością aparatu - noralnie fajno to wygląda.. Lepiej to widać na 2gim filmiku.. To chyba tyle.. :)

    Fotki:
    Świąteczna choinka LED by BYRRT :)Świąteczna choinka LED by BYRRT :)Świąteczna choinka LED by BYRRT :)Świąteczna choinka LED by BYRRT :)

    Oraz filmiki:


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    byrrt
    Poziom 21  
    Offline 
    Zajmuję się projektowaniem i wykonywaniem cyfrowych oraz analogowych układów elektronicznych. Pracuję w firmie projektowo produkcyjnej. Mam doświadczenie w naprawie precyzyjnych mechanizmów i elektroniki. Wykonuje urządzenia od A do Z od zarysu przez projekt, prototyp i programowanie do dokumentacji po-wykonawczej włącznie.
    Specjalizuje się w: układy cyfrowe i mikroprocesorowe
    byrrt napisał 697 postów o ocenie 781, pomógł 2 razy. Mieszka w mieście Bydgoszcz. Jest z nami od 2002 roku.
  • HELUPOWER
  • #2
    mkpl
    Poziom 37  
    No ładnie ;] niema sie do czego przyczepić ;)
    Ile cie wyniosło wykonanie plytek ??
  • #3
    DmZ
    Poziom 17  
    piękne ;) jak z fabryki.

    masz moze kawalek kodu w c, do obslugi wszystlich 3 pwm na mega8?
  • HELUPOWER
  • #4
    Marek_RADOM
    Poziom 18  
    Na pierwszy rzut oka fabryczna choinka. Naprawdę wykonanie mistrzowskie, mógłbyś wrzucić kod źródłówy w formacie .bas ? bo chciałem się nauczyć posługiwać PWM-ami.
  • #5
    renovatio-xtr
    Poziom 2  
    A ja mam takie pytanie, może nie fachowe, ale jestem tu nowy i dopiero zaczynam przygodę z elektroniką i tym forum. Mianowicie interesuje mnie gdzie i za ile można wykonać podobną płytkę drukowaną, gdyż mam własną koncepcję układu i potrzebuję tego typu płytki. Mordęga z kynarem odpada, bo ile to można się grzrebać... Z góry dzięki za odpowiedź.
  • #6
    Bogus105
    Poziom 16  
    a może wrzucisz kod C dla celów edukacyjnych? nie każdy marzy o zrobieniu takiej choinki, ale wielu marzy o opanowaniu PWM:D:D:D:D
    gdzie i za ile była robiona płytka??
  • #7
    byrrt
    Poziom 21  
    A więc jeżeli chodzi i płytki koszt wykonania wyniósł mnie 106zł razem z transportem dla 3ch sztuk.. Nie wiem czy podanie firmy nie jest jakoś nie zgodne z reg. Elektrody dlatego jeżeli jest ktoś zainteresowany proszę pisać na gg czy na maila lub domyśleć się gdzie wykonuje się PROTOTYPY ;)

    Co do źródeł nie chciałem ich publikować.. Mogę natomiast umieścić część odpowiedzialną za PWM który UWAGA - jest w tym przypadku programowy.. Nie korzystałem ze sprzętowego PWM o co chyba większości z Was chodziło ;) Nie ma tu generatora pseudolosowego i nie są losowane kolory tylko każdy z kolorów się cyklicznie rozjaśnia (każdy z inna prędkością) i ściemnia (ściemnia się szybciej lub wolniej niż rozjaśnia).. Tak pracujące 3 PWMy dają po prostu różne ciekawe kolory ;).

    Code:
    Load Timer1 , 1200
    
    Config Timer1 = Timer , Prescale = 256
    Load Timer1 , 1200

    Enable Interrupts
    Enable Timer1

    On Timer1 Change_colour

    Do
       Incr Counter_led
       If Counter_led < Compare_red Then Reset D2r Else Set D2r
       If Counter_led < Compare_green Then Reset D2g Else Set D2g
       If Counter_led < Compare_blue Then Reset D2b Else Set D2b
    Loop

    Change_colour:
       Load Timer1 , 1200

       If Dir_red = 0 Then
          Incr Compare_red
          If Compare_red > 250 Then Set Dir_red
       Else
          Decr Compare_red
          Decr Compare_red
          Decr Compare_red
          If Compare_red < 3 Then Reset Dir_red
       End If

       If Dir_green = 0 Then
          Incr Compare_green
          Incr Compare_green
          If Compare_green > 250 Then Set Dir_green
       Else
          Decr Compare_green
          If Compare_green < 1 Then Reset Dir_green
       End If

       If Dir_blue = 0 Then
          Incr Compare_blue
          Incr Compare_blue
          Incr Compare_blue
          If Compare_blue > 250 Then Set Dir_blue
       Else
          Decr Compare_blue
          Decr Compare_blue
          If Compare_blue < 2 Then Reset Dir_blue
       End If
    Return


    Jeszcze taka uwaga do Bogus105 - proszę czytać dokłądnie. Program pisany był w Bascom a nie C ;]
  • #10
    Karol966
    Poziom 30  
    wspaniała produkcja, domyślam się że wkrótce będą takie dostępna na allegro;)

    a co do PWM to wydaje mi się że nie stanowi żadnego problemu napisanie programu takiego regulatora nawet w asm, a dalej to już można by złożyć cały falownik wart 600pln :D
  • #11
    witexxx
    Poziom 10  
    super to jest ale prosze o schemacik!!!
  • #12
    Raffy
    Poziom 11  
    wlaśnie czegoś takiego szukam
    chcesz sprzedać tą choinke?- za ile?
  • #13
    pimpek_1991
    Poziom 10  
    Spoko wygląda ale jak dla mnie to troszeczke za drogo jak na taką małą płytke.
  • #14
    tranzystor1204
    Poziom 18  
    Na początek trochę krytyki...
    Rzeczywiście jak ktoś tu zauważył jest to kosztowna zabawka- zbyt kosztowna. I ja jakoś nie jestem zwolennikiem wykonywania pcb na zlecenie i później pokazywanie tego w DIY, bo to już wtedy nie jest DIY- podziwiem tych, którzy sami wykonują pcb
    A ogólnie konstrukcja bardzo fajna i ciekawa, ładnie wykonane
    6/6
    pozdrawiam
  • #15
    jgrupa
    Poziom 15  
    Zabrakło mi jeszcze jednego pytania: jakiej wielkości jest ta choinka?
  • #16
    tehaceole

    Poziom 28  
    Powiem szczerze, że nie zabardzo tam widzę działanie tego PWM jaki starasz sie generowac. Przynajmniej na filmiku widać jedynie migajace diody. A teoretycznie diody te powinny płynnie przygasać lub płynnie się rozjaśniać.


    Właśnie jestem na etapie tworzenia prezentu pod choinkę dla dziewczyny i w nim zastosowałem swojego pomysłu sposób generowania PWM. Program pisany w Assemblerze. Gdy skończę ten projekt też go wrzucę do DIY.

    Idea jaka przyświecała mi przy pisaniu tego programu doprowadziła do tego, że po kosmetycznych wręcz modyfikacjach mogę go używać jako sterownika do zasilacza lub falownika dużej mocy. Współczynnik wypełnienia jaki chcę osiągnąć wpisuję do rejestru R3. Poprzez modyfikowanie wartości tego rejestru w pętli głównej programu mogę uzyskać dowolny współczynnik wypełnienia z zakresu 0-255.

    Narazie przedstawiam fragment kodu mojego programu odpowiedzialny za płynne przygaszanie diod składających się na pewien napis. Może przyda się to komuś.


    Code:
     ;program napisany pod at89c2051
    
    ;programowy pwm uzyskany z wykorzystaniem timera1
    ;timer0 wykorzystany do powolnej zmiany wspolczynnika wypelnienia
    org 0
       ajmp   konfiguracja
    org 0bh
       ajmp    zwieksz
    org   1bh
       ajmp   pwm
    org 23h
       ajmp   start
    org   80h
    ;*********************************************************************   
    konfiguracja:   
       mov    ie,#10001010b
       mov    ip,#00001000b
       mov      tmod,#00000001b
       mov      r3,#120d          ;wypelnienie poczatkowe PWM
       mov    th0,#110d         ;szybkosc zmiany wypelnienia PWM
       mov    tl0,#0d
       mov    th1,#250d         ;czestotliwosc   PWM
       mov    tl1,#0d
       mov      p1,#0d             ;zerowanie portow
       mov      p3,#0d
       mov      tcon,#01010000b
    ;*********************************************************************
    ;poczatek programu
    ;
    ;w petli glownej programu w zaleznosci od potrzeb mozna umiescic
    ;wlasciwy program ktory np w reakcji na nacisniecie klawiszy dolaczonych
    ;do ktoregos z portow bedzie zwiekszac lub zmniejszac wspolczynnik wypelnienia
    ;poprzez inkrementacje lub dekrementacje rejestru r3
    ;
    ;w tym konkretnym przypadku plynna zmiana wspolczynnika wypelnienia
    ;jest realizowana w przerwaniu od timera0 (zwieksz), gdyz wlasnie
    ;takiego efektu potrzebowalem: procesor steruje ledami które maja
    ;plynnie sie wygaszac
    start:
       
       sjmp   start
    ;*********************************************************************
    zwieksz:
       push   acc
       dec      r3
       mov    th0,#110d         ;szybkosc zmiany wypelnienia PWM
       mov    tl0,#0d
       pop      acc
       reti
    ;*************************************************************************
    pwm:
       push   acc
       mov   a,r3
       mov   r1,a
       mov   a,#255d
       clr   c
       subb   a,r3
       mov   r2,a
       setb   p1.1            ;----|
       djnz   r2,$            ;      |--> zamieniajac miejscami komendy setb
       clr   p1.1             ;-----|     oraz clr uzyskamy płynne rozjasnianie
       djnz   r1,$            ;            diod
       mov    th1,#250d
       mov    tl1,#0d
       pop   acc
    reti
    ;*************************************************************************
       end
     
  • #17
    byrrt
    Poziom 21  
    Karol966 napisał:
    [...]a dalej to już można by złożyć cały falownik wart 600pln :D

    Uwierz, że do falownika to bardzo długa droga.. Akurat pracuje w firmie w której się takie drivery silników servo AC/DC robi.. Nie jest tak chop siup ;)

    witexxx - naucz się czytać.. Schematu nie ma i nie będzie..

    pimpek_1991 - jeżeli chciałbym tanio zrobiłbym coś zupełnie innego.. W tej pasji chyba nie o to chodzi żeby było najtaniej ;)

    tranzystor1204 - płytki wykonuje sam jeżeli jest to technicznie możliwe.. W pewnym jednak momencie staje się to już nie możliwe no chyba że ciągle chce się robić układy na 8051 na wielkich przewlekanych brzydkich płytkach.. Metalizacji otworów niestety zrobić się w domu nie da a przynajmniej jest to bardzo ciężkie (i droższe od zlecenia w firmie). W tym biznesie trzeba gonić za czołówką a nie zostawać w tyle.. Poza tym DIY to nadal jest bo projekt, program i montaż we własnym zakresie..

    jgrupa - płytka ma wymiary 60x90mm

    tehaceole - tyle razy proszę.. czyajcie ludzie najpierw (ze zrozumieniem) a potem piszcie.. PWM jest zastosowany tylko w diodzie RGB co wyraźnie widać przynajmniej na 2gim filmie.. Jeżeli miałbym coś poradzić.. Nie lepiej przesiąść się na chociażby ATMege8 (cena właściwie ta sama co 2051) i masz 3 sprzętowe PWM.. '51 już chyba bezpowrotnie zanika..

    A apropo falownika.. heh ;) Nie wiesz o czym mówisz :) PWM to nie wszystko.. Co więcej.. Czesto w falownikach stosowany jest sinus-PWM a tego tak prosto nie napiszesz ;) Do tego reg PID, pomiar prądu itp itd.. heh nie ma o czym gadac ;)

    Pozdrawiam
  • #18
    Gigantor
    Poziom 18  
    Witam.
    Z myślą o jakim zastosowaniu choinka została zbudowana? Chodzi mi o to że: jak chcieć ją powiesić na ścianie, to będzie dyndał przewód od zasilacza. Jeśli dorobić zasilanie bateryjne (koszyk z tył) stabilizacja nie jest potrzebna. Chyba, że zastosowanie samochodowe - to rozumiem.
  • #20
    tehaceole

    Poziom 28  
    Oczywiście, że można ułatwić sobie życie i zastosować układ ze sprzętowym PWM lub, jak w przypadku falowników, nawet dedykowany do np. zasilania silników, dajmy na to AT90PWM3.
    Tego PWM pod 51 napisałem jedynie dlatego, że chciałem zobaczyć czy da sie to w łatwy sposób zrobić. Niedawno znalazłem na forum temat w którymś ktoś narzekał jakie to trudne itp żeby uzyskać PWM programowy w 51... tymczasem programik wyszedł zgrabny i co najważniejsze działa. Z budową falownika w oparciu o ten program mogłem nieco przesadzić. Przyznaję Ci rację Byrrt. Zresztą z budową nawet zasilacza mogłem się również nieco zapędzić. 51 nie ma przetwornika A/D więc nie za bardzo nadaje się do takich celów.
  • #21
    iwan3000
    Poziom 16  
    Powiedzcie mi jak Wy to robicie, że takie małe elementy SMD są tak ładnie polutowane? Wydaje mi się, że w domowym zaciszu nie jest to łatwe. Elementy są przyklejane przed lutowaniem?

    tehaceole: mogłbyś mi wytłumaczyć jak konkretnie działa program, który zamieściłeś? Prosiłbym też o jakiś przykładowy schemacik dla diody RGB. Ostatnio zacząłem naukę programowania 51' w assemblerze i byłby to dla mnie bardzo ciekawy i rozwijający przykład.
  • #22
    tehaceole

    Poziom 28  
    niestety mój programik to jednokanałowy PWM. Generalnie zasada działania jest taka:

    Wartosc wypelnienia wpisywana jest do rejestru R3. W moim przypadku odbywa się to w konfiguracji wstepnej ukladow mikroprocka. Jenak umieszczajac w petli glownej fragment kodu powodujacy inkrementację lub dekrementację R3 w reakcji na dzialanie uzytkownika (wcisniecie klawisza) mozesz
    zmieniać sobie wsp wypełnienia "w locie"

    timer1 zadaje mi czestotliwość podstawowa przebiegu
    timer0 jest odpowiedzialny za powolne rozjasnianie diody podlaczonej do portu (dekrementacja r3)

    w obsludze przerwania od timera 1 wykonywane sa kolejno czynnosci:
    -odlozenie akumulatora na stos
    -zaladowanie wartosci z r3 do rejestru pomocniczego r1 z wykorzystaniem akumulatora
    -zaladowanie do akumulatora wartosci 255 dec
    -odjecie od akumulatora zawartosci r3
    -przeslanie wyniku do pomocniczego r2

    dalej juz tylko:
    -zmiana stanu portu
    -dekrementacja warunkowa r1
    -zmiana stanu portu
    -dekrementacja warunkowa r2

    nastepnie:
    -nadpisanie rejestrow licznika wartoscia czestotliwosci podstawowej (umownie... chodzi o ilosc cykli jakie zliczy timer)
    -przywrocenie akumulatora ze stosu
    koniec przerwania
  • #23
    Karol966
    Poziom 30  
    elementy smd zazwyczaj są na początku przyklejane (chodź nie jest to konieczne, można przytrzymać element np szpikulcem) a lutowanie to już sama przyjemność; oczywiście za pomocą stacji lutowniczej oraz lutownicy z cienkim grotem i cienką cyną, wszystko jest do zrobienia, tylko z początku wygląda tak strasznie i nie wiadomo za co się zabrać. Ponadto asm pod 51 jak na początek jest bbbbbbbb fajny ;)
    przypominam sobie te nieprzespane noce z powodu pisania coraz to ciekawszych programów a zacząłem od "mrygacza na dwie diody"
  • #24
    iwan3000
    Poziom 16  
    Karol966 napisał:
    elementy smd zazwyczaj są na początku przyklejane (chodź nie jest to konieczne, można przytrzymać element np szpikulcem) a lutowanie to już sama przyjemność; oczywiście za pomocą stacji lutowniczej oraz lutownicy z cienkim grotem i cienką cyną, wszystko jest do zrobienia, tylko z początku wygląda tak strasznie i nie wiadomo za co się zabrać. Ponadto asm pod 51 jak na początek jest bbbbbbbb fajny ;)
    przypominam sobie te nieprzespane noce z powodu pisania coraz to ciekawszych programów a zacząłem od "mrygacza na dwie diody"

    :cunning: Masz racje, assembler do łatwych nie należy, ale wybrałem go na początek, bo wydaje mi się że tylko tak zrozumiem, jak dokładnie i szczegółowo działa procek. Ostatnio zabrakło mi pomysłów na nowe "projekty edukacyjne" do zrobienia i chciałbym sobie to wypróbować :D

    Jak do tego projektu należy podłączyć te ledy? Wydaje mi się, że sygnał pwm powinien być raczej analogowy, a nie cyfrowy :) Trzeba tu zastosować jakiś przetwornik C/A? Jak czegoś nie rozumiem, to mnie poprawcie :)
  • #25
    Bogus105
    Poziom 16  
    jak to PWM analogowy? PWM-Pulse Width Modulation:modulacja szerokości impulsu, to takie cyfrowe rozwiązanie problemów z płynnym sterowaniem czymkolwiek za pomocą stanów cyfrowych. chyba że coś przeoczyłem.naj prostszy DAC możesz zrobić podłączając do nóżki na której ma PWM filtr RC i już masz 'analogowe'. w sterowaniu jasnością leda nie potrzebne to bo bezwładność ludzkiego wzroku załatwia sprawę zamiast filtra.
  • #26
    tehaceole

    Poziom 28  
    do iwan3000: chętnie Ci pomogę. Jak masz jakieś pytania to napisz na PW lub najlepiej załóż nowy temat bo troszkę zaczynamy autorowi tego projektu off topic robić.


    Byrrt: czy mógłbyś przedstawić jakieś rozwiązania układowe falowników jakimi się zajmujesz? Rozumiem, że obowiązuje Cię tajemnica zakładowa więc wszystkiego nie możesz pokazać, ale chociaż jakiś przykładowy układ.

    Pozdrawiam
  • #27
    byrrt
    Poziom 21  
    Z lutowaniem elementów SMD wg. mnie jest znacznie łatwiej niż lutowanie przewlekanych! Szczególnie np takiego proca którego lutuje się 4ema przejazdami lutownicy po nóżkach i elegancja francja ;).. Żadnego kleju nie stosuje - stosuje się go tylko wtedy gdy płytka obsadzana jest 2stronnie i lutowana w piecu smd..

    Co do pytania tehaceole to chętnie opowiem ale na prv.. Taka dyskusja chyba byłaby off topic ;) Ogólnie jednak taki falownik to w przypadku naszej firmy dość skomplikowane 2 płytki.. Na tej sterującej jest procek (ARM) oraz Xilinx (jest to coś w rodzaju układu PLD tylko, że znacznie szybszy, bardziej skomplikowany i z większymi możliwościami).. Całym PWM zajmuje się właśnie on.. Dochodzi do tego ciągła kontrola prądu, kontrola z enkodera na silnikach (drivery te stosowane są np w frezarkach CNC stąd konieczność ciągłej kontroli pozycji wirnika).. Ustawianie pozycji wirnika przy stacje maszyny, ciagla kontrola predkosci, pradu i napięcia (PID).. Temat na osobne forum ;)

    Pozdrawiam[/b]
  • #28
    Karol966
    Poziom 30  
    falownikami bawiłem się na pracowni specjalizacji automatyki w technikum, falowniki były jak na moje, dość wypasione, (jeden z nich miał radiator na całej powierzchni obudowy o wymiarach ok A4) i żaden z nich nie wyglądał na taki bbb skomplikowany i niemożliwy do zrobienia w zaciszu domowego warsztatu. Moją uwagę zwróciło najbardziej urządzenie coś w stylu przetwornicy napięcia z jednofazowego(230V) na trój fazowe(400V)
  • #29
    byrrt
    Poziom 21  
    Ja pisałem wykonujemy nie tyle falowniki (które są faktycznie znacznie prostrze) ale drivery silników servo.. Mogą one jednak pracować jako zwykłe falowniki.. Nie miejsce to i czas na takie dyskusje ale naprawdę wiele trzeba wiedzieć, żeby program do takiego falownika napisać (sam się o tym przekonałem po miesiącach pracy.. a koledzy lat pracy). Szczególnie jeżeli operujemy dużymi mocami i napięciami (dochodzą do tego zakłucenia, wartości graniczne elementów i szybkość całego układu)..

    Temat zaczyna się robić troche off topic..
  • #30
    byrrt
    Poziom 21  
    Temat trochę podumarł a obiecałem przecież dorzucić fotki ;)

    Choinka doczekała się w końcu swojej plexy i wygląda wg. mnie całkiem nieźle.. Niestety trudno sfotografować efekt aparatem tak aby chociaż trochę oddawał to jak to wygląda naprawdę.. Plexi była wypalana laserem (coś w rodzaju frezarki CNC tyle że z głowicą laserową)..

    Załączam fotki:
    Świąteczna choinka LED by BYRRT :)Świąteczna choinka LED by BYRRT :)Świąteczna choinka LED by BYRRT :)Świąteczna choinka LED by BYRRT :)

    I całość:
    Świąteczna choinka LED by BYRRT :)Świąteczna choinka LED by BYRRT :)Świąteczna choinka LED by BYRRT :)

    Czekam na finalne opinie i pozdrawiam :)