Od kilku dobrych godzin męczę się z napisaniem sterownika do diody rgb w programie bascom. W programowaniu jestem praktycznie zielony, jedyne co umiem zrobić to zamigać na zmianę kolorami RGB, ew. z jakąś tam rotacją. Chciałem zrobić sobie do pokoju lampkę rgb. Mam zrobiony już cały układ, tylko nie mogę napisać za nic programu który sterowałby tą lampką. Było już dość sporo takich projektów na różnych forach, więc pewni posiada ktoś gotowy i działający program w bascomie.
Moja dioda podłączona jest to wyprowadzeń Pin.C1, Pin.C2,Pin.C3, jak ustawiam stan Output wtedy diody świecą, mój procesor to Mega8. Jeśli ktoś posiada kod programu w bascomie to bardzo bym o niego prosił.
Za pomoc jestem z góry wdzięczny.
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięAtmega8 sterownik do diody RGB
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
-
- -
- Posty:3
- Rejestracja:2 paź 2008, o 23:01
- Lokalizacja:Kraków
OK. Zaraz napisze Ci program, a potem jeszcze wyniosę za Ciebie śmieci i posprzątam w pokoju
A tak poważnie jak sam napisałeś takich projektów jest od metra. Poszukaj, poczytaj i wyciągnij wnioski.
Mała podpowiedź to sterowanie PWM.
A tu moja lampka RGB tylko na 2 diodach:
A tak poważnie jak sam napisałeś takich projektów jest od metra. Poszukaj, poczytaj i wyciągnij wnioski.
Mała podpowiedź to sterowanie PWM.
A tu moja lampka RGB tylko na 2 diodach:
Kod: Zaznacz cały
$regfile = "2313def.dat"
$crystal = 4000000
Dim R1 As Byte
Dim R2 As Byte
Dim G1 As Byte
Dim G2 As Byte
Dim B1 As Byte
Dim B2 As Byte
Dim Licznikpwm As Byte
Dim Licznik As Integer
Dim Licznik2 As Integer
Dim Zmiana1 As Byte
Dim Zmiana2 As Byte
Config Portd = Output
Portd = &B11111111
R1 = 255
Zmiana1 = 1
R2 = 255
Zmiana2 = 1
Do
Incr Licznikpwm
If Licznikpwm > 255 Then Licznikpwm = 0
Incr Licznik
Incr Licznik2
If Licznik = 1000 Then
Licznik = 0
If Zmiana1 = 1 Then
Incr B1
If B1 = 255 Then Zmiana1 = 2
End If
If Zmiana1 = 2 Then
Decr R1
If R1 = 0 Then Zmiana1 = 3
End If
If Zmiana1 = 3 Then
Incr G1
If G1 = 255 Then Zmiana1 = 4
End If
If Zmiana1 = 4 Then
Decr B1
If B1 = 0 Then Zmiana1 = 5
End If
If Zmiana1 = 5 Then
Incr R1
If R1 = 255 Then Zmiana1 = 6
End If
If Zmiana1 = 6 Then
Decr G1
If G1 = 0 Then Zmiana1 = 1
End If
End If
If Licznik2 = 1100 Then
Licznik2 = 0
If Zmiana2 = 1 Then
Incr B2
If B2 = 255 Then Zmiana2 = 2
End If
If Zmiana2 = 2 Then
Decr R2
If R2 = 0 Then Zmiana2 = 3
End If
If Zmiana2 = 3 Then
Incr G2
If G2 = 255 Then Zmiana2 = 4
End If
If Zmiana2 = 4 Then
Decr B2
If B2 = 0 Then Zmiana2 = 5
End If
If Zmiana2 = 5 Then
Incr R2
If R2 = 255 Then Zmiana2 = 6
End If
If Zmiana2 = 6 Then
Decr G2
If G2 = 0 Then Zmiana2 = 1
End If
End If
If Licznikpwm <= R1 Then Reset Portd.2 Else Set Portd.2
If Licznikpwm <= B1 Then Reset Portd.1 Else Set Portd.1
If Licznikpwm <= G1 Then Reset Portd.0 Else Set Portd.0
If Licznikpwm <= R2 Then Reset Portd.5 Else Set Portd.5
If Licznikpwm <= B2 Then Reset Portd.4 Else Set Portd.4
If Licznikpwm <= G2 Then Reset Portd.3 Else Set Portd.3
Loop
-
- -
- Posty:3
- Rejestracja:2 paź 2008, o 23:01
- Lokalizacja:Kraków
-
- -
- Posty:3
- Rejestracja:2 paź 2008, o 23:01
- Lokalizacja:Kraków
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 4 gości