Estou apenas experimentando o Arduino Uno pela primeira vez com 2 LEDs piscando em uma placa de ensaio. Todos os tutoriais na Internet parecem usar um resistor. Eu sei a função dos resistores, mas isso realmente importa aqui? Esses LEDs estão funcionando muito bem sem um resistor.
Comentários
- Isso depende se você deseja que seu LED derreta ou não. Se você não ‘ se importar, omita o resistor. :-).
Resposta
Desobediente! :-). Se eles disserem para usar um resistor, há um bom motivo para isso! Desligue AGORA!
O resistor existe para limitar a corrente do LED. Se se você omiti-lo, a limitação atual deve vir da saída do Arduino e ele não gostará. Como você descobre o que o resistor precisa ser? Você conhece a Lei de Ohm? Se não, escreva em letras grandes:
\ $ V = I \ cdot R \ $
Tensão igual a corrente vezes resistência . Ou você poderia dizer
\ $ R = \ dfrac {V} {I} \ $
É a mesma coisa. A voltagem que você conhece: o Arduino funciona a 5 V. Mas nem tudo vai passar pelo resistor. O LED também tem uma queda de tensão, normalmente em torno de 2 V para um LED vermelho. Portanto, resta 3 V para o resistor. Um LED indicador típico terá uma corrente nominal de 20 mA, então
\ $ R = \ dfrac {5V – 2V} {20mA} = 150 \ Omega \ $
O Arduino Uno usa o ATmega328 microcontrolador. A folha de dados diz que a corrente para qualquer pino de E / S não deve exceder 40mA, o que é comumente conhecido como classificações máximas absolutas. Como você não tem nada para limitar a corrente, há apenas o (baixo !) resistência do transistor de saída. A corrente pode muito bem ser superior a 40mA e seu microcontrolador sofrerá danos.
edit
O gráfico a seguir da ficha técnica da ATmega mostra o que acontecerá se você acionar o LED sem o resistor limitador de corrente:
Sem carga, a tensão de saída é 5 V conforme o esperado. Porém, quanto mais alta a corrente consumida, menor será a tensão de saída, ela cairá cerca de 100mV para cada carga extra de 4mA. Essa é uma resistência interna de 25 \ $ \ Omega \ $. Então
\ $ I = \ dfrac {5V – 2V} {25 \ Omega} = 120mA \ $
O gráfico não vai tão longe, a resistência aumentará com a temperatura, mas a corrente permanecerá muito alta. Lembre-se de que a folha de dados forneceu 40mA como Classificação máxima absoluta. Você tem três vezes isso. Isso irá definitivamente danificar a porta de E / S se você fizer isso por um longo tempo. E provavelmente o LED também. Um LED indicador de 20mA geralmente terá 30mA como Classificação Máxima Absoluta.
Comentários
- Na verdade, não. 3 e você ganhou ‘ para obter qualquer luz, porque 3 x 2V > 5V e 2 você ‘ terei o mesmo problema, queda de apenas 1V em vez de 3V. Acrescentei à minha resposta para desligá-lo agora!
- Perdi a conta de quantas vezes escrevi esse cálculo nas respostas aqui. Eu deveria ter um script para isso 🙂
- Os LEDs são projetados para funcionar em uma determinada corrente máxima. A tensão que os impulsiona significa que a corrente está descontrolada. As portas são feitas para fornecer uma certa corrente máxima. Colocá-los em curto ou sobrecarregá-los PODE causar a destruição de um pino ou de todo o IC ou apenas causar problemas operacionais sutis. Ou não.
- @ JohnR.Strohm Eu não ‘ não o chamaria de padrão da indústria.
- @ JohnR.Strohm – Como m. Alin diz que ‘ não é um padrão da indústria. A Digikey lista LEDs nominais de 10mA que variam de 0,4mcd a 1000 mcd e LEDs de 20mA que variam de 0,1 mcd a 54000 mcd. Não há ‘ nenhuma linha e nenhuma garantia de que o LED de 10 mA ficará bem visível. A tensão do LED vermelho normalmente varia de 1,8 V a 2,2 V. Para um LED vermelho, 1,6 V é excepcionalmente baixo.
Resposta
40plot,
Devo dizer que dirigir um LED sem resistor NÃO É RECOMENDADO a menos que você saiba o que está fazendo. No entanto, se você entende como um LED se comporta, pode acioná-lo com segurança sem um resistor. Na verdade, acionar um LED sem um resistor limitador de corrente geralmente é melhor.
Por que você acionaria um LED sem um resistor? Simples, para tornar seu circuito mais eficiente em termos de energia.
Você deve acionar seu LED com PWM definido para um ciclo de trabalho constante (ou seja, 5V PWM com 34% de trabalho ciclo para atingir uma tensão média de 1,7 V)?
Sim e não. Usar o PWM pode funcionar tão bem quanto aplicar uma voltagem específica (se você for cuidadoso), mas existem maneiras melhores. Coisas para se preocupar ao adotar a abordagem PWM.
- A frequência do PWM é importante.Ao usar o PWM neste cenário, você está contando com a capacidade dos componentes do seu circuito de lidar temporariamente com altas correntes. Suas maiores preocupações serão como o LED lida com uma alta corrente temporária e como o circuito de saída do seu chip pode lidar com uma alta corrente temporária. corrente alta. Se essa informação não estiver especificada na folha de dados, então os autores da folha de dados foram preguiçosos. MAS !!! Se essa informação estiver especificada na folha de dados, então você pode tirar proveito dela com segurança. Por exemplo, o LED que tenho a seguir para mim, tem uma classificação de corrente máxima de 40mA. No entanto, também tem uma classificação de ” Corrente direta de pico ” de 200mA, com uma nota que a corrente não pode permanecer em 200mA por mais de 10us. Entããão … posso acionar o LED com 1,7V (os LEDs de tensão direta típica do datasheet). Com um ciclo de trabalho de 34% e uma fonte de alimentação de 5V (34 % de 5 V = 1,7 V) irá produzir uma tensão média de 1,7 V, eu só preciso garantir que meu PWM no tempo seja de 10us ou menos. n-tempo, a corrente através do LED provavelmente aumentará para cerca de 58mA (58mA = consumo de corrente típico em 1,7 V do meu diodo dividido por 34%). 58mA excedem meus LEDs de corrente constante máxima de 40mA por 18 mA. Finalmente … eu precisaria de uma frequência PWM de 33,3 kHz ou maior para acionar com segurança meu LED (33,3 kHz = o inverso de [10us ON dividido por 34% para obter o período de PWM]). Em REALITY, eu poderia usar o PWM com segurança para alimentar meu LED com uma frequência PWM mais lenta. O motivo é o seguinte: as planilhas de dados geralmente não especificam todos os cenários operacionais válidos de um componente. Eles não especificam esses cenários porque o fornecedor não quer investir tempo em especificar e apoiar o uso de seu componente para uso em cantos casos. Por exemplo, com meu LED, se eu puder operar o LED a 40mA para sempre (40mA é a classificação máxima de corrente constante) e eu puder operar o LED a 200mA por 10us. Então, posso ter 99,99999% de certeza de que posso operar com segurança o LED a 100mA por um período maior que 10us, provavelmente perto de 20us.
NOTA: Todos os componentes podem lidar com picos de corrente temporários acima de suas classificações máximas, desde que a duração do os picos atuais são PEQUENOS O BASTANTE . Alguns componentes perdoarão mais do que outros e, se você tiver sorte, os componentes “s folha de dados irá especificar quão bem ele pode lidar com picos de corrente.
- A tensão de seu PWM é importante. Vou demonstrar meu ponto de vista por exemplo em vez de explicação. Se usarmos o LED a que me referi anteriormente, sabemos que o ciclo de trabalho de 34%, a 33,3 kHz, a 5 V é seguro. No entanto, se nossa tensão for 12 V, nós teria que refazer nossos cálculos para manter a mesma quantidade de corrente fluindo através do LED. Nosso ciclo de trabalho precisaria cair para 14,167% (1,7 V dividido por 12 V) e nossa frequência mínima de PWM diminuiria para 14,285 kHz (o inverso de [ 10us dividido por 14,167%]). NO ENTANTO! , isso é motivo de preocupação. No cenário de 5 V, estamos aplicando 5 V para 10us e no cenário de 12V estamos aplicando 12V para 10us. Nós mais do que dobramos a tensão durante aqueles 10us, deve haver algumas consequências. E sim, existem! Minha folha de dados de LED não me dá os dados necessários para saber a que altura de uma tensão que posso usar por 10 us antes de danificar meu LED. Certamente 1000 V por 10 us fritará meu LED. Mas, como posso saber se 5 V a 10 us fritará meu LED? ou 12 V por 10 us? Se não houver uma especificação para ele, você está correndo um risco. Então … 5V para 10us é arriscado, mas provavelmente seguro.
NOTA: Você pode adicionar um capacitor ao circuito para calcular a média do PWM e fazer com que esse problema desapareça.
-
Você também precisa estar ciente das capacidades do pino de saída ao qual conectou seu LED. O parâmetro mais importante será a corrente de saída máxima. Para o Arduino Uno, acredito que seja 40mA. Você deve escolher um ciclo de trabalho PWM cuja tensão média mantenha a corrente passando pelo LED abaixo de 40mA. Para saber quais tensões irão produzir tanta corrente, você precisa olhar a curva IV dos LEDs (gráfico de corrente vs. tensão). Para um LED típico, uma tensão entre 0,7 V (tensão mínima típica necessária para emitir luz do LED) e 1,25 V quase certamente será segura. Por que 1,25 V provavelmente é seguro? Bem, a maioria dos LEDs não ultrapassa 40mA a 1,25 V, mesmo sem um resistor limitador de corrente. Outra coisa que ajuda a proteger alguém no caso de aplicar muita tensão, é que o circuito de saída digital do Arduino terá sua própria impedância de saída, essa impedância de saída será baixa, mas mesmo uma impedância de saída de 20 ohm forneceria uma quantidade não desprezível de proteção. O arduino uno tem uma impedância de saída digital em torno de 250 ohms. Resumindo, se você dirigisse um LED usando PWM a 1,0 V em alta frequência, para um LED típico, há zero chance de você danificar sua saída digital em um Arduino Uno.
-
A abordagem PWM aciona o LED em um loop aberto (e o mesmo acontece com 1.Fonte de alimentação 7V sem PWM). Você está aplicando uma tensão média ao LED que é apenas o valor certo para LIGAR o LED, mas não alta o suficiente para danificar o LED. Infelizmente, a faixa de voltagem de LIGADO (e brilhante o suficiente para ver) ao LED danificado é muito pequena (essa faixa no meu LED é de cerca de 0,7 V). Existem vários motivos pelos quais o 1,7 V que você pensa que está aplicando não será sempre 1,7 V …
a. Mudanças na temperatura ambiente. E se você tivesse um driver de motor, regulador de tensão, etc. em uma caixa fechada que também continha o LED. Não seria incomum que esses outros componentes elevassem a temperatura ambiente dentro do gabinete de 25C para 50C. Este aumento de temperatura IRÁ mudar o comportamento de seu LED, seu regulador de tensão, etc. Seu uma vez seguro de 1,7 V não mais 1,7 V e seu LED que costumava fritar a 2,5 V agora vai fritar a 2,2 V.
b. Mudanças na tensão de alimentação. E se o seu suprimento fosse uma bateria. À medida que a bateria se esgota, a tensão cai consideravelmente. E se você projetou seu circuito para funcionar bem com uma bateria de 9V ligeiramente usada, mas adicionou uma bateria de 9V nova? As novas baterias de chumbo-ácido de 9 V normalmente têm uma tensão real de 9,5 V. Dependendo do circuito que está fornecendo os 5 V usados para o PWM, esse 0,5 V adicional pode aumentar seu PWM de 5 V para 5,3 V. E se você estivesse usando uma bateria recarregável? Eles têm uma faixa ainda maior de tensões ao longo de todo o seu ciclo de descarga.
c. Existem outros cenários, como corrente induzida de EMI (motores farão isso).
Ter um resistor limitador de corrente evita muitos desses problemas.
Usar PWM para acionar um LED não é uma solução muito boa. Existe uma maneira melhor de não exigir um resistor limitador de corrente?
Sim! Faça o que eles fazem em lâmpadas LED para sua casa. Acione o LED com um controlador de corrente. Defina o controlador de corrente para gerar a corrente para a qual seu LED está classificado.
Com o controlador de corrente adequado , pode ser aumentado drasticamente e você pode acionar o LED com segurança sem se preocupar com a maioria dos problemas envolvidos com o circuito aberto acionando um LED.
O lado negativo: Você precisa de um controlador de corrente e aumentou a complexidade do circuito em 10 vezes. Mas não desanime. Você pode comprar CIs de controlador de corrente, CIs de driver de LED ou fazer seu próprio conversor de boost controlado por corrente. Não é tão difícil. Reserve algum tempo da sua agenda lotada e aprenda sobre conversores de aumento e redução. Aprenda sobre como trocar as fontes de alimentação. Eles são o que alimenta o seu computador e são extremamente eficientes em termos de energia. Em seguida, crie um do zero ou compre um CI barato para fazer a maior parte do trabalho para você.
Claro, como acontece com todos os designs eletrônicos, sempre há mais coisas que você pode fazer para tornar seu circuito melhor. Confira a figura 3 no seguir o PDF para ver como até uma lâmpada LED doméstica pode ser complexa hoje em dia …
Resumindo: Você deve decidir por si mesmo quanto risco está disposto a levar com seu circuito. Usar 5 V PWM para acionar seu LED provavelmente funcionará bem (especialmente se você adicionar um capacitor para suavizar a onda quadrada de PWM e maximizar sua frequência de PWM). Não tenha medo de empurrar seus componentes eletrônicos para fora de sua operação usual condições de eração, apenas, esteja informado quando fizer isso, saiba os riscos que está correndo.
Divirta-se!
Para sua informação: Estou surpreso com quantas pessoas imediatamente respondem, ” VOCÊ DEVE USAR UM RESISTOR DE LIMITAÇÃO DE CORRENTE “. É um conselho bem intencionado, mas excessivamente seguro.
Ort
Comentários
- I ‘ estou surpreso ao ver quantas pessoas consideraram esta resposta um conselho de design valioso. Conduzir um LED sem limitação de corrente usando PWM é tão ruim para o LED quanto o que o OP está fazendo, além de gerar ondulação EMI e VCC como crasy.
- @DmitryGrigoryev, percebi que falhei completamente a corrente de saída máxima da saída digital. Eu adicionei um novo marcador para cobrir isso. O PWM permite que alguém conduza com segurança um LED sem um resistor limitador de corrente. A ondulação EMI e VCC é criada sempre que você dirige cargas com um sinal digital, mas isso é comum (por exemplo, H Bridge, Boost Converter, Hobby Servo Control, etc.) e dificilmente é uma razão para evitar PWM. Existem soluções razoáveis para lidar com a ondulação EMI e VCC, se necessário. A maioria das pessoas ‘ não se preocupa com as pequenas quantidades de ondulação EMI e VCC criadas ao acionar um LED com PWM.
Resposta
Você pode usar os resistores pullup integrados, conforme sugerido aqui :
Os resistores pullup fornecem corrente suficiente para acender suavemente um LED conectado a um pino que foi configurado como uma entrada.
Comentários
- Não para LEDs, pode ser usado para botões, mas para LEDs há perigo de interromper a saída
- se não for seguro, por que os documentos oficiais dizem isso? (Eu ‘ também tentei sozinho e funcionou conforme descrito.)
- Leia
OUTPUT
, menciona que precisa de um resistor em série: ” Esta é a corrente suficiente para acender intensamente um LED (não ‘ esqueça o resistor em série) , ou executar muitos sensores, por exemplo, mas não corrente suficiente para operar a maioria dos relés, solenóides ou motores. ” - @MenelaosVergis é seguro fazer isso quando o pino está no modo INPUT_PULLUP, não é seguro fazer com um pino no modo OUTPUT. Isso fica claro na documentação se você ler ambas as seções (e do trecho citado nesta resposta).
Resposta
A resposta curta é sim e não, depende do seu arduino e da cor do seu led. Por exemplo, uma placa de 3,3 V não requer um resistor em série com um pequeno LED verde, porque a tensão direta do LED é muito alta, consulte isto . A resistência interna é de cerca de 25 Ohm, pegue (3,3 – 3) / 25 = 12mA, então isso ainda está bom, você não deve ir além da corrente máxima por pino que é 40mA para o processador atmel 328p usado nas placas UNO (a menos você usa um derivado do 328p, onde poderia ser uma história diferente). No entanto, para um arduino funcionando a 5 V, surgirão problemas com um LED infravermelho que tem uma tensão direta muito mais baixa, normalmente 1,2 V, (5-1,2) / 25 = 150 mA, e isso é definitivamente muito, então use um limitador de corrente como como um resistor para acionar esses tipos de LEDs. O pino 13 nas placas Arduino (ou outro pino nas variantes) já tem um led e um resistor em série. Além disso, a fonte de alimentação da placa tem uma classificação máxima, normalmente 200mA, e você deve permanecer abaixo desse nível e não pode consumir mais do que uma certa quantidade de mA por grupo de pinos, isso é explicado aqui . Se você quiser acionar muitos LEDs, considere usar um driver de LED de matriz que faz a multiplexação para você, veja, por exemplo, minha área do youtube onde demonstro o driver MAX7219CNG. Mas também o Arduino Uno pode fazer a multiplexação para você, veja meu termômetro IR com 4 LEDs de sete segmentos no youtube. Feliz hackeamento.
Resposta
A resposta de stevenvh explica o que você precisa fazer, mas você também deve calcular a dissipação de energia pelo LED para que você não queime o resistor de queda de tensão. Por exemplo, se a tensão de alimentação é 5 V e a tensão direta do resistor é 1,0 V, então você vai cair 4 V. Usar um resistor de 220 ohm resultará em uma corrente de (I = V / R) de 18 mA e uma potência dissipação (P = IV) de 72mW.
0402 Resistores de tamanho imperial (1005 métricos) são geralmente 1 / 16W, que é 62,5mW. Portanto, neste caso, isso não funcionaria; iria superaquecer o resistor e encurtar sua vida útil. Portanto, você precisaria mudar para um resistor 0402 com classificação de 1 / 10W ou um resistor 0603 maior.
Sempre que fizer cálculos como esses, adicione-os ao esquema, para que o revisor pode verificar o seu trabalho facilmente.
Observe que a tensão direta (e, portanto, o valor do resistor) é uma função do LED, e cores diferentes de LEDs terão valores diferentes. Os LEDs azuis, em particular, têm uma alta tensão direta (tipo ~ 3,0 V). Portanto, se você estiver tentando fazer com que quatro LEDs diferentes tenham o mesmo brilho, será necessário repetir os cálculos para cada LED. Para fazer isso da maneira certa, observe as características ópticas de cada LED em sua corrente nominal e ajuste de acordo.
Resposta
SIM! Pode ser feito.
Mesmo que o que foi dito esteja correto … há outra maneira. Uma maneira mais eficiente em termos de energia de acionar LEDs com 5v.
Isso é um pouco não documentado e não se sabe se a solução vai desgastar os LEDs, mas pode ser feito. Estou realmente fazendo isso.
Usando PWM por hardware: Aqui está um exemplo :
#include <avr/io.h> #include <util/delay.h> void pwm_init() { // initialize TCCR0 as per requirement, say as follows TCCR0 |= (1<<WGM00)|(1<<COM01)|(1<<WGM01)|(1<<CS00); // make sure to make OC0 pin (pin PB3 for atmega32) as output pin DDRB |= (1<<PB3); } void main() { uint8_t duty; duty = 1; // duty cycle = 0.39% of the time (depends on the oscillator.) // initialize timer in PWM mode pwm_init(); // run forever while(1) { OCR0 = duty; } }
O PWM também pode ser simulado usando o software e os timers avrs. Você pode encontrar um exemplo dentro da biblioteca lufa, chamado LEDNotifier.c
.
Minha conclusão: É possível acionar um led em 5V.
PRÓS: Não há necessidade de resistor. Alguma energia economizando também (~ 50%)
CONTRAS: Não sei se o componente está estressado e sobre sua redução de vida útil.
Há um cara que também fez esse experimento em Stanford e postou algumas informações em seu site .
Comentários
- Isso simplesmente não ‘ não parece uma boa ideia. Você ‘ provavelmente está fornecendo mais corrente do controlador do que ‘ é classificado, mesmo se você ‘ não estiver fazendo isso por muito tempo.
- Como disse, isso não está oculto. A saída IO do Arduino UNO pode conduzir em torno de 40ma-50ma. Isso é constante. Com certeza posso lidar com pulsos muito curtos com mais corrente. Por favor, dê uma olhada em wikipedia .
- No ambiente Arduino, pode-se obter PWM mais facilmente com
analogWrite()
no pino correspondente. Ainda não tenho certeza se isso é uma boa ideia, mas pelo menos para LEDs IV, é ‘ comum que as planilhas de dados permitam correntes de pico consideravelmente mais altas para ciclos de trabalho inferiores a 100% . - Eu ‘ tenho certeza de que a economia de energia será negativa em comparação com uma solução baseada em resistor, porque a eficiência do LED fica menor conforme a corrente aumenta.
- @ScottSeidman Por que não ‘ essa é uma boa ideia? só porque a maioria das pessoas acredita que não é recomendável usar um LED sem resistor? esta resposta provou investigação, uma fonte muito respeitosa como a Universidade de Stanford e pelo que posso experimentar, funciona. Eu definitivamente adoro postagens rejeitadas porque dizem que aqueles que votaram contra são apenas tendenciosos. Que paradoxo …