controlo de Power LED

A experiência basta tê-la com o funcionamento do PWM em si. Se depois é para controlar LED com mais ou menos power, um motor, ou outra coisa qualquer controlável por essa via, é uma questão de se fazer o ajuste na saída do circuito adequado á potência e ao dispositivo que se vai querer controlar.

Gerar PWM com microcontrolador exige mais conhecimentos, pois vais ter que lidar também para além do hardware com a programação do dito. Mas há alternativas mais simples como por exemplo recorrer a um integrado temporizador como o 555.
O que depois vais ter que ver é quais os consumos dos LEDs que queres controlar, pois powerleds há muitos e com consumos muito diversos. Depois tens que multiplicar o resultado pela quantidade de LEDs que queres controlar.
Se queres fazer uns efeitos malucos com variações de luminusidade nos LEDs, então pensa logo em recorrer a um microcontrolador adequado. Dependendo do que queres fazer, podes ter que optar por um microcontrolador com mais ou menos portas, entre outras eventuais considerações.

Abraço
 
O objectivo é controlar a luminosidade dos LED através de um micro (atmega8 ou 8051).

Circuitos até se arranja bastantes mas queria saber se alguém tinha 1 que já tivesse experimentado e que compravasse o funcionamento.

A programação do micro não me assusta sei perfeitamente o que fazer com os temporizadores internos dele, o que procurava era mesmo o circuito de interface entre a fonte externa (algo de 12v continuo), os LED e o micro.
 
O interface entre o microcontrolador e o LED, pode ser feito de uma forma tradicional recorrendo a um transístor, uma vez que a corrente de consumo do LED pode ser excessiva para ser suportada por um pino de saída de uma porta do microcontrolador.
Um LED normal, poderia ser ligado directamente ao pino apenas com um resistência limitadora série.

Fica aqui a ideia de como podes fazê-lo: http://www.electronics-lab.com/projects/games/005/index.html

Não é necessário usar uma alimentação secundária de 12v, pois os 5 volts que já terás que usar para alimentar o microcontrolador, servem perfeitamente para excitar o LED, desde que a corrente que a alimentação de 5v for capaz de fornecer dê para alimentar tudo.

Abraço
 
No circuito que tu referes só é utilizado um transistor. Isto apenas dá controlo para ligar ou desligar. O objectivo era controlar a luminosidade dos leds.

Eu encontrei este esquema aqui que nao parece mau mas nao tem valores para nada e além disso pensava ter que fazer o controlo de outra forma, com um circuito com triac e diac, por exemplo.
 
No circuito que tu referes só é utilizado um transistor. Isto apenas dá controlo para ligar ou desligar. O objectivo era controlar a luminosidade dos leds.

Pensei que a questão do PWM para efectuar o controlo da luminusidade fosse ponto assente e entendido.
Se manténs o pino do microcontrolador permanentemente a 1 ou 0, então claro que só fazes ON ou OFF. É melhor veres bem o que é a modulação por largura de pulso (PWM) e o que podes fazer com isso.

Eu encontrei este esquema aqui que nao parece mau mas nao tem valores para nada e além disso pensava ter que fazer o controlo de outra forma, com um circuito com triac e diac, por exemplo.

Triacs para controlar um LED??? Essa agora passou-me ao lado. :wow:
Nesse site, no esquema do "step 8", não usam o PWM directamente para controlo da tensão fornecida ao LED, mas usam-no para controlar uma fonte de corrente constante, daí que o circuito seja um pouco mais complexo. Em vez de se alterar a tensão aplicada ao LED, altera-se a corrente que circula através dele. É outra forma de fazer as coisas e até será melhor. É uma questão de equacionar se a complexidade e custo extra compensa a eventual diferênça no resultado obtido.

Abraço

Vê isto: http://www.youtube.com/watch?v=yFKitXM1cow
Repara no sinal PWM que está no osciloscópio, e como isso faz variar a luminusidade do LED.
Mais um: http://www.youtube.com/watch?v=kFj5ANamGfk
 
Última edição:
Sei perfeitamente o que é um PWM. A questão é que o sinal de controlo do PWM pode ser dado por um micro ou então fazes o PWM no micro directamente.

