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.