INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(
Witam.
Pewnego dnia siedząc w szkole zauważyłem roślinkę w szklance. Roślina ta nie miała ziemi lecz żelkulki z kwiaciarni. Nagle przyszła mi do głowy pewna myśl aby taki wazon podświetlić ledami. Ledy i kulki posiadałem więc szybko zacząłem prace. Po rozpuszczeniu kulek w słoiku z wodą miksturę wlałem do szklanki zwiniętej mamie. Szklanka była dość łysa więc na wierzch położyłem jakąś roślinę. Efekt był taki.
Jak widać całkiem dobrze. Następnie została tylko elektronika i obudowa.
Układ jest dość prosty jego prostotę ukażę w rysunku którego wykonałem w programie fritzing. Przepraszam za jakość ale to mój pierwszy projekt w tym programie.
Oznaczenia rezystorów na rysunku powyżej są błędne dlatego podaję ich wartości.
Łączący pierwszą nóżkę BUZ’a z masą – 10R
Łączący pierwszą nóżkę BUZ’a z Atmegą 8 – 47K
Na płytce widać jeszcze kilka zbędnych elementów, ponieważ w najbliższym czasie chcę wykonać płytkę drukowaną.
Potem musimy zrobić jeszcze podstawkę.
Najlepiej wykonać ją z jakiegoś sztywnego plastiku i owinąć ją jakąś wstążką. Moja wygląda tak.
Nie jest ona perfekcyjna ale spełnia swoją rolę.
Teraz przyszła pora na programowanie. Kod napisany jest w BASCOMIE, bo to jedyny język który ogarniam.
Dodatkowo należy przestawić fusebity w Atmedze aby jej wewnętrzny oscylator działał na 8Mhz.
UWAGA
Kod nie jest mój. Znalazłem go gdzieś w necie i przerobiłem. Sam nie mogłem wymyślić jak zrobić tak aby kolory nie świeciły się w tych samych momentach, dlatego zaczerpnąłem kod z neta. Jest on przystosowany do 3 kolorów lecz ja wykorzystuję tylko dwa biały i czerwony. W bliskiej przyszłości planuję dodać kolor niebieski albo zielony.
Oto kod programu.
$regfile = "m8def.dat" $crystal = 8000000 Config Pinb.1 = Output Config Pinb.2 = Output Config Pinb.3 = Output Dim A As Byte Dim S As Byte Dim D As Byte Enable Interrupts Enable Timer2 Enable Timer1 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 8 Config Timer2 = Pwm , Prescale = 8 , Compare = Toggle , Pwm = On , Compare Pwm = Clear Down Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Cls S = 0.01 D = S + 35 Deflcdchar 1 , 32 , 32 , 32 , 32 , 31 , 32 , 32 , 32 ' replace ? with number (0-7) Deflcdchar 2 , 32 , 32 , 32 , 32 , 30 , 2 , 2 , 2 ' replace ? with number (0-7) Deflcdchar 3 , 2 , 2 , 2 , 2 , 30 , 32 , 32 , 32 ' replace ? with number (0-7) Deflcdchar 4 , 8 , 8 , 8 , 8 , 15 , 32 , 32 , 32 ' replace ? with number (0-7) Deflcdchar 5 , 32 , 32 , 32 , 32 , 15 , 8 , 8 , 8 ' replace ? with number (0-7) Lcd " TEST KOLOROW " Waitms 150 Cls Locate 1 , 2 Ocr1a = 255 Ocr1b = 0 Ocr2 = 0 Lcd " Red" Waitms 150 Cls Ocr1a = 0 Ocr1b = 255 Ocr2 = 0 Lcd " Green" Waitms 150 Cls Ocr1a = 0 Ocr1b = 0 Ocr2 = 255 Lcd " Blue" Waitms 150 Do Waitms D Locate 1 , 15 : Lcd " " Locate 1 , 16 : Lcd " " Locate 2 , 16 : Lcd " " Locate 2 , 15 : Lcd " " Locate 2 , 14 : Lcd " " Locate 2 , 13 : Lcd " " Locate 2 , 12 : Lcd " " For A = 0 To 255 Ocr1a = A Ocr2 = 255 - A Waitms S Locate 1 , 2 : Lcd "Blue" Locate 1 , 12 : Lcd "Red" Locate 2 , 7 : Lcd "Green" If A = 42 Then Locate 1 , 6 : Lcd Chr(1) End If If A = 84 Then Locate 1 , 7 : Lcd Chr(1) End If If A = 126 Then Locate 1 , 8 : Lcd Chr(1) End If If A = 168 Then Locate 1 , 9 : Lcd Chr(1) End If If A = 210 Then Locate 1 , 10 : Lcd Chr(1) End If If A = 248 Then Locate 1 , 11 : Lcd Chr(1) End If Next A 'blue -> red Waitms D Locate 2 , 6 : Lcd " " Locate 2 , 5 : Lcd " " Locate 2 , 4 : Lcd " " Locate 2 , 3 : Lcd " " Locate 2 , 2 : Lcd " " Locate 2 , 1 : Lcd " " Locate 1 , 1 : Lcd " " For A = 0 To 255 Ocr1b = A Ocr1a = 255 - A Waitms S Locate 1 , 12 : Lcd "Red" Locate 2 , 7 : Lcd "Green" Locate 1 , 2 : Lcd "Blue" If A = 36 Then Locate 1 , 15 : Lcd Chr(1) End If If A = 72 Then Locate 1 , 16 : Lcd Chr(2) End If If A = 108 Then Locate 2 , 16 : Lcd Chr(3) End If If A = 144 Then Locate 2 , 15 : Lcd Chr(1) End If If A = 180 Then Locate 2 , 14 : Lcd Chr(1) End If If A = 216 Then Locate 2 , 13 : Lcd Chr(1) End If If A = 248 Then Locate 2 , 12 : Lcd Chr(1) End If Next A 'red -> green Waitms D Locate 1 , 6 : Lcd " " Locate 1 , 7 : Lcd " " Locate 1 , 8 : Lcd " " Locate 1 , 9 : Lcd " " Locate 1 , 10 : Lcd " " Locate 1 , 11 : Lcd " " For A = 0 To 255 Ocr2 = A Ocr1b = 255 - A Waitms S Locate 1 , 12 : Lcd "Red" Locate 2 , 7 : Lcd "Green" Locate 1 , 2 : Lcd "Blue" If A = 36 Then Locate 2 , 6 : Lcd Chr(1) End If If A = 72 Then Locate 2 , 5 : Lcd Chr(1) End If If A = 108 Then Locate 2 , 4 : Lcd Chr(1) End If If A = 144 Then Locate 2 , 3 : Lcd Chr(1) End If If A = 180 Then Locate 2 , 2 : Lcd Chr(1) End If If A = 216 Then Locate 2 , 1 : Lcd Chr(4) End If If A = 248 Then Locate 1 , 1 : Lcd Chr(5) End If Next A 'green -> blue Waitms D Locate 1 , 15 : Lcd " " Locate 1 , 16 : Lcd " " Locate 2 , 16 : Lcd " " Locate 2 , 15 : Lcd " " Locate 2 , 14 : Lcd " " Locate 2 , 13 : Lcd " " Locate 2 , 12 : Lcd " " For A = 0 To 255 Ocr1b = A Ocr2 = 255 - A Waitms S Locate 1 , 2 : Lcd "Blue" Locate 1 , 12 : Lcd "Red" Locate 2 , 7 : Lcd "Green" If A = 85 Then Locate 1 , 6 : Lcd Chr(1) End If If A = 170 Then Locate 1 , 7 : Lcd Chr(1) End If If A = 248 Then Locate 1 , 8 : Lcd Chr(2) End If Next A 'Blue - > Green Waitms D Locate 2 , 6 : Lcd " " Locate 2 , 5 : Lcd " " Locate 2 , 4 : Lcd " " Locate 2 , 3 : Lcd " " Locate 2 , 2 : Lcd " " Locate 2 , 1 : Lcd " " Locate 1 , 1 : Lcd " " For A = 0 To 255 Ocr1a = A Ocr1b = 255 - A Waitms S Locate 1 , 12 : Lcd "Red" Locate 2 , 7 : Lcd "Green" Locate 1 , 2 : Lcd "Blue" If A = 36 Then Locate 1 , 10 : Lcd Chr(5) End If If A = 72 Then Locate 1 , 11 : Lcd Chr(1) End If Next A 'green -> red Waitms D Locate 1 , 6 : Lcd " " Locate 1 , 7 : Lcd " " Locate 1 , 8 : Lcd " " For A = 0 To 255 Ocr1b = A Ocr1a = 255 - A Waitms S Locate 1 , 12 : Lcd "Red" Locate 2 , 7 : Lcd "Green" Locate 1 , 2 : Lcd "Blue" If A = 36 Then Locate 1 , 15 : Lcd Chr(1) End If If A = 72 Then Locate 1 , 16 : Lcd Chr(2) End If If A = 108 Then Locate 2 , 16 : Lcd Chr(3) End If If A = 144 Then Locate 2 , 15 : Lcd Chr(1) End If If A = 180 Then Locate 2 , 14 : Lcd Chr(1) End If If A = 216 Then Locate 2 , 13 : Lcd Chr(1) End If If A = 248 Then Locate 2 , 12 : Lcd Chr(1) End If Next A 'red -> green Waitms D Locate 1 , 10 : Lcd " " Locate 1 , 11 : Lcd " " For A = 0 To 255 Ocr2 = A Ocr1b = 255 - A Waitms S Locate 1 , 12 : Lcd "Red" Locate 2 , 7 : Lcd "Green" Locate 1 , 2 : Lcd "Blue" If A = 36 Then Locate 2 , 6 : Lcd Chr(1) End If If A = 72 Then Locate 2 , 5 : Lcd Chr(1) End If If A = 108 Then Locate 2 , 4 : Lcd Chr(1) End If If A = 144 Then Locate 2 , 3 : Lcd Chr(1) End If If A = 180 Then Locate 2 , 2 : Lcd Chr(1) End If If A = 216 Then Locate 2 , 1 : Lcd Chr(4) End If If A = 248 Then Locate 1 , 1 : Lcd Chr(5) End If Next A 'green -> blue Loop End
Po zaprogramowaniu procesora lampka jest praktycznie gotowa. Pozostało tylko podziwiać efekt.
Proszę o wyrozumiałość, ponieważ jest to mój pierwszy wpis na tym forum, a ja mam tylko 13 lat.
LINK do filmu z lampką.
Mam nadzieję, że się podobało i ktoś postanowi coś takiego zrobić.
Pozdrawiam.
Alan Bejnarowicz
INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(
Kod programu wrzuć jako kod (w edytorze masz bodajże taki przycisk: ), w fritzing troszkę przesadziłeś. Z tego co ja wyczytałem to przy MOSFET N używasz rezystora pull-down, i w ciemno możesz dawać z zakresu 47k-100k. A 10R to chyba powinno byc połączenie uC z MOSFETEM :) Na ostatnim zdjeciu słabo widać :C Ale jako że masz 13 lat, to 4 dostaniesz :)
Może ocenię cię trochę za ostro, ale moim zdaniem kilka elementów to przejaw formy nad treścią.
Zamiast stosować 12v jako zasilanie, można użyć od razu zasilacza 5v – można wtedy pominąć stabilizator napięcia.
Podobnie z tranzystorami mocy BUZ 11. Nie rozumiem sensu używania tego tranzystora do sterowania diodą. Nie wiem jakich diod używasz, ale dla zdecydowanej większości wystarczyłby dwadzieścia razy tańszy BC547.
W kodzie masz zaznaczone, że używasz kwarcu 8MHz, na schemacie go nie widać.
Jeśli chodzi o schemat – totalny chaos, nie widać kompletnie niczego, brak filtrowania zasilania, zamiast tranzystorów dałeś elementy ‘v reg’ o których nic nie wiadomo, nie zaznaczyłeś wartości rezystancji.
Mogłeś zaznaczyć, w jakim języku jest kod napisany, w takiej formie się raczej nikomu nie przyda.
Ale mimo wszystko efekt końcowy mi się podoba ;)
Witam. Na obrazku nie widać rezonatora, ponieważ procek ma przestawione fusy. Zasilany jest 12v , bo taśmy led są na 12v. Jeszcze jak ktoś mógłby mi powiedzieć jak zrobić takie okienko do kodu, bo tak poprostu wklejony kod ciężko się czyta.
Ode mnie 5 nie za to, że projekt powalił mnie na kolana pomysłowością i wykonaniem ale za udowodnienie wszystkim, iż to nie wiek definiuje wiedzę człowieka. Chęci, wytrwałość i umiejętność wyszukiwania informacji w internecie to klucz do sukcesu. Regularnie czytam forum, mimo mojej podstawowej wiedzy z zakresu elektrotechniki czy mechaniki zadawane czasem pytania swoim poziomem powalają mnie na kolana. Zastanawiam się wtedy czy to jeszcze kwestia lenistwa czy już powszechna ignorancja. Nie poprzestawaj na tym projekcie, mile mnie zaskoczyłeś. Powodzenia w kolejnych realizacjach ;)
5+ ode mnie za pomysł, wykonanie i wiedzę. Ja w Twoim miałem za sobą pierwszy wzmacniacz lampowy.
Efekty świetlne to naprawdę widowiskowa rzecz, którą każdy zauważa, a nie każdy ma pojęcie jak to zrobić.
Witam.Ja zbudowałem już 2 wzmacniacze. Jeden około 5 wat, a drugi 20 wat.
Pierwszy jest całkowicie zbudowany samodzielnie łącznie z płytką, a
następny to kit AVT.