Limites de drenagem de corrente nos pinos de I/Os do Arduino

Caro Senhores,

Venho através deste esclarecer uma dúvida pertinente quanto a questão do limite de corrente nos pinos do Arduino.

Podemos ver na informação do fabricante do microcontrolador do Arduino os limites máximo

suportável pelo mesmo, mas isso não traduz que ele possa trabalhar operando nos seus limites,

observe no quadro acima 29.1 Absolute Maximum Ratings*, um asterisco, este está explicado ao

lado em NOTICE: Simplificando que se trabalhar nesses limites poderá causar danos permanente

ao componente, que pode afetar o modo operacional dele, em resumo não é recomendado.

Exibições: 1666

Responder esta

Respostas a este tópico

Olá Carlos,

Bom que abriu esta discussão, segue o link do PDF completo do seu post.

http://www.atmel.com/Images/doc8161.pdf#page=313

Note que todos os sites de consulta até mesmo o site oficial do Arduino menciona como dreno máximo de porta 40mA, sabemos que assim como tudo na vida, não devemos exigir o máximo de nossa capacidade ou daquilo que vamos usar, a eletrônica faz parte deste conceito e os limites máximos devem ser considerados como máximo.

De qualquer maneira vou fazer testes de Stress com uma placa que tenho aqui sem importar o dano, a intenção é postar aqui resultados que possam ser uteis para todos, para mim inclusive é claro, já que tenho algumas placas trabalhando em alguns projetos drenando aproximadamente 40mA em uma porta a mais de um ano e não tive nenhum problema até hoje.

Grande abraço!

Estas imagens são baseadas no datasheet do ATMEGA 2560 (Arduino Mega). São um esquemático pra facilitar a compreensão, refletem as indicaćões do fabricante.

Só pra esclarecer, porque talvez o desenho não deixe claro:

Quando falamos em distribuićão de correntes máximas, estamos nos referindo à SOMATÓRIA de correntes que podem ser aplicadas a cada CONJUNTO de pinos, que no desenho eu separei em cores para melhor entendimento.

Por exemplo, para os pinos definidos pela cor VERDE, a somatória de correntes não pode ultrapassar 100 mA, de acordo com o datasheet, mesmo que a corrente máxima de cada pino, individualmente, seja 40 mA.

Então, se colocar um led de 20 mA no pino 13, ok. Mas se colocar 1 led de 20 mA em cada pino verde, a somatória vai ultrapassar o máximo que aquele conjunto suporta (20 mA x 8 pinos =160 mA > 100 mA). Arduino queimado na certa.

O correto seria então distribuir 4 leds no conjunto verde e 4 no azul. Por exemplo, utilizando os pinos 6, 7, 8, 9, 18, 19, 20 e 21. Assim, teria apenas 80 mA em cada conjunto de pinos, nenhum deles estaria trabalhando em sua capacidade máxima e a somatória de carga daquele conjunto também não seria ultrapassada.

Melhor ainda seria colocar 2 leds em pinos de conjuntos diferentes, por exemplo, 2 no verde, 2 no azul, 2 no vermelho e 2 no laranja. Seriam apenas 40 mA para cada conjunto, evitando o aquecimento indesejado do conjunto e prolongando a vida do Arduino.

Agora vamos supor que queremos colocar 15 leds de 20 mA no Arduino (300 mA): neste caso precisamos de alimentaćão externa, porque como lembrou o Carlos, a corrente máxima que o Vcc e o Ground suportam é apenas 200 mA. E para evitar aquecimento, é bom não passar de 150 mA. 

O que eu costumo fazer quando ultrapasso de 150 mA, além de considerar os limites de corrente para cada conjunto: alimentaćão externa, ativada por transistores.

Acontece que a base de um transístor comum consome muito pouca corrente, mesmo configurada como chave, e esse valor é facilmente encontrado por meio de datasheets e cálculo de polarizaćão.

Ligando a base do transistor no pino do Arduino, e usando o transistor como chave para ativar uma corrente maior, facilmente você alcanća 1A com seu Arduino sem risco de explosões indesejadas. 

Pode também utilizar um opto-acoplador, que nada mais é que um transistor isolado eletronicamente, daí vc pode se divertir.

Usando optos, transistores, relays, contatores e as devidas protećões e dimensionamentos, já consegui ativar um motor trifásico, sem perigo nenhum.

Alexandre, quero dar a você meus parabéns pela explanação.

Carlos Machado.

Alexandre,

De acordo ao que você dia o Carlos parabeniza, eu poderia colocar 4 leds em uma porta somente, sempre que eu limitar a corrente a 40mA na porta. Exemplo: 4 LEDS X 10mA cada um.

Concorda?

Abs.

Concordo, claro: não é o numero de leds que importa, e sim a tensão drenada.

Não é a tensão mas a corrente drenada que importa.

Wiechert,

Acho que o Alexandre deve ter errado na hora de escrever e não revisou, mas fez bem em alertar.

Abraço.

Opsss..... Foi mal! Eu quis dizer corrente drenada!

A tensão não tem nada a ver com a corrente, acho que se equivocou na hora de escrever, certo? Também falei sobre um numero de leds para exemplificar, poderia ter dito dois com uma corrente de 20mA cada um, a ideia era esclarecer sobre este conceito.

Porque digo isso, porque este tópico nasceu de uma afirmação do nosso colega Carlos Machado que asseverou que nunca deveria colocar 40mA em uma porta, já que este é o máximo absoluto segundo o data do fabricante.

Embora nos sites oficiais e não oficiais do Arduino não exista tal recomendação, ao contrario existe menção a que cada porta pode ser usada com o limite de 40mA, e sabemos que geralmente este limite quando recomendado se sabe que é um parâmetro de segurança, tanto assim que tenho vários projetos com placas de Arduino trabalhando a alguns anos sem problemas drenando 40mA em uma só porta.

A raiz deste tópico aberto nasceu por minha postagem aqui:

http://labdegaragem.com/forum/topics/mais-de-um-led-ligado-a-uma-porta

E como o Carlos no chat sugeriu que isso não deveria ser feito, sugeri a ele abrir este, para que se abra um debate sobre o assunto.

Um abraço! 

Complementando a discussão, iniciada há tempos, eu fiquei devendo um diagrama pro ATMEGA328 (Arduino Uno, Nano, etc.), acabo de achar esse link:

Registradores

mais este:

Eletricidade e Arduino

e este:

Corrente nos Ports

Além deste diagrama, que acho que fecha a questão:

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço