| Author |
Message
|
sztcz Poziom 2

Joined: 03 Dec 2007 Posts: 2 Location: Tcz
|
#1
03 Dec 2007 22:41 [AVR] PWM, Led, tranzystor |
|
|
|
Witam forumowiczow!
Otoz mam nastepujacy problem, wymarzylo mi sie stworzyc cos w rodzaju reflektora led ktorym bedzie sterowal uC. Potrafie sterowac jasnoscia ledow poprzez tranzystor (2n3906), kostke zwana (7805, nie wiem co to jest, bazowalem na schemacie znalezionym w internecie) oraz potencjometr analogowy. Jednak nie jest to to co chcialbym osiagnac, zalezy mi na sterowaniu przy pomocy jakiegos avrka (najlepiej attiny2313) i PWM. PWM potrafie oprogramowac, ale jak to polaczyc z ukladem, nie mam pojecia. Dodam ze do dyspozycji mam zasilanie +5V (uC) i +12V ktorym chcialbym zasilac diody. Diod na jeden uklad ma byc docelowo 16 (matryca 4x4). I tutaj mam prosbe, czy ktos moglby nakierowac mnie w jakim kierunku powinienem budowac uklad? Czy ten tranzystor bedzie dobry? Jesli tak to jak to polaczyc z PWM.
PS. Jestem programista, nie elektronikiem, prosilbym o wmiare lapotologiczna odpowiedz :)
Pozdrawiam, Sz.
|
|
| Back to top |
|
 |
Google

|
#
03 Dec 2007 22:41 |
|
|
|
|
|
| Back to top |
|
 |
autoservice Poziom 18

Joined: 28 Jul 2005 Posts: 492 Location: Polska
|
#2
03 Dec 2007 23:54 Re: [AVR] PWM, Led, tranzystor |
|
|
|
...sorki ale :D...rejestry PWM w palcem w nosie oprogramuje ale co to jest 7805 to nie wie :D to chyba "joke" miesiaca :D
|
|
| Back to top |
|
 |
sztcz Poziom 2

Joined: 03 Dec 2007 Posts: 2 Location: Tcz
|
#3
04 Dec 2007 01:10 Re: [AVR] PWM, Led, tranzystor |
|
|
|
Stabilizator napiecia (akurat wygooglowalem przed zlozeniem sobie tego czegos :] ) Pisalem tego posta w pospiechu (w pociagu), i nie bardzo moglem sobie przypomiec co to jest, a schematu nie mialem przy sobie :] W kazdym razie, w zyciu nie tworzylem jakis urzadzen od strony hardware'u, tylko od strony softu, wiec akurat pwm nie sprawia mi problemu.
|
|
| Back to top |
|
 |
Google

|
#
04 Dec 2007 01:10 |
|
|
|
|
|
| Back to top |
|
 |
nouki Poziom 20

Joined: 12 Feb 2005 Posts: 819 Location: ŁÓDŹ
|
#4
04 Dec 2007 02:09 Re: [AVR] PWM, Led, tranzystor |
|
|
|
hmmm a moze Kolego piszesz w Bascomie pewnie nie:)
Ale skoro nie sprawia Ci problemów to kiedyś pytałem o takie coś i nikt nie był w stanie napisać nic:) a mianowicie
chciałem by po podaniu stanu 1 na jakieś wejscie tranzystor sterowany pwm rozjaśnił mi płynnie żarówkę od o do 90.... % w czasie 10 sek a jeśli bedzie stan zero to spadnie z 90...% do zera w czasie 10sek.
|
|
| Back to top |
|
 |
seba_x Poziom 22

Joined: 07 Jul 2003 Posts: 1598 Location: czarna dziura
|
#5
04 Dec 2007 12:03 Re: [AVR] PWM, Led, tranzystor |
|
|
|
może tak :
r41 daj 3.3k , tranzystor mosfet może być irfz44 , r42 dobierz tak żeby nie przekroczyć prądu leda , 2n3906 obawiam się że będzie za słaby do 16 ledów
|
|
| Back to top |
|
 |
intertom Poziom 7

Joined: 25 Jan 2007 Posts: 21 Location: Krosno
|
#6
04 Dec 2007 13:36 Re: [AVR] PWM, Led, tranzystor |
|
|
|
NIE MOŻĘ BYĆ IRFZ44!!!
- wymaga ok 10V do pełnego otwarcia kanału!!! a nie 4v jak ten na schemacie. A poza tym to sterowanie PWM jest proste. Jedyny kłopot to przy dużych prądach i sporych częstotliwościach może sprawiać grzanie tranzystorka spowodowane faktem przełączania bramki (lub nie pełnego otwarcia-małe napięcie sterujące). Jeśli ktoś będzie potrzebował sprawdzonego prostego układu do przełączania dowolnego MOSFETa (nie tylko takich sterowanych poziomem TTL) to jest tu: http://www.elektroda.pl/rtvforum/viewtopic.php?t=885095&highlight=
Ten układzik działa tak: Gdy na pinie PWM jest stan 1 to tranzystorek Q5 załącza bramkę MOSFETa a gdy stan się zmieni na 0 to Q4 powoduje rozładowanie pojemności bramki MOSFETa (przez opornik 10om) i tranzystor się 'szybko' wyłącza.
Oczywiście w profesjonalnych układach stosuje się scalone drivery MOSFETów.
PS: a ten problem z płynnym rozjaśnianiem 0..90%jest banalny np:
w pętli (powiedzmy 100 krokór) umieszczasz opóźnienie na 99ms i instrukcję inkrementacji zmiennej PWM o 1, i już masz płynne zwiększanie PWM w 100 krokach i w ciągu ok 10 sek. A zmniejszanie analogicznie. Reszta to tylko kwestia fantazji.:D
|
|
| Back to top |
|
 |
