¿Por qué exactamente 470 o 1k Ω? (para evitar daños en el pin de salida)

Cita del tutorial de Arduino, sección Pines digitales :

Los cortocircuitos en los pines de Arduino, o intentar ejecutar dispositivos de alta corriente desde ellos, pueden dañar o destruir los transistores de salida en el pin, o dañar todo el chip Atmega. A menudo, esto dará como resultado un pin "muerto" en el microcontrolador, pero el chip restante seguirá funcionando adecuadamente. Por esta razón, es una buena idea conectar los pines de SALIDA a otros dispositivos con resistencias de 470 Ω o 1k, a menos que se requiera un consumo máximo de corriente de los pines para una aplicación en particular.

Estos números son vudú para mí: ¿Por qué "470" o "1k"? ¿Por qué no se proporciona exactamente un número, como "al menos 470 Ω si de lo contrario hubiera un cortocircuito"?

Estoy interesado porque considero usar Arduino como controlador de teclado y, en este caso de uso, las líneas básicamente se cortocircuitan si se presiona un botón. Por supuesto, las líneas tienen cierta resistencia, pero aún no tuve la oportunidad de medirla.

Si está utilizando los pines para detectar botones, creo que los pines se configurarían como entradas, en cuyo caso estaría bien acortar el pin a tierra.
470 y 1000 son valores comunes que es probable que los manipuladores tengan por ahí. Entonces esto es como "¡Use alrededor de 500 a 1000 ohmios!", pero luego se normaliza a valores de resistencia comunes.

Respuestas (2)

Primero, un poco sobre los cortocircuitos: el cortocircuito es un circuito que no tiene elementos de limitación de corriente intencionales en el camino de la corriente. El resultado de eso es que los elementos del circuito que normalmente consideramos que tienen resistencia cero comienzan a actuar como resistencias y el modelo matemático habitual para las fuentes de alimentación se rompe, lo que a menudo resulta en un voltaje más bajo de lo esperado y un sobrecalentamiento destructivo.

Debido a las especificaciones de corriente máxima del microcontrolador, necesita un elemento resistivo en el camino de la corriente que va desde un pin. Puede esperar que el pin muera emitiendo 40 mA y, si no recuerdo mal, 200 mA de todos los pines en el mismo momento. El voltaje nominal para este sistema es de 5 V, así que veamos qué pasa si calculamos la corriente con 470 Ω : 5 V 470 Ω 10 metro A . Esto resulta ser un valor bueno y sensato para la corriente que no dañará el microcontrolador. Si en cambio usas 1 k Ω resistencia, obtendrá 5 mA, que es aún más seguro y consume incluso menos energía. Además, esos dos valores de resistencias son relativamente populares y, al mismo tiempo, proporcionan corrientes pequeñas pero no tan pequeñas como para tener que tener en cuenta la capacitancia de las trazas cuando se trabaja con ellas.

En caso de que las líneas se acorten, ¡debería esperar que las líneas en sí mismas tengan una resistencia insignificante! Esto daría como resultado un cortocircuito directo de los pines, lo que, como está escrito en la cita, daría como resultado pines muertos. Además, las líneas en cortocircuito a menudo dan como resultado botones pulsadores rotos, ya que una gran corriente tiene efectos negativos en la vida útil de los contactos del botón pulsador debido al sobrecalentamiento y las chispas. En lugar de usar cortocircuitos para conectar líneas, la mejor manera es colocar una resistencia cerca de la tierra de la línea. Esto limitará la corriente cuando la línea esté encendida. Al colocar la resistencia cerca de la conexión a tierra de la línea, nos aseguramos de que la mayor caída de voltaje en la línea esté en su extremo, por lo que si la cortamos con otra línea de detección usando un botón, la línea de detección ve el voltaje completo.

Además, los pines configurados como entrada están en el llamado modo de "alta impedancia", lo que significa que se comportan como si fueran una resistencia con una resistencia muy grande conectada a tierra. Si está 100% seguro de que el pin será solo un pin de detección, entonces no necesita colocar otra resistencia delante de él. Incluso en ese caso, es una buena idea colocar una resistencia porque podría configurar accidentalmente un pin como algo que no sea una entrada y causar un cortocircuito. Si coloca la resistencia, tenga en cuenta que habrá muy poca corriente a través de la línea de detección, lo que significa que la caída de voltaje en la resistencia será muy baja, lo que hará que el pin vea el voltaje completo.

Si desea más "lectura avanzada", puede consultar la hoja de datos de ATmega328, que es uno de los microcontroladores utilizados en algunos Arduinos. En la sección 29. Características eléctricas, verá que en las clasificaciones máximas absolutas, la corriente por pin de E/S es de 40 mA y para el dispositivo total es de 200 mA.

ACTUALIZACIÓN: ¡No confunda las calificaciones máximas absolutas con las calificaciones operativas! Aquí hay un aviso de la hoja de datos para 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.

Aquí hay notas a pie de página de la página 379 de la misma hoja de datos:

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

Esto es genial, gracias por escribir con tanto detalle para nosotros.
¡Gracias por la información! En el título, ahora corregí pin de entrada a pin de salida . Planeo usar un Leonardo, por cierto, que está basado en el ATmega32u4 . Sus 5 pines VI/O están especificados para hasta 40 mA.
@feklee ¡Ten mucho cuidado aquí! ¡Esos pines están especificados para morir a 40 mA! Eche un vistazo a la hoja de datos completa y preste especial atención a las notas a pie de página en la página 379 y al aviso en la página 378.
De hecho, esas notas al pie son tan importantes que las citaré aquí en la respuesta.

La respuesta corta es que Arduino está dirigido a aficionados con poco conocimiento de ingeniería eléctrica, y sus instrucciones están lo suficientemente simplificadas como para transmitir el mensaje. Esos dos valores son seguros y le dan al usuario una opción en lugar de una demanda fija.

Ambos son resistores de tamaño estándar. 470 Ω y 1 kΩ, cuando se usan con el voltaje VCC de 5 V de Arduino, proporcionan un consumo de corriente seguro (5 V/470 Ω ~ 0,011 A (11 mA), 5/1000 = 0,005 A (5 mA)). Y el consumo de corriente es utilizable para transistores o leds o partes similares.

Francamente, funcionará cualquier valor de resistencia que genere un consumo de corriente dentro del máximo de la corriente del pin del microprocesador (40 mA). Eso significa cualquier resistencia por encima de 125Ω.

¡Gracias, también por explicar por qué estas resistencias son populares!
@feklee No puedo ver una explicación completa de esto, pero podría interesarle: en.wikipedia.org/wiki/E24_series#E_series