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

kurczaczek699
-
-
Posty: 3
Rejestracja: 2 paź 2008, o 23:01
Lokalizacja: Kraków

Atmega8 sterownik do diody RGB

Postautor: kurczaczek699 » 2 paź 2008, o 23:07

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.

Awatar użytkownika
Press
-
-
Posty: 389
Rejestracja: 10 mar 2004, o 16:21
Lokalizacja: Wrocław
Kontaktowanie:

Postautor: Press » 3 paź 2008, o 04:46

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:

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

kurczaczek699
-
-
Posty: 3
Rejestracja: 2 paź 2008, o 23:01
Lokalizacja: Kraków

Postautor: kurczaczek699 » 3 paź 2008, o 10:36

Jest niby wszystko ok, ale mam wrażenie że te kolory jakby za szybko się zmieniały.
Bardzo dziękuje, za program który wstawiłeś. Mam wrażenie że moja atmega się troche grzeje na 8MHz. -wew. oscylator

PS: Śmieci może sam potem pójdę wyrzucić !

Awatar użytkownika
Press
-
-
Posty: 389
Rejestracja: 10 mar 2004, o 16:21
Lokalizacja: Wrocław
Kontaktowanie:

Postautor: Press » 3 paź 2008, o 16:37

Jest niby wszystko ok, ale mam wrażenie że te kolory jakby za szybko się zmieniały.
To przerób program
Mam wrażenie że moja atmega się troche grzeje na 8MHz. -wew. oscylator
bo pewnie popodpinałeś diody bezpośrednio do portów a nie przez tranzystory.

kurczaczek699
-
-
Posty: 3
Rejestracja: 2 paź 2008, o 23:01
Lokalizacja: Kraków

Postautor: kurczaczek699 » 3 paź 2008, o 18:16

Bezpośrednio, przez rezystory.
Dzięki za wskazówki, udało się zrobić wszystko tak jak chciałem.

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty: 2650
Rejestracja: 24 sty 2005, o 00:39
Lokalizacja: Winny gród

Postautor: pajaczek » 3 paź 2008, o 18:39

No to zależnie jeszcze co to za dioda, ale lepiej było by zastosować pośredniczące tranzystorki... tak bezpośrednio, jasne diody pod port, to kiepskie rozwiązanie.

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 44 gości