Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kontrola osvetljenosti LED

[es] :: Elektronika :: Mikrokontroleri :: Kontrola osvetljenosti LED

[ Pregleda: 3253 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Marko1991
N.Beograd

Član broj: 203898
Poruke: 63
*.beogrid.net.



Profil

icon Kontrola osvetljenosti LED20.01.2011. u 01:14 - pre 161 meseci
Kako da kontrolisem osvetljaj led,koristeci kontroler pic16f84(posto sam pocetnik u ucenju rada sa kontrolerima,zamolio bih da materijal bude u asembleru).
Malo sam guglao ovu tu temu i procitao sam da to moze da se odradi sa pwm ciklusom, ali nema objasnjeno kako se to radi sa pic16f84,a gde sam uspeo da nadjem kod(uglavnom za atmel kontrolere) pisan je u C-u.
Hvala u napred.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Kontrola osvetljenosti LED20.01.2011. u 01:31 - pre 161 meseci
upalis
sacekas1
ugasis
sacekas2
aj sve jovo nanovo

u zavisnosti od odnosa trajanja sacekas1 i sacekas2 ledara ce svetleti jace ili slabije

nadji neki kontroler koji je malo sveziji 16f84 je pregazilo vreme pre jedno 10 godina, pateticni 84 nema hardwerski pwm tako da moras to da radis softwerski ...

pre nego uradis bilo sta pogledaj ovo: http://www.finitesite.com/d3jsys/16F628.html

ako bas hoces imas primere za 84
http://www.pages.drexel.edu/~kws23/tutorials/PWM/PWM.html
http://embedded-egypt.blogspot...ip-pic-16f84-tutorial-for.html

ovde imas odlicne primere ali sa 628 (pin-pin kompatibilan sa 84 samo 10 puta bolji i ima par novih stvari poput analognog komparatora, hardwerski pwm, hardwerski seriski port, duplo vise programske i eeprom memorije, 3 puta vise data memorije ..)
http://www.winpicprog.co.uk/pic_tutorial8.htm

 
Odgovor na temu

zoran968
Beograd

Član broj: 252333
Poruke: 152
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Kontrola osvetljenosti LED20.01.2011. u 08:52 - pre 161 meseci
Imam jedan primer za pwm sa pic16f84 u asm-u koji sam davno napisao i iskomentarisao (mada imam los obicaj da ne pisem komentare =) ).
Pa mozda ti i pomogne da ti sam napravis nesto svoje.


;*************************************************************************************************
;* pwm.asm - program koji softverski simulira impulsno sirinsko upravljanje.
;* Sa dva tastera (up/down) se zadaje odnos impuls pauza i na izlaznom pinu PB0 se generise
;* pwm napon koji ce nam posluziti za upravljanje , el.motorima ili LE diodama,
;* sijalicama itd.
;*
;* Datum: 06.07.2003 O7:05
;* Autor: Zoran Kolevski
;* Revizija: V1.0
;*************************************************************************************************
list p=16f84

#define bank0 bcf status,5
#define bank1 bsf status,5
porta equ 05
portb equ 06
trisa equ 05
trisb equ 06
status equ 03
intcon equ 0b
impuls equ 0c
count equ 0d
count1 equ 0e
count2 equ 0f
test equ 10
z equ 02
rp0 equ 05
gie equ 07
option_reg equ 81
rbpu equ 07
rbie equ 3

org .0

movlw h'01'
movwf impuls ;ocisti registar za impulse
clrf portb ;ocisti portb registar
clrf test

bank1 ;ukljuci banku1
movlw b'11111110' ;jer je trisb u banci 1
movwf trisb
clrf option_reg ;ukljuciti interne pullup otpornike
bank0 ;vrati banku0

opet movf impuls,w ;da li je vrednost impulsa 0?
xorlw h'01'
btfss status,z
goto opet ;jeste, onda petljaj
goto outpwm ;nije, onda kreni da generises pwm