Google

|
#
04 Dec 2007 13:36 |
|
|
|
|
|
| Back to top |
|
 |
nouki Poziom 20

Joined: 12 Feb 2005 Posts: 819 Location: ŁÓDŹ
|
#7
04 Dec 2007 20:49 Re: [AVR] PWM, Led, tranzystor |
|
|
|
Może ja jej nie mam bo sie ucze bascoma jak wstawisz przykład to moze zakapuje i moja fantazja sie rozbudzi:)
|
|
| Back to top |
|
 |
intertom Poziom 7

Joined: 25 Jan 2007 Posts: 21 Location: Krosno
|
#8
05 Dec 2007 09:13 Re: [AVR] PWM, Led, tranzystor |
|
|
|
Kiedyś popełniłem taki programowy PWM x 3 do sterowania RGB (ot tak dla fantazji :D)
| Code: |
Config Timer1 = Timer , Prescale = 1 'dla prescale=8 przerwanie co ok 4 ms dla 256 co 15 ms dla 1024 co 64 ms
Config Int0 = Falling
'Config Portb.6 = Input
'Set Portb.6 ' Końcówka Dla Int0
Ddra = &B01111111 ' ustawienie portu a jako wyjście
Config Rc5 = Pinb.6
Pwm_r Alias Porta.0 ' porty podpięcia led RGB
Pwm_g Alias Porta.1
Pwm_b Alias Porta.2
Redled Alias Porta.6
Relay Alias Pina.7
Enable Interrupts
Enable Timer1
On Timer1 Int_timer1
Enable Int0
On Int0 Odbierz
Set Redled ' zgaś leda
Speed = 1 'Początkowa Deklaracja Prędkości Zmian
Max_r = 255 ' deklaracja zakresów zmian kolorów
Min_r = 0
Max_g = 255
Min_g = 0
Max_b = 255
Min_b = 0
Do ' główna pętla
If C > 255 Then C = 0
If R > C Then Set Pwm_r Else Reset Pwm_r ' pwm dla red
If G > C Then Set Pwm_g Else Reset Pwm_g ' pwm dla green
If B > C Then Set Pwm_b Else Reset Pwm_b ' pwm dla blue
C = C + 1
Loop
End
Int_timer1:
Disable Timer1
If Pom > 510 Then Pom = 0
If Pom < 255 Then Flag_r = 1 'Regulacja wypełnienia od 0 do 255 i od 255 do 0
If Pom > 255 Then Flag_r = 0
' ########## regulacja RED
If Flag_r = 1 Then If R < Max_r Then R = R + 1
If Flag_r = 0 Then If R > Min_r Then R = R -1
' ########## regulacja GREEN
If Flag_r = 1 Then If G < Max_g Then G = G + 1
If Flag_r = 0 Then If G > Min_g Then G = G -1
' ########## regulacja BLUE
If Flag_r = 1 Then If B < Max_b Then B = B + 1
If Flag_r = 0 Then If B > Min_b Then B = B -1
Pom = Pom + 1
'#########################################
'teraz zpodamy sobie jakieś kolorki!!!
If Pom1 >= Speed Then
If Licz <= 35 Then Licz = Licz + 1 Else Licz = 0
If Licz > 0 Then
Min_r = 100
Max_r = 255
Min_g = 0
Max_g = 0
Min_b = 0
Max_b = 0
End If
If Licz > 5 Then
Min_r = 0
Max_r = 0
Min_g = 0
Max_g = 0
Min_b = 0
Max_b = 0
End If
If Licz > 7 Then
Min_r = 0
Max_r = 0
Min_g = 100
Max_g = 255
Min_b = 0
Max_b = 0
End If
If Licz > 12 Then
Min_r = 0
Max_r = 0
Min_g = 0
Max_g = 0
Min_b = 0
Max_b = 0
End If
If Licz > 14 Then
Min_r = 0
Max_r = 0
Min_g = 0
Max_g = 0
Min_b = 100
Max_b = 255
End If
If Licz > 21 Then
Min_r = 0
Max_r = 0
Min_g = 0
Max_g = 0
Min_b = 0
Max_b = 0
End If
If Licz > 25 Then
Min_r = 0
Max_r = 0
Min_g = 20
Max_g = 50
Min_b = 10
Max_b = 20
End If
If Licz > 30 Then
Min_r = 10
Max_r = 150
Min_g = 0
Max_g = 0
Min_b = 20
Max_b = 50
End If
Pom1 = 0
Else
Pom1 = Pom1 + 1
End If
Enable Timer1
Return
' Obsługa pilota
Odbierz:
Enable Interrupts
Disable Int0
Disable Timer1
Reset Redled ' zapal leda
Getrc5(adres , Komenda)
Komenda = Komenda And &B00111111
If Komenda = Rc_komend Then Toggle Relay
Waitus 100
Set Redled ' zgaś leda
Enable Int0
Enable Timer1
Return
|
o i jeszcvze RC5 obsługuje. Te kolumny ze zmiennymi min i max to już nie jest ważne. Cały PWM jest realizowany w petli powyżej, częstotliwość zależy od preskalera.
|
|
| Back to top |
|
 |