Perché esattamente 470 o 1k Ω? (per evitare danni al pin di uscita)


12

Citazione dal tutorial di Arduino, sezione Pin digitali :

I cortocircuiti sui pin Arduino o il tentativo di far funzionare dispositivi ad alta corrente da essi possono danneggiare o distruggere i transistor di uscita nel pin o danneggiare l'intero chip Atmega. Spesso questo si traduce in un pin "morto" nel microcontrollore, ma il chip rimanente funzionerà ancora in modo adeguato. Per questa ragione è una buona idea collegare i pin OUTPUT ad altri dispositivi con resistori da 470Ω o 1k, a meno che non sia richiesta la massima corrente assorbita dai pin per una particolare applicazione.

Questi numeri sono voodoo per me: perché "470" o "1k"? Perché non viene fornito esattamente un numero, come "almeno 470Ω se altrimenti ci sarebbe un corto circuito"?

Sono interessato perché prendo in considerazione l'utilizzo di Arduino come controller da tastiera e, in questo caso d'uso, le linee sono sostanzialmente in corto circuito se si preme un pulsante. Certo, le linee hanno una certa resistenza, ma non ho ancora avuto la possibilità di misurarla.


2
Se si utilizzano i pin per rilevare i pulsanti, penso che i pin verrebbero configurati come input, nel qual caso cortocircuitare il pin a terra andrebbe bene.
Gorloth,

5
470 e 1000 sono valori comuni che gli armeggi possono avere in giro. Quindi questo è come "Usa da 500 a 1000 ohm!", Ma poi normalizzato ai valori di resistenza comuni.
Kaz,

Risposte:


18

Prima un po 'di cortocircuiti: il cortocircuito è un circuito che non ha elementi intenzionali di limitazione della corrente nel percorso della corrente. Il risultato è che gli elementi circuitali che normalmente prendiamo per avere resistenza zero iniziano a fungere da resistori e il solito modello matematico per interruzioni degli alimentatori spesso si traduce in una tensione inferiore al previsto e un surriscaldamento distruttivo.

Ω5V470Ω10mAkΩ

In caso di linee effettivamente in corto, dovresti aspettarti che le linee stesse abbiano una resistenza trascurabile! Ciò comporterebbe il cortocircuito diretto dei pin, che come scritto nella citazione, comporterebbe pin morti. Anche le linee in cortocircuito spesso provocano la rottura di pulsanti, poiché una grande corrente ha effetti negativi sulla durata dei contatti del pulsante a causa di surriscaldamento e scintille. Invece di utilizzare i cortocircuiti per il collegamento delle linee, il modo migliore è posizionare un resistore vicino al terreno della linea. Ciò limiterà la corrente all'accensione della linea. Posizionando il resistore vicino alla connessione di terra della linea, ci assicuriamo che la massima caduta di tensione sulla linea sia alla sua estremità, quindi se la cortocircuiamo con un'altra linea di rilevamento mediante un pulsante, la linea di rilevamento rileva la piena tensione.

Anche i pin impostati come input si trovano nella cosiddetta modalità "alta impedenza", il che significa che si comportano come se fossero una resistenza con una resistenza molto grande collegata a terra. Se si è sicuri al 100% che il pin sarà solo un pin di rilevamento, non è necessario posizionarvi un altro resistore. Anche in quel caso, è una buona idea mettere un resistore perché potresti accidentalmente impostare un pin come qualcosa di diverso dall'input e potenzialmente causare un corto circuito. Se si posiziona il resistore, tenere presente che ci sarà pochissima corrente che attraversa la linea di rilevamento, il che significa che la caduta di tensione sul resistore sarà molto bassa, il che provocherà la piena tensione del pin.

Se desideri ulteriori "letture avanzate" puoi dare un'occhiata al foglio dati di ATmega328, che è uno dei microcontrollori utilizzati in alcuni Arduinos. Nella sezione 29. Caratteristiche elettriche, vedrai che in Valori nominali massimi assoluti, la corrente per pin I / O è 40 mA e per il dispositivo totale è 200 mA.

AGGIORNAMENTO: Non confondere le valutazioni massime assolute con le valutazioni operative! AVVISO dal foglio dati di 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.

Ecco le note a piè pagina da pagina 379 dello stesso foglio dati:

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


È fantastico, grazie per averci scritto in modo così dettagliato.
Patrick Hughes,

Grazie per la comprensione! Nel titolo, ora ho corretto il pin di input al pin di output . Ho intenzione di usare un Leonardo, tra l'altro, basato sull'ATmega32u4 . I suoi 5 pin VI / O sono specificati per un massimo di 40 mA.
febbraio

@feklee Stai molto attento qui! Quei pin sono specificati per morire a 40 mA! Dai un'occhiata al foglio dati completo e presta particolare attenzione alle note a pagina 379 e all'avviso a pagina 378.
AndrejaKo

1
In effetti quelle note sono così importanti che le citerò qui nella risposta.
AndrejaKo

13

La risposta breve è che Arduino è rivolto a appassionati con poca conoscenza dell'ingegneria elettrica e le sue istruzioni sono abbastanza semplificate da far passare il punto. Questi due valori sono sicuri e offrono all'utente un'opzione anziché una domanda fissa.

Entrambi sono resistori di dimensioni standard. 470Ω e 1kΩ, se usati con la tensione Arduino 5V VCC, forniscono un assorbimento di corrente sicuro (5v / 470Ω ~ 0,011A (11mA), 5/1000 = 0,005A (5mA)). E il disegno corrente è utilizzabile per transistor o led o parti simili.

Francamente, qualsiasi resistore di valore che fornirà un assorbimento di corrente entro il massimo della corrente del pin del microprocessore (40 mA) funzionerà. Ciò significa che qualsiasi resistenza superiore a 125Ω.


Grazie, anche per aver spiegato perché questi resistori sono popolari!
febbraio

1
@feklee Non riesco a vedere una spiegazione completa di questo, ma potresti esserne interessato: en.wikipedia.org/wiki/E24_series#E_series
TNW
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.