testtast
movf test,w ;vidi da li je reg. test 0?
xorlw h'00'
btfss status,z ;ako jeste, onda stavi kasnjenje h'80'
goto dec ;ako nije, i nastavi i dalje da decrementujes do nule
movlw h'80'
movwf test ;w u test registar
dec decfsz test,f ;oduzmi za jedan registar test
return ;nije nula onda petljaj


btfss portb,4 ;da li je taster za smanjenje pritisnut?
call down ;jeste, onda skok na down
btfss portb,5 ;da li je taster za povecanje pritisnut?
call up ;jeste, onda skok na up
return

up movf impuls,w ;puni w sa impulsom
xorlw h'fe' ;i ispitaj
btfss status,z ;da li je impuls 'fe'
incf impuls,f ;nije, onda moze da se poveca za jedan
return ;jeste, onda nazad bez uvecanja

down movf impuls,w ;puni w sa impulsom
xorlw h'01' ;i ispitaj da li je
btfss status,z ;impuls '01'
decf impuls,f ;nije, onda moze da se smanji za jedan
return ;jeste , onda nazad bez smanjenja

outpwm
bsf portb,0 ;ukljuci pwm izlaz
call delays ;poziv za kasnjenje
bcf portb,0 ;iskljuci pwm izlaz
call delayc ;poziv za kasnjenje
call testtast
goto outpwm ;petlja na outpwm

delays
movf impuls,w
movwf count
imp decfsz count,f ;trajanje impulsa
goto imp

return

delayc comf impuls,w ;trajanje pauze
movwf count1
pau decfsz count1,f
goto pau
return ;povratak



end

Zoran
 
Odgovor na temu

Marko1991
N.Beograd

Član broj: 203898
Poruke: 63
*.beogrid.net.



Profil

icon Re: Kontrola osvetljenosti LED20.01.2011. u 18:03 - pre 161 meseci
Pogledao sam kod,ukapirao sam da je RB0 izlaz a ostali B portovi ulaz,i da se promenom stanja na RB4 i 5 desava neka promena na LED.Snimio sam program u kontroler i klikcem dugmice(imam easypic6)al nista se ne desava,led rb0 sija na pola snage i to je to. E sad ja sam malo bolje gledao kod ali nemam ideju koji deo bi mogao da promenim da bi se LED ponasala drugcije. Moze pomoc?
Inace bogdane hvala i tebi,ako sa pic16f84 ne uspem,moracu da kupim i probam sa PIC 16F628
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Kontrola osvetljenosti LED20.01.2011. u 19:26 - pre 161 meseci
da li si pogledao http://www.pages.drexel.edu/~kws23/tutorials/PWM/PWM.html .. to ti je pwm primer sa 84 ... inace 628 je cool sto je pin kompatibilan i sto je bolji i to ali ako mene pitas batali i asm i 16F i prebaci se na 18F i C ...ali to nisi pitao tako da ako oces asm i da koristis primere za 84 628 ti je idealno resenje posto samo na pocetku ugasis komparatore i svaki 84 kod ce raditi na njemu
 
Odgovor na temu

zoran968
Beograd

Član broj: 252333
Poruke: 152
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Kontrola osvetljenosti LED21.01.2011. u 07:21 - pre 161 meseci
Ja imam easy4 i primetio sam da nece uvek svaki sw da radi , verovatno neka komponenta smeta na ploci. recimo ono sto mi pada na pamet je da na RB4 i RB5 treba da budu postavljeni pullup otpornici.

Ovo je pisano iz perioda kada sam znao samo ASM i niko zivi nije mogao da me ubedi da predjem na C ili nesto drugo. Poslusaj Bogdanov savet i polako prelazi na C i PIC18 ili nesto drugo.

Ne mogu da odgovorim odmah jer sam cesto na putu.
Zoran
 
Odgovor na temu

Marko1991
N.Beograd

Član broj: 203898
Poruke: 63
*.beogrid.net.



Profil

