Witam.Posiadam kod do sterowania diodą rgb przez pilota rc5.W pierwotnej wersji był on pod Atmege8,ale że posiadam atmege32 zdeklarowałem listing pod ten układ.Problem polega na tym iż świecą się trzy kolory jednoczęśnie i żadnej reakcji,czy ktoś może sprawdzić czy kod jest poprawny?.I jeszcze jedno czy Tranzystor BD136 wystarczy do wysterowania kolorami diody mocy 1W (teoretycznie powinno wystarczyć bo bd136 jest 12,5 Watowy) ale jak z grzaniem tranzystora? $regfile = "m32def.dat" $crystal = 16000000 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1 Config Timer2 = Pwm , Async = Off , Pwm = On , Compare Pwm = Clear Down , Prescale = 1 Pwm1a = 255 Pwm1b = 255 Ocr2 = 255 Dim R As Byte Dim G As Byte Dim B As Byte Dim I As Byte Config Int0 = Low Level Config Rc5 = Pind.2 On Int0 Pobr_rc5 Dim Address As Byte Dim Address1 As Byte Dim Command As Byte Dim Command1 As Byte Enable Interrupts Enable Int0 Address1 = 255 Command1 = 255 Cls R = 255 G = 255 B = 255 Do Locate 1 , 1 Lcd "Adres: " ; Address1 ; " " Locate 2 , 1 Lcd "Komenda: " ; Command1 ; " " Enable Int0 Select Case Command1 Case 1 : R = 170 G = 255 B = 255 Pwm1a = R Pwm1b = G Ocr2 = B Case 2 : G = 50 R = 255 B = 255 Pwm1b = G Pwm1a = R Ocr2 = B Case 3 : B = 50 R = 255 G = 255 Ocr2 = B Pwm1a = R Pwm1b = G Case 4 : R = 170 G = 50 B = 255 Pwm1a = R Pwm1b = G Ocr2 = B Case 5 : R = 170 G = 255 B = 50 Pwm1a = B Pwm1b = G Ocr2 = B Case 6: R = 255 G = 50 B = 50 Pwm1a = R Pwm1b = G Ocr2 = B Case 7: Pwm1a = 170 Pwm1b = 50 Ocr2 = 50 Case 8 : Pwm1a = 255 Pwm1b = 255 Ocr2 = 255 For Pwm1a = 254 To 170 Step -1 Waitms 40 R = Pwm1a If Command1 <> 8 Then Exit For End If Next Pwm1a For Pwm1a = 170 To 254 Step 1 Waitms 40 R = Pwm1a If Command1 <> 8 Then Exit For End If Next Pwm1a For Pwm1b = 254 To 50 Step -1 Waitms 17 G = Pwm1b If Command1 <> 8 Then Exit For End If Next Pwm1b For Pwm1b = 50 To 254 Step 1 Waitms 17 G = Pwm1b If Command1 <> 8 Then Exit For End If Next Pwm1b For Ocr2 = 254 To 50 Step -1 Waitms 17 B = Ocr2 If Command1 <> 8 Then Exit For End If Next Ocr2 For Ocr2 = 50 To 254 Step 1 B = Ocr2 Waitms 17 If Command1 <> 8 Then Exit For End If Next Ocr2 Case 9: R = Rnd(84) R = R + 170 G = Rnd(204) G = G + 50 B = Rnd(204) B = B + 50 For I = 0 To 100 Pwm1a = R Pwm1b = G Ocr2 = B Waitms 40 If Command1 <> 9 Then Exit For End If Next Case 32: If R = 170 Then R = 171 End If R = R - 1 Command1 = 100 Case 33: If R = 255 Then R = 254 End If R = R + 1 Command1 = 100 Case 16: If G = 50 Then G = 51 End If G = G - 1 Command1 = 100 Case 17: If G = 255 Then G = 254 End If G = G + 1 Command1 = 100 Case 22: If B = 50 Then B = 51 End If B = B - 1 Command1 = 100 Case 21: If B = 255 Then B = 254 End If B = B + 1 Command1 = 100 Case 12: R = 255 G = 255 B = 255 Pwm1a = R Pwm1b = G Ocr2 = B Case 100: Pwm1a = R Pwm1b = G Ocr2 = B End Select Loop End Pobr_rc5: Disable Int0 Enable Interrupts Getrc5(address , Command) Command = Command And &B01111111 If Address < 255 Then Address1 = Address Command1 = Command End If Return
|
|||
Re: rgb
Wydaje mi się że w kodzie brakuje Ci komend od włączenia timerów, gdzie masz enable timer1 lub enable timer2. Poza tym M32 musi mieć ustawione fusebity na kwarc 16MHz i wyłączony dzielnik częstotliwości.
Tranzystory lepiej daj mosfety, ten bd może się trochę nagrzewać podczas pracy a typowy mosfet da sobie radę.... dioda jest ze wspólną katodą czy anodą?
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
rgb
Fusebity mam ustawione tak:hFuse D0(zero),iFuse EF.A jak dziennik częstotliwości wyłączyć?A co do tranzystorów to Buz11 bedzie ok?Diode mam ze wspólną anodą,tylko takie stosuje, bo wydaje mi sie że lepiej wysterować diode ze wspólną anodą.A enable timer no racja,kurcze takie coś mi umknęło.
Manio
Re: RGB
Fusebity mają być ustawione tak:
HFUSE = C9
LFUSE = FF
innych ustawień nie ma, to załatwi wszystko
Mosfet może być BUZ11 i diody ze wspólną anodą. Lub jakis mosfet z kanałem P i diody ze wspólną katodą, nie ma to wiekszego znaczenia w tym przypadku
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.