Witam wszystkich. W oryginalnym projekcie lampki uzyty zostal Attiny2313. Poniewaz akurat nie posiadalem takiego, postanowilem dostosowac projekt projekt do Attiny24. Posiada on mniej wyprowadzen dlatego uzylem tylko jednej diody RGB. Najwiecej problemow sprawila obsluga klawiatury, poniewaz w oryginalnym projekcie byla na osobnym porcie, u mnie natomiast musiala byc na tym samym co dioda RGB. Program w Bascomie: '************* Konfiguracja uC ***************** '*********************************************** $regfile = "attiny24.dat" $crystal = 20000000 Config Porta = &B00000111 : Porta = &B11111111 Config Pinb.2 = Output : Portb.2 = 1 'dioda info' Config Timer0 = Timer , Prescale = 8 Enable Timer0 : On Timer0 Prztimer0 Enable Interrupts '********** Konfiguracja uC Koniec ************ '****************** Nazwy ******************* '*********************************************** Rd Alias Porta.0 Gd Alias Porta.1 Bd Alias Porta.2 Syg_led Alias Portb.2 Sw_port Alias Pina '************* Nazwy Koniec **************** '****************** Zmienne ******************* '*********************************************** Dim Licznik As Byte Dim Klawiatura 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 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 Else Set Rd End If If Licznik < Gled Then Reset Gd Else Set Gd End If If Licznik < Bled Then Reset Bd Else Set Bd 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: Klawiatura = Sw_port And &B11111000 'to trzeba dopisa? If Klawiatura = &B11110000 Then If Szybkosc > 1 Then Decr Szybkosc 'plus If Klawiatura = &B11101000 Then If Szybkosc < 40 Then Incr Szybkosc 'minus If Klawiatura = &B11100000 Then 'plus i minus Stopbit = Not Stopbit Syg_led = 1 End If If Klawiatura = &B01111000 Then ' R Pozycja = 700 Gosub Pozycja_do_rgb End If If Klawiatura = &B10111000 Then ' G Pozycja = 400 Gosub Pozycja_do_rgb End If If Klawiatura = &B11011000 Then ' B Pozycja = 100 Gosub Pozycja_do_rgb End If If Klawiatura = &B00111000 Then ' R G Rled = 100 Gled = 100 Bled = 0 End If If Klawiatura = &B10011000 Then ' G B Rled = 0 Gled = 100 Bled = 100 End If If Klawiatura = &B01011000 Then ' R B Rled = 100 Gled = 0 Bled = 100 End If If Klawiatura = &B00011000 Then ' R G B Rled = 100 Gled = 100 Bled = 100 End If If Klawiatura = &B01110000 Then 'plus R If Rled < 100 Then Incr Rled End If If Klawiatura = &B01101000 Then 'minus R If Rled > 0 Then Decr Rled End If If Klawiatura = &B10110000 Then 'plus G If Gled < 100 Then Incr Gled End If If Klawiatura = &B10101000 Then 'minus G If Gled > 0 Then Decr Gled End If If Klawiatura = &B11010000 Then 'plus B If Bled < 100 Then Incr Bled End If If Klawiatura = &B11001000 Then 'minus B If Bled > 0 Then Decr Bled End If If Klawiatura = &B01100000 Then ' plus minus R Animacja = 0 End If If Klawiatura = &B10100000 Then ' plus minus G Animacja = 1 End If If Klawiatura = &B11000000 Then ' plis minus B Animacja = 2 End If Waitms 50 Return
|
|||
Pokaż zdjęcia efektu
Pokaż zdjęcia efektu końcowego :)
Fotografia, Linux, programowanie, python.. czyli strona domowa || Galeria fotografii http://galeria.firlej.org
zdjęcia efektu
Narazie moge pokazac dzialajacy projekt, jednak jeszcze nie wymyslilem obudowy.
Akurat nie mam teraz zasilacza od lampki, wiec podpialem na szybko do regolowanego:
pozdrawiam
Re: Mini Lampka RGB 2 na Attiny24
moje zdanie na ten temat:
ogólnie projekt ok, ale:
- płytka wykonana dość niechlujnie (nie mówię że ja robię super płytki)
- strasznie dużo cyny po polutowaniu wszystkiego
- jeśli masz procek w wersji przewlekanej to po co wchodziłeś w smd z resztą elementów?
całość wyglądała by o wiele lepiej jako wersja przewlekana.
ogólnie na plus.
Moja strona w powijakach
Dzieki za opinie. Polutowane
Dzieki za opinie.
Polutowane niechlujnie bo meczylem sie troche z pinami od programowania. Nie chcialem ich wyrwac razem za sciezkami przy odlaczniu programatora. Dlatego dalem tyle cyny.
Calosc bedzie jeszcze na koniec pomalowana lakierem do PCB.
Co do komponentow, to plytka byla projektowana do razu pod czesci, ktore posiadalem czyli z odzysku.
pozdrawiam