icon Re: Kontrola osvetljenosti LED22.01.2011. u 00:58 - pre 161 meseci
Ma opusteno. Nego ja sam mislio prvo da steknem rutinu sa nekim kontrolerom koji je lagan za upotrebu,i procitao sam da je to 84 i da je najbolje da u pocetku radim asembler kako bi ukapirao kako to u stvari radi,e a posle bi se prebacio na nesto jace i bolje,sa vise mogucnosti. Probacu da nesto promenim u kodu,valjda ce proraditi,a ako ne,jbg moracu d vas davim posto niko iz moje okoline i niko od profana u skoli ne radi sa kontrolerima.
 
Odgovor na temu

zoran968
Beograd

Član broj: 252333
Poruke: 152
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Kontrola osvetljenosti LED24.01.2011. u 09:52 - pre 161 meseci
Evo kao sto sam rekao , danas sam slobodan i to samo zbog ovog snega. Pomoci cu koliko mogu i koliko sam dostupan. A osim toga nije lose znati i asembler, lagano vezbaj sa jednostavnim primerima, promeni nesto u kodu i posmatraj sta se desava - tako se najbolje uci.
Zoran
 
Odgovor na temu

Sepa011

Član broj: 161918
Poruke: 1817
..106.109.adsl.dyn.beotel.net.



+28 Profil

icon Re: Kontrola osvetljenosti LED24.01.2011. u 13:21 - pre 161 meseci
Pazi razlike u ceni (Kelco):

PIC16F84A-04/P: 382,32 din
PIC16F628A-I/P: 286,32 din


a razlike drasticne:
16F84A
Code:
Peripheral Features:
• 13 I/O pins with individual direction control
• High current sink/source for direct LED drive
- 25 mA sink max. per pin
- 20 mA source max. per pin
• TMR0: 8-bit timer/counter with 8-bit
programmable prescaler
Special Microcontroller Features:
• In-Circuit Serial Programming (ICSP™) - via two
pins (ROM devices support only Data EEPROM
programming)
• Power-on Reset (POR)
• Power-up Timer (PWRT)
• Oscillator Start-up Timer (OST)
• Watchdog Timer (WDT) with its own on-chip RC
oscillator for reliable operation
• Code-protection
• Power saving SLEEP mode
• Selectable oscillator options


16F628A
Code:
Peripheral Features:
• 16 I/O pins with individual direction control
• High current sink/source for direct LED drive
• Analog comparator module with:
- Two analog comparators
- Programmable on-chip voltage reference
(VREF) module
- Programmable input multiplexing from device
inputs and internal voltage reference
- Comparator outputs are externally accessible
• Timer0: 8-bit timer/counter with 8-bit
programmable prescaler
• Timer1: 16-bit timer/counter with external crystal/
clock capability
• Timer2: 8-bit timer/counter with 8-bit period
register, prescaler and postscaler
• Capture, Compare, PWM (CCP) module
- Capture is 16-bit, max. resolution is 12.5 ns
- Compare is 16-bit, max. resolution is 200 ns
- PWM max. resolution is 10-bit
• Universal Synchronous/Asynchronous Receiver/
Transmitter USART/SCI
• 16 Bytes of common RAM
Special Microcontroller Features:
• Power-on Reset (POR)
• Power-up Timer (PWRT) and Oscillator Start-up
Timer (OST)
• Brown-out Detect (BOD)
• Watchdog Timer (WDT) with its own on-chip RC
oscillator for reliable operation
• Multiplexed MCLR-pin
• Programmable weak pull-ups on PORTB
• Programmable code protection
• Low voltage programming
• Power saving SLEEP mode
• Selectable oscillator options
- FLASH configuration bits for oscillator
options
- ER (External Resistor) oscillator
• Reduced part count
- Dual speed INTRC
• Lower current consumption
- EC External Clock input
- XT Oscillator mode
- HS Oscillator mode
- LP Oscillator mode
• In-circuit Serial Programming™ (via two pins)
• Four user programmable ID locations

pa ti vidi sta ti se vise isplati.
 
Odgovor na temu

Sepa011

