Por que exatamente 470 ou 1k Ω? (para evitar danos no pino de saída)


12

Citação do tutorial do Arduino, seção Pinos Digitais :

Curtos-circuitos nos pinos do Arduino, ou tentar executar dispositivos de alta corrente a partir deles, podem danificar ou destruir os transistores de saída no pino ou danificar todo o chip Atmega. Muitas vezes, isso resultará em um pino "morto" no microcontrolador, mas o chip restante ainda funcionará adequadamente. Por esse motivo, é uma boa idéia conectar os pinos de SAÍDA a outros dispositivos com resistores de 470Ω ou 1k, a menos que o consumo máximo de corrente dos pinos seja necessário para uma aplicação específica.

Estes números são vodu para mim: Por que "470" ou "1k"? Por que não há exatamente um número fornecido, como "pelo menos 470Ω se houver um curto-circuito"?

Estou interessado porque considero usar o Arduino como um controlador de teclado e - nesse caso de uso - as linhas ficam basicamente em curto-circuito se um botão for pressionado. Claro, as linhas têm alguma resistência, mas ainda não tive a chance de medir.


2
Se você estiver usando os pinos para detectar botões, acho que os pinos seriam configurados como entradas. Nesse caso, colocar o pino no chão seria bom.
precisa saber é o seguinte

5
470 e 1000 são valores comuns que os funileiros provavelmente terão por aí. Portanto, é como "Use cerca de 500 a 1000 ohms!", Mas depois normalizado para valores comuns de resistores.
Kaz

Respostas:


18

Primeiro, um pouco sobre curto-circuitos: curto-circuito é um circuito que não possui nenhum elemento intencional de limitação de corrente no caminho da corrente. O resultado disso é que os elementos do circuito que normalmente usamos para ter zero resistência começam a atuar como resistores e o modelo matemático usual para quebras de fontes de alimentação geralmente resulta em tensão abaixo do esperado e superaquecimento destrutivo.

Ω5V470Ω10mUMAkΩ

No caso de realmente encurtar as linhas, você deve esperar totalmente que as próprias linhas apresentem resistência insignificante! Isso resultaria no curto-circuito direto dos pinos, o que, conforme escrito na citação, resultaria em pinos mortos. As linhas em curto também resultam em botões de pressão quebrados, uma vez que a corrente grande tem efeitos negativos na vida útil dos contatos, devido ao superaquecimento e faíscas. Em vez de usar curtos-circuitos para conectar linhas, a melhor maneira é colocar um resistor próximo ao solo da linha. Isso limitará a corrente quando a linha for ligada. Ao colocar o resistor próximo à conexão de aterramento da linha, garantimos que a maior queda de tensão na linha esteja no seu final; portanto, se o colocarmos em curto com outra linha de detecção usando um botão, a linha de detecção verá a tensão total.

Os pinos definidos como entrada também estão no modo chamado "alta impedância", o que significa que eles se comportam como se fossem um resistor com uma resistência muito grande conectada ao terra. Se você tiver 100% de certeza de que o pino será apenas um pino sensor, não será necessário colocar outro resistor na frente dele. Mesmo nesse caso, é uma boa ideia colocar um resistor, porque você pode acidentalmente definir um pino como algo diferente de entrada e potencialmente causar um curto-circuito. Se você colocar o resistor, lembre-se de que haverá muito pouca corrente passando pela linha de detecção, o que significa que a queda de tensão no resistor será muito baixa, o que fará com que o pino veja a tensão total.

Se você quiser um pouco mais de "leitura avançada", consulte a folha de dados do ATmega328, que é um dos microcontroladores usados ​​em alguns Arduinos. Na seção 29. Características elétricas, você verá que, em Classificações máximas absolutas, a corrente por pino de E / S é de 40 mA e para o dispositivo total é de 200 mA.

ATUALIZAÇÃO: Não confunda Classificações máximas absolutas com classificações operacionais! O aviso de ele está na folha de dados do ATmega32U4:

NOTICE: Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent dam- age to the device. This is a stress rating only and functional operation of the device at these or other conditions beyond those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability.

Aqui estão notas de rodapé da página 379 da mesma folha de dados:

Although each I/O port can sink more than the test conditions (20mA at VCC = 5V, 10mA at VCC = 3V) under steady state conditions (non-transient), the following must be observed: ATmega16U4/ATmega32U4: 1.)The sum of all IOL, for ports A0-A7, G2, C4-C7 should not exceed 100 mA. 2.)The sum of all IOL, for ports C0-C3, G0-G1, D0-D7 should not exceed 100 mA. 3.)The sum of all IOL, for ports G3-G5, B0-B7, E0-E7 should not exceed 100 mA. 4.)The sum of all IOL, for ports F0-F7 should not exceed 100 mA. If IOL exceeds the test condition, VOL may exceed the related specification. Pins are not guaranteed to sink current greater than the listed test condition. 4. Although each I/O port can source more than the test conditions (20mA at VCC = 5V, 10mA at VCC = 3V) under steady state conditions (non-transient), the following must be observed: ATmega16U4/ATmega32U4: 1)The sum of all IOH, for ports A0-A7, G2, C4-C7 should not exceed 100 mA. 2)The sum of all IOH, for ports C0-C3, G0-G1, D0-D7 should not exceed 100 mA. 3)The sum of all IOH, for ports G3-G5, B0-B7, E0-E7 should not exceed 100 mA. 4)The sum of all IOH, for ports F0-F7 should not exceed 100 mA. 5. All DC Characteristics contained in this datasheet are based on simulation and characterization of other AVR microcon- trollers manufactured in the same process technology. These values are preliminary values representing design targets, and will be updated after characterization of actual silicon


Isso é ótimo, obrigado por escrever esses detalhes para nós.
23913 Patrick Hughes

Obrigado pela compreensão! No título, agora corrigi o pino de entrada no pino de saída . A propósito, pretendo usar um Leonardo, que é baseado no ATmega32u4 . Seus 5 pinos VI / O são especificados para até 40 mA.
feklee

@feklee Tenha muito cuidado aqui! Esses pinos são especificados para morrer a 40 mA! Dê uma olhada na plena folha de dados e prestar especial atenção para as notas de rodapé na página 379 e com o aviso na página 378.
AndrejaKo

1
De fato, essas notas de rodapé são tão importantes que as citarei aqui na resposta.
AndrejaKo

13

A resposta curta é que o Arduino é direcionado a entusiastas com pouco conhecimento em engenharia elétrica, e suas instruções são simplificadas o suficiente para entender o ponto. Esses dois valores são seguros e oferecem ao usuário uma opção em vez de uma demanda fixa.

Ambos são resistores de tamanho padrão. 470Ω e 1kΩ, quando usado com a tensão Arduino 5V VCC, fornece um consumo de corrente seguro (5v / 470Ω ~ 0,011A (11mA), 5/1000 = 0,005A (5mA)). E o consumo atual é utilizável para transistores, leds ou peças similares.

Francamente, qualquer resistor de valor que fornecerá um consumo de corrente dentro do máximo da corrente de pinos do microprocessador (40mA) funcionará. Isso significa qualquer resistor acima de 125Ω.


Obrigado, também por explicar por que esses resistores são populares!
feklee

1
@feklee eu não posso ver uma explicação completa sobre isso, mas você pode estar interessado nele: en.wikipedia.org/wiki/E24_series#E_series
TNW
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.