• Welcome to LusoRobótica - Robótica em Português.
 

Iluminação Led

Started by Bony, 16 de January de 2013, 16:37

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Njay

#15
As datasheets por exemplo dos LM2575, LM2576, LM2595 devem ter algum circuito de "constant current source".

A dx.com tb tem alguns circuitos para drive de LEDs.

LuísR.A.

vou tentar aprender com o lm2672.
pode ser que reforme os reguladores lineares ca no clube tambem.
uma queda de +-10V para 5V é muito mesmo.
Tiva MCU é que é.

Tutoriais Tiva+codigos exemplo:
https://sites.google.com/site/luiselectronicprojects/

LuísR.A.

#17
olhem quanto a este componente, LM2672, para fazer um buck regulator, à desvantagens em usar em modo que aguente input de 19V? é que as vezes preciso que aguente 19V, outras 12V e outras menos.
ao usar um inductor para aguentar os 19V não da para aguentar os outros?

o que seleciona mesmo a voltagem output?
é a versao do ic  :P
Tiva MCU é que é.

Tutoriais Tiva+codigos exemplo:
https://sites.google.com/site/luiselectronicprojects/

senso

Se queres máxima eficiência tens de calcular tanto o valor da bobine como dos condensadores,e isso precisa de uma pcb feita á medida, se não vai trabalhar mal como tudo.
O que define a voltagem de saida é as resistências de feedback, mas para leds queres corrente constante, e não voltagem constante.
Avr fanboy

LuísR.A.

ya mas disto tudo de eficiência tive a ideia de reformar os reguladores de tensão no clube  :P
Tiva MCU é que é.

Tutoriais Tiva+codigos exemplo:
https://sites.google.com/site/luiselectronicprojects/

LuísR.A.

qual a diferença entre este regulador de corrente:
http://dx.com/p/mr16-1-1w-320-350ma-constant-current-regulated-led-driver-8-40v-input-13553

e este:
http://dx.com/p/mr16-3-1w-300-350ma-constant-current-regulated-led-driver-12-16v-input-13555?rt=1&p=2&m=2&r=3&k=1&t=1&s=13553&u=13555

um diz 1*1W e outro 3*1W sendo o input do primeiro maior. isso é um regulador down certo? se meter um led de 3V com um pilha de 9V o led não irá queimar certo?
Tiva MCU é que é.

Tutoriais Tiva+codigos exemplo:
https://sites.google.com/site/luiselectronicprojects/

Bony

deem ai umas dicas, pois nao estou a conseguir...

agora estou na parte da programação, e queria saber como é que faço para meter um led com mais ou menos luminosidade(+ luz - luz) isto é, carrego um botao no controlo remoto e que me vá baixando a luminosidade do led até se apagar e dps o oposto, até ficar a dar a luz maxima.

Neste momento ainda só consigo ligar e desligar um led por IR, mas tb queria esta parte do controlo de luminosidade !

isto faz algum sentido ?



luminosidade = map(luminosidade, luminosidademin, luminosidademax,0,255);


if (results.value == 0x20)  // tecla CH+ no telecomando
{
luminosidade ++;
}


senso

O primeiro erro é que o ++ fica agarrado ao nome da variavel e não separado.
Avr fanboy

Bony

bem visto... já alterei mas continua a nao dar nada...

senso

Mete um Serial.print dentro do if para teres a certeza que está a ir dentro do if.
Avr fanboy

Bony

luminosidade = map(luminosidade, luminosidademin, luminosidademax,0,255);

if (results.value == 0x20) // controlar a luminosidade das luzes
{
Serial.println("tecla CH+");
}


era isto que estavas a dizer ? de qualquer das maneiras nao parece nada no serial monitor, aquilo que aparece quando carrego na tecla CH+ é mesmo o codigo associado a ela... eu no setup () tinha metido
Serial.println("IR Receiver Raw Data + Button Decode test");

senso

Provavelmente isso está-te a imprimir o código em decimal e não hex, tens de ter atenção a isso.
Avr fanboy

Bony

pois, na parte do loop() tenho ca isto:

Serial.println (results.value, HEX);

Bony

Já consigo meter a luminosidade a baixar ou a aumentar :) mas, ainda nao considero perfeito, há ali um "bug", alias 2 :P

1º quando estou a baixar a luminosidade, nao baixa totalmente até 0, isto é, até o led se apagar por completo, por sua vez quando estou a aumentar a luminosidade, esta vai até ao maximo.

2º por exemplo na situação do baixar a luminosidade... vai baixando devagarinho dps chega a um ponto que passa para o maximo outra x e dps continua a baixar outra x, até ao tal ponto e volta ao maximo e assim sucessivamente( isto estando a premir constantemente o botao), eu queria que ele chegasse ao 0( desligar o LED) e ficasse por ali, mesmo continuando a carregar na tecla para baixar a luminosidade.
E a mesma coisa acontece quando estou a aumentar a luminosidade, ele aumenta chega ao maximo volta quase para 0 e dps continua outra x até ao maximo, e por ai fora...

Eu queria que ele fosse mesmo até 0 para-se no 0 (LED desligado) mesmo continuando a primir a tecla "- iluminacao" e no maximo (valor 255) mesmo continuando a primir a tecla "+ iluminacao".


int luminosidade = 255; // vamos atribuir o valor 255 (maximo)
int luminosidadepaco = 10; // vamos incrementar um paco de 10 em 10


// controlar a luminosidade

case 32: // Tecla CH+
luminosidade = luminosidade + luminosidadepaco;
analogWrite(9, luminosidade);

break;



Alguma sugestao ?

senso

Primeiro estás a usar um int, que é uma variavel de 16 bits para representar um valor que só queres que varie entre 0 e 255, logo vai passar acima de 255 e abaixo de 0, outro problema é que estás a somar/substrair 10, logo se começas com o valor 15 nunca vais atingir o zero, se começas com 10, nunca atinges 255, soma e subtrai 5, e muda a variavel luminosidade para uint8_t ou char, e mete if's para garantir que nunca passas acima de 255 nem abaixo de 0.
Avr fanboy