Član broj: 161918
Poruke: 1817
..106.109.adsl.dyn.beotel.net.



+28 Profil

icon Re: Kontrola osvetljenosti LED25.01.2011. u 09:15 - pre 161 meseci
A ovako bi u Proton+ Basic-u izgledao program za LED Dimmer

Code:
Device 16F628A
Xtal 4
PortB_Pullups False
All_Digital True

Reminders False
Config BODEN_OF, BOREN_OFF, CP_OF, DATA_CP, PWRTE_ON, WDT_OFF,_
       LVP_OFF, MCLRE_OFF, INTOSC_OSC_NOCLKOUT
Reminders True

CCP1_Pin = PORTB.3

Dim Freq As 10000 ' Bazna frekvencija za PWM

Dim Scale As Byte
Dim Value As Byte

Dim i As Byte

' 5 sekundi treptanja, vreme da se potenciometar postavi u polozaj
' MAKSIMALNE otpornosti
For i = 1 To 5
    HPWM 1, Freq, 255 ' LED uklucen sa 100%
    DelayMS 500
    HPWM 1, Freq, 0   ' LED iskljucen
    DelayMS 500
Next i

DelayMS 2000

' Iscitavanje RC konstante kako bu se odredio faktor skaliranja
' kako bi za maksimalni otpor potenciometra odnos impuls/pauza
' bio 100% (255)
Scale = Pot PORTB.0, 255

' 5 Sekundi treptanja da se zna da je inicijalno iscitavanje
' potenciometra zavrseno
For i = 1 To 5
    HPWM 1, Freq, 255
    DelayMS 500
    HPWM 1, Freq, 0
    DelayMS 500
Next i

' Beskonacna petlja
While 1 = 1
    Value = Pot PORTB.0, Scale
    HPWM 1, Freq, Value
    DelayMS 100
Wend

End


Nesto slicno sam odradio za prijatelja da regulise belu LED traku u kuhinji (quick'n'drty )
 
Odgovor na temu

Marko1991
N.Beograd

Član broj: 203898
Poruke: 63
*.beogrid.net.



Profil

icon Re: Kontrola osvetljenosti LED25.01.2011. u 22:01 - pre 161 meseci
Ja sam mislio da uradim to pomocu 2 brojaca,jedan broji od 0 do 255 a drugi od 255 do 0. Ali ne znam kako da napisem(u asm naravno) da mi na portb ne prikaze vrednost brojaca u binarnom zapisu vec da led sija odredjenom jacinom,u zavisnosti od stanja brojaca. Jeli to moguce odraditi za ceo port ili samo za jednu led i kako?
Inace nemam ni ja puno vremena zbog skole i treninga,a posto mi je ovo hobi,bavim se time kad god mogu.
 
Odgovor na temu

Stojan Trifunovic

Član broj: 15156
Poruke: 366
*.rs
Via: [es] mailing liste



+8 Profil

icon Re: Kontrola osvetljenosti LED26.01.2011. u 12:16 - pre 161 meseci
> Ali ne znam kako da napisem(u asm naravno) da mi na portb ne prikaze
> vrednost brojaca u binarnom zapisu vec da led sija odredjenom jacinom,u
> zavisnosti od stanja brojaca.

Ovde se očigledno teško mešaju pojmovi. Najpre da razjasnim kako LED moze
sijati promenljivom jačinom, što je moguće jednostavnije.

Pretpostavimo da ste povredili levu nogu. Možda ste stali na ekser, možda na
razbijeno staklo, nije bitno. Bitno je da i dalje možete hodati.

Pretpostavimo sada da trebate preći par metara. Možete to učiniti na više
(npr. 256) načina, ali ovde ću se ograničiti na svega 5.

Možete to učiniti skakućući na desnoj nozi. Na taj način uopšte ne osećate bol
(LED uopšte 0% ne svetli).

Možete samo pomalo koristiti levu nogu. Osećaćete mali bol, ali ništa strašno
(LED samo pomalo svetli, recimo 25%).