O circuito com triac e diac é usado para fazer o controlo de luz com fontes de 230V alternado. Para o usar teria que adaptar o sinal aplicado a um transformador, etc...

A questão de controlar a corrente é a que faz mais sentido em circuitos com bastantes leds identicos... que é o que procuro fazer mas a controlar a luminosidade de leds individualmente numa matriz de leds ou no geral...
 
Sei perfeitamente o que é um PWM. A questão é que o sinal de controlo do PWM pode ser dado por um micro ou então fazes o PWM no micro directamente.

O circuito com triac e diac é usado para fazer o controlo de luz com fontes de 230V alternado. Para o usar teria que adaptar o sinal aplicado a um transformador, etc...

A questão de controlar a corrente é a que faz mais sentido em circuitos com bastantes leds identicos... que é o que procuro fazer mas a controlar a luminosidade de leds individualmente numa matriz de leds ou no geral...

Na minha modesta opinião, vai aí uma grande confusão, ou eu não estou a perceber nada do que queres fazer.

Se o microcontrolador não tiver como função gerar o, ou os sinais PWM, então para que é que o queres no circuito. Só para estipular que LED vai acender na matriz? E de onde viria o controlo PWM para a luminusidade? Porque é que não haveria logo o microcontrolador de fazer tudo isso?

Triacs com diacs, podem servir para controlar lâmpadas (entre outras coisas) como bem dizes.
Há muitos anos fiz a minha caixinha de psicadélicas e os meus reguladores de luz... tal como provavelmente muitos adolescentes que se iniciam na electrónica gostam de fazer.
Mas para que raio queres tu a alimentação da rede com transformadores á mistura para controlar LEDs? Muito provavelmente vais com isso introduzir ruídos na componente digital e vai-te ser complicado suprimi-los. Ou estás a projectar um painel luminoso gigante ou estás a dar aí voltas que para mim não fazem sentido.

De qualquer forma porque não compreendo o que efectivamente pretendes, vou abster-me de emitir mais opiniões, pois controlar LEDs com triacs é algo que nunca fiz, nunca vi fazer, nem me parace á priori fazer sentido, por isso não tenho nada mais a acrescentar por não me considerar capaz de te ajudar, se esse é o caminho que pretendes seguir.

Boa sorte com o projecto.

Abraço

PS: Se fosse para complicar as coisas preferia após o PWM gerado pelo microcontrolador, colocar uma filtro RC associado a um ampop seguidor de tensão e fazer um conversor PWM-DC para então aplicar o resultado ao circuito de potência. Mas claro que isso é um preciosismo para controlar uns LEDs, porque para todos os efeitos o LED vai assumir o sinal PWM de frequência relativamente elevada, como um sinal DC equivalente, até pela inércia do próprio LED ou da nossa capacidade de visão, a variações extremente rápidas.
Podes ver aqui um exemplo do resultado: http://www.youtube.com/watch?v=5lWds9VjJpI
 
Última edição:
o objectivo não é controlar todos os leds com um pwm generico mas sim ter pwm individuais para um painel luminoso que poderá ser enorme, o objectivo é tornar o circuito teoricamente infinito controlados por um micro a fazer interface com um pc que poderá ou não controlar o sistema também.

O que dizes é fazer um pwm generico no micro. O que está completamente fora do pretendido.

Ir buscar a energia à rede e fazer andares de alimentação e 1 de rectificação, é o caminho mais provavel para ir buscar a corrente que pretendo (total)
 
O que dizes é fazer um pwm generico no micro. O que está completamente fora do pretendido.

Não, não foi isso que disse, embora me pareça que, agora que esclareces pretender uma matrix teoricamente infinita, seja na prática e na razão inversa da dimensão teórica do circuito, improvável que consigas gerar um sinal PWM por cada LED que integre a matriz.

Em todo o caso parece ser necessário esclarecer que, em qualquer microcontrolador podem perfeitamente gerar-se vários sinais PWM por software dirigidos a distintos pinos das suas portas IO.
Depois, há inclusivamente microcontroladores com geradores de PWM integrados para facilitar o serviço de programação dos mesmos. Deixo aqui o link para um exemplo de um 8051 com 6 geradores PWM integrados: http://www.winbond-usa.com/products/winbond_products/pdfs/8-bit/W79E201h.pdf (ver pag 55)

Quanto ao que é pretendido, era conveniente que se queres ser ajudado, expusesses de forma clara o teu problema, porque a cada intervenção aparece um dado novo ou mudança de rumo, e assim não há quem consiga saber o que pretendes, quanto mais saber como ajudar.
 
eu disse desde o inicio que o objectivo era controlar 1 led pois o que pretendo é efectivamente o controlo de 1 led individualmente. O meu problema é efectivamente o circuito de controlo (não se pretende on-off) de 1.

Eu é que referi que o objectivo final é fazer pwm a um quadro matricial de leds que seria controlado por micro ou por um pc.
 
ainda não percebi muito bem o teu problema, mas do que percebi tu essencialmente queres controlar a luminusidade de um led com pwm... então como o Mortymore disse, usas o sinal pwm da saida do micro, metes um transistor e alimentas o led com o transistor... se queres controlar vários leds com luminusidades diferentes ao mesmo tempo, ou usas mais sinais pwm, ou fazes multiplexagem
 
Multiplexagem faz perder brilho agravando à medida que se pendura mais carga no mesmo fio... Pode-se subir a tensão instantânea mas isso pode provocar diminuição do tempo de vida, no caso do LED.



PWM com uC é muito simples:

arranjas 2 timers (T0 e T1)

Carregas T0 com um valor (que é aumentado se queres mais luminosidade ou o contrário...)
Carregas T1 com outro valor, sempre fixo, > ou = a T0 (se for menor a duty será de 100%)

Colocas os 2 timers a decrementar/clock

Quando T0 != 0 tens uma saída a High
Quando T0 = 0 metes a tal saída a Low

Quando T1 = 0 geras uma interrupção voltas a carregar T1 com o mesmo valor inicial e carregas T0 com o valor inicial deste...

Pronto tens PWM num pino à tua escolha desde 0 a 100%


Para pores um led a aumentar/reduzir/aumentar... por aí fora arranjas uma tabela de valores a subir e depois a descer, percorres essa tabela indefinidamente e vais carregando T0 com os valores dela...


^^ Pseudo codigo em 3 minutos LOL :009:


Cumprimentos
 
Última edição:
Código ASM feito para [email protected] (DS89C420) para PWM@1KHz

Extraí isto assim de repente de um programa mais vasto que fiz, pelo que espero ter feito correctamente a transposição e funcione bem tal como está exposto, mas basta 1 timer (usei o T0) para gerar um sinal PWM. O mesmo timer é carregado para o nível alto e recarregado para o nível baixo do PWM a gerar.
O sinal PWM estará presente no pino P1.0.

Código:
    org 00h
    ljmp init
    org 0Bh        ;rsi do timer0
    ljmp rsi0
    org 30h

init: mov TMOD,#00000001b
    mov P1,#0FFh
    setb TR0
    mov IE,#10000010b
    ljmp $

;-------inicio da rsi timer0-------------------

PWM: jb P1.0,low
high: setb P1.0
    mov TH0,#0FDh    ;80% high
    mov TL0,#20h
    clr TF0
    reti
low: clr P1.0
    mov TH0,#0FFh    ;20% low
    mov TL0,#48h
    clr TF0
    reti
Mas se bem entendi a dificuldade não está em gerar o PWM, por isso receio que isto também não vá ser de grande préstimo. Foi só mais numa de dizer que um só timer é suficiente, mas posso fazer o teste para ver se isto está mesmo a funcionar, quando tiver oportunidade.

Abraço
 
O problema do assembly é que eu não percebo quase nada desse que aí puseste :confused:... só percebo assembly do ARM e do 68000, por isso não posso verificar esse código, enquanto que em pseudo-código todos percebem e facilmente é adptado ao CPU que se quiser...


Agora num momento de aperfeiçoamento basta um timer como tinhas dito, pode-se colocá-lo a contar livremente e vai-se comparando com um valor arbitrário (variável): se for menor mete a saida a Lo, se for maior mete a saida a Hi... (mas a precisão não é muito boa e só piora com a complexidade, a não ser que se possa gerar uma interrupção automaticamente com um valor qualquer do timer -> depende do MCU)


Exacto a dificulade parece que é mais no exterior... mas ligar um led au um MCU é do mais simples que há, muitas vezes ligo directamente ao porto através duma resistência e tá feito...



Cumps
 
Última edição:
Bem... o código que coloquei aqui também é uma coisa simples pois gera apenas um PWM fixo com factor de trabalho de 80%.

Não vou entrar em detalhes, mas apenas dizer que a interrupção do timer ocorrerá automaticamente pela forma foi programado o seu funcionamento.

Se quizesse-mos um PWM variável continuamente sem intervenção externa, então recorrer-se-ia eventualmente a um 2º timer. Mas o carregamento do timer usado pode ser feito por outras vias, como por exemplo estar dependente de uma conversão AD proveniente de uma célula fotovoltaica, que faria variar a luminusidade no LED de acordo com a luminusidade detectada pela célula, e para tal creio que não será necessário usar mais do que 1 timer, que servirá apenas para o PWM.
Até a frequência do PWM que uso no exemplo, não sei se funcionaria bem no caso pretenso, pois foi feito para controlo de velocidade de um motor.

Mas para mim o problema não está no estágio de potência para ligar meia dúzia de powerleds (embora a minha bordagem fosse diferente da porposta) , ou em gerar os PWM para controlar cada um desses powerleds, que ainda assim não será uma tarefa fácil. O problema está em pretender-se uma matrix com um nº considerável de powerleds, cada um deles com luminusidade controlável de forma independente. Se fosse para controlar por exemplo uma matrix 8x8, e depois os LEDs das matrizes homólogas (tipo 10 matrizes 8x8) fossem controladas pelo mesmo PWM da matriz mãe, então ainda veria isso como praticável e expansível a matrizes clones, embora já não fosse fácil gerar 64 sinais PWM independentes. Mas criar uma matriz 8000x8 com controlo independente por LED, não será tarefa fácil, e não estou a ver como será conseguido e por isso em reconhecimento do limite das minhas capacidades, creio não poder ser de maior ajuda.

A aplicação onde normalmente vemos estas matrizes de LEDs são os paineis de informação corrediços, mas nesse caso os LEDs limitam-se a acender ou apagar, e se o brilho dos mesmos é controlável, o ajuste é feito para todo o painel de uma só vez, não LED a LED.

Abraço

PS: Com um PWM e gerar varrimento pela matriz, com o PWM certo a aplicar num dado momento no LED, e com um dispositivo de memória que fixasse esse valor no LED o tempo suficiente até que novo PWM lhe fosse aplicado, evitando dessa forma 64 PWMs para 64 LEDs... será? Isso também poderia ser feito por blocos. Bem... mais um bocado o controi-se uma espécie de ecrã TFT com powerleds. LOL
 
Última edição:
é possivel fazer um programa em c/vb/etc pwm? por exemplo, para controlar a luminusidade de um led basta escrever um programa apropriado ou para fazer PWM é necessário algo mais?

[isto através do PC e nao de PICs]
 
dá... é só fazeres um programa para alternar o estado de uma saida de x em x tempo... básicamente é isso o pwm

por exemplo, um ciclo tipo isto:

saida A ligado
pausa X ms
saida A desligado
pausa X ms


é um bocado à trolha mas funciona :P se o tempo for muito alto vais ver o led a piscar
 
|[-BooT-]|;2646709 disse:
dá... é só fazeres um programa para alternar o estado de uma saida de x em x tempo... básicamente é isso o pwm

por exemplo, um ciclo tipo isto:

saida A ligado
pausa X ms
saida A desligado
pausa X ms


é um bocado à trolha mas funciona :P se o tempo for muito alto vais ver o led a piscar

ora aí está a resposta que queria ouvir :) (ler )
 
Back
Topo