Možete koristiti obe noge ravnopravno, kao da Vam leva nije ranjena (ovde LED
svetli sa 50% snage).

Možete više koristiti povređenu levu nogu, a manje desnu (LED svetli sa 75%
snage)

Možete odskakutati na povređenoj nozi (LED je neprestano 100% uključena).

Očigledno da ce odnos zdrave/povređene noge uticati na količinu bola koju
pretrpite krećući se tih par metara. Kada dođete do cilja, nećete više
osećati seckajući bol, vec stalan, a ukoliko bi ga trebali oceniti
procentualno, najverovatnije biste dobili približno iste rezultate kao što su
gore navedeni u zavisnosti od načina kretanja.


Predstavite sada desnu (zdravu) nogu isključenom LED, a levu (povređenu)
uključenom. Upravo tako se reguliše količina svetlosti.


Pretpostavite sada da tih par metara trebate preći određenom brzinom. Recimo
da Vam zvoni fiksni telefon. Brzina ne sme biti previše mala, inače
rizikujete da ne stignete na vreme. Veća brzina, naravno ne može škoditi, ali
imajte u vidu da ste povređeni. Ukoliko nije neophodno, ne morate se
forsirati previše.
Ipak, krećući se previše malom brzinom (npr. 3 sekunde stojite na levoj nozi
pa 3 sekunde na desnoj u 50% varijanti) sigurno nećete stići do telefona na
vreme.
Sa LED je isto. Ukoliko je brzina previše mala, moći ćete umesto menjanja
intenziteta svetla (neprekidnog kretanja) primetiti treperenje diode
(zastajkivanje).

> Jeli to moguce odraditi za ceo port ili samo za jednu led i kako?
Moguce je to uraditi i za jednu LED i za ceo port.

Za jednu LED, npr. na RA2 pinu povezanu od pina prema masi:
Ukljuci LED
Pauza1
Iskljuci LED
Pauza2
Vrati se na pocetak
Code:

Start
 bsf PORTA,2
 call Pauza1
 bcf PORTA,2
 call Pauza2
 goto Start


Za ceo port, npr sa 8 LED povezanim na PORTB od pinova prema masi:
Ukljuci sve pinove porta
Pauza1
Iskljuci sve pinove porta
Pauza2
Vrati se na pocetak
Code:

Start
 movlw b'11111111'
 movwf    PORTB
 call Pauza1
 movlw b'00000000'
 movwf PORTB
 call Pauza2
 goto Start


Najpre je, naravno potrebno podesiti sve pinove kao izlazne.

Ovakvim načinom regulacije nećete moći da dobijete pravih 0% i 100%, jer će
jedan mali deo vremena LED sigurno biti uključena odnosno isključena. Recimo
da je ovo regulacija od 1 do 99%.

U jednoj od ranijih tema dati su programi za automatsko računanje pauza koje
možete koristiti za automatsko generisanje Pauza1 i Pauza2 potprograma.
http://www.elitesecurity.org/p2768449

Imajte u vidu da ljudsko oko ne može primetiti treperenje LED iznad oko 30Hz,
ali sve ispod toga već postaje vidljivo. To znači da zbirna vremena
Pauza1+Pauza2 ne smeju preći 0,03sekunde (ja obično stavljam 0,02).

Takođe, imajte u vidu da je za ljudsko oko prilično teško utvrditi kolikim
intenzitetom svetli LED. Najverovatnije nećete uspeti da uočite razliku
između 100% i 25%. Bolje usmerite svetlost LED na npr. prazan list papira, i
posmatrajte svetlost kroz kameru mobilnog telefona ili digitalnog foto
aparata.


Ovaj primer dat je samo u demonstracione svrhe, i u praksi se sigurno ne bi
koristila ovakva regulacija jer ne ostavlja mesta mikrokontroleru za ikakve
druge poslove. LED bi se u pravim programima uključivale i isključivale iz
interapt rutine, oslobađajući mikrokontroler za druge poslove.
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Kontrola osvetljenosti LED

[ Pregleda: 3253 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.