Tutorials - Elettronica

 
 

Arduini & C : il pin 13.


Arduino Jones e la Leggenda del Pin13.

Il diffondersi di tecnologie sempre più complesse non ha avuto una corrispondente presa di conoscenze da parte degli utenti e ne risulta la creazione di numerose superstizioni che non sembra facile sradicare.

La motivazione è abbastanza semplice: in generale, siamo di fronte al fatto che si può essere anche un buon programmatore in C senza avere che nozioni quanto mai superficiali di elettronica. 

L'ambiente di Arduino e simili ha successo commerciale perchè si rivolge a utenti desiderosi di avere a che fare con la tecnologia, ma in gran parte ben poco ferrati sulle fondamentali nozioni di elettronica (ed elettrologia..) e tanto meno di cosa sia un microcontroller. 

Con questi presupposti, sommati al fatto che il WEB non sempre è fonte affidabile, ne consegue che si ripetono anche errori non minimali.

Tra questi, troviamo la certezza di poter far funzionare un LED senza un qualsiasi sistema di limitazione della corrente, che finisce per radicarsi principalmente tra gli utilizzatori di schede del genere Arduino e simili.

Troviamo pertanto immagini come questa:

Il LED è collegato tra il GND e il pin 13, inserito direttamente nel connettore, senza alcuna resistenza in serie.

Questo collegamento è replicato pari pari su molteplici siti, senza che gli utenti si pongano minimamente il problema della mancanza della resistenza in serie.

E ci si può imbattere anche in considerazioni più "filosofiche", come questa:

"...uno degli aspetti più fondamentali per la progettazione di circuiti che interagiscono con l'Arduino: l'utilizzo di resistenze limitanti di corrente. La resistenza limitante di corrente non è un elemento fondamentale in tutti i progetti Arduino..."

Ovvero, Arduino  e i suoi utenti sono al di sopra delle leggi fisiche che si applicano ai componenti elettronici e, di conseguenza, le resistenze in serie non sono un "elemento fondamentale" e possono essere omesse...


La leggenda del Pin 13.

Una breve ricerca sul WEB porta le seguenti informazioni:

  1. anche se il non mettere la resistenza in serie al LED riguarda una minoranza dei siti, alcuni (purtroppo) vantano un "certo nome"
     
  2. la maggioranza non si pone minimamente il problema (anche perchè, in generale, si tratta solamente di copie di lavori di altri, replicate a riempire pagine inutili)
     
  3. dove viene affrontato il problema, ci sono due posizioni
    a - fatelo, ma per tempi molto brevi perchè il LED si "rovina"
    (e il chip no?)
    b - "sul pin 13 su cui è già predisposta su scheda una resistenza serie di 1 K Ohm è quindi non è necessaria nessuna resistenza aggiuntiva "

Per il punto a-, si tratta, perlomeno, di superficialità. Cosa vuol dire "per tempi molto brevi"? Un secondo? Un minuto? Un secolo è molto, molto breve rispetto all'eternità....
Peraltro abbiamo dimostrato altrove che, almeno per un breve periodo, i microcontroller (esperimenti eseguiti su PIC Microchip) sopportano perfino un corto circuito alle uscite. Sono certo dei buoni componenti e possiamo, sapendo cosa facciamo, "tiragli il collo", ma solo se sappiamo cosa stiamo facendo. E se sappiamo di cosa si tratta, è difficile che lo facciamo...

Il punto b- afferma che il pin 13 ha caratteristiche diverse da tutti gli altri. Ma dove, sulle istruzioni della scheda, questo si trova scritto?

Concentriamoci su questo ultimo punto.


Come è nata la Leggenda del Pin 13.

I progettisti di Arduino hanno inserito su un pin (il famigerato pin 13) un LED giallo, surface mounted sul circuito stampato, perchè l'utente potesse avere immediatamente, senza aggiungere altri componenti, una visualizzazione dello stato di un pin.
Dal sito ufficiale di Arduino:

"...è di grande aiuto il fatto che sulla scheda è già montato un LED, per cui non c'e' nemmeno bisogno di comprarlo e montarlo; è collegato al pin 13..."

Ovviamente, al LED i costruttori hanno aggiunto una resistenza serie per contenere la corrente entro i limiti previsti per il funzionamento. La si può notare vicino al LED stesso.

Peraltro è da notare che il "pin13" era isolato con una resistenza in serie solo in una delle prime versioni di Arduino, in particolare Arduino NG.  

Sul sito del costruttore si possono visionare le varie release con le rispettive informazioni, dalle quali risulta che tutte le versioni successive a quella indicata NON hanno resistenza in serie al pin 13.

Da quanto sopra, si è creata la leggenda che al pin 13 di Arduino c'è una resistenza e che quindi non è necessario aggiungerla ad un LED esterno...

Uno dei peggiori principi operativi del WEB è la copia senza verifica, per cui la ghiotta informazione che si può eliminare l'odiosa resistenza è stata accolta acriticamente e si è diffusa peggio di un virus.

Certamente sul pin 13 di Arduino NG c'era una resistenza, ma questa situazione NON è più tale. Nei modelli di Arduino che avete in mano in questo momento NON ci sono resistenze in serie al pin13!

La resistenza sullo stampato non è in serie al pin, bensì al LED cablato sulla scheda e non svolge alcuna funzione di limitazione per LED collegati all'esterno della scheda stessa!!!

In tutti gli schemi disponibili delle varie versioni di Arduino recenti o attuali, il collegamento microcontroller-pin 13 è diretto, senza elementi in serie.  Piuttosto, c'è in derivazione il LED L.

Per inciso, il numero 13 è quello della morsettiera; il pin del microcontroller NON è il pin 13, ma è PB5 o PB7, a seconda della versione della scheda.

Per rendersi conto di come stanno in realtà le cose, basta guardare lo schema elettrico di Arduino Uno, ad esempio a https://www.arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf

Se seguiamo sullo schema la linea SCK, vediamo chiaramente che il "pin13" è collegato direttamente al pin 19 (PB5) del microcontroller senza alcuna resistenza in serie!!!

Certamente c'è una resistenza, che qui sono due in parallelo (RN2A/B), ma che sono derivate dalla linea SCK e sono in serie al LED indicatore L YELLOW saldato sullo stampato e non in serie al pin 13!

Quando collego il LED esterno tra il 13 e il 14 non ho alcuna resistenza di limitazione in serie!!!

Anzi, il pin deve sopportare la somma della corrente del LED L più quella del LED esterno, che sarà in parallelo a quello interno (che, però, ha la sua resistenza...).

Analoga situazione per Arduino 2009, con una sola resistenza in serie al LED L da 1K.

Perchè non avere una resistenza in serie al pin 13?

Perchè non servirebbe a nulla ! Anzi, impedirebbe l'uso del pin 13 per altre applicazioni diverse dall'accendere un LED. E per fare questo esiste già il LED L sullo stampato.

Peraltro, anche il carico imposto dal LED con 470ohm in serie potrebbe essere di impiccio se intendiamo usare il pin 13 come ingresso.
I progettisti hanno pensto anche a questo e in Arduino Mega hanno inserito la soluzione.

C'è un buffer LMV3581 a comandare il LED L, con lo scopo di sottrarre dalla linea del pin 13 (in questo caso PB7) solo la minima corrente del fan-in.

Questo consente di usare il pin13 anche come ingresso senza troppi problemi.

(Si spera che questa informazione non diventi la notizia che il pin 13 di Arduino Mega ha un buffer per cui...)

L'unica versione di Arduino in produzione, che contiene protezioni per i pin, è il Ruggeduino in cui i progettisti hanno inserito fusibili resettabili da 30mA (PTC da 220ohm) su ogni linea di I/O, più una protezione complessiva da 150mA sull'alimentazione del chip ed altre per sovratensioni, ecc.

Se si cerca con un attimo di attenzione, sul sito della stessa organizzazione creatrice di Arduino c'è chiaramente scritto:"...collegarlo direttamente tra un pin e la massa non è consigliabile, se non per tempi molto brevi,....  E' quindi necessario aggiungere una resistenza in serie al LED..."

Resta il problema dei "tempi molto brevi", che comporta parecchie considerazioni che trovate qui.


www.arduino.cc

Nell'esempio "blink a LED" troviamo questa immagine:

In conclusione:

se è lo stesso costruttore di Arduino a dirvi che la resistenza in serie va messa, perchè non ce la mettete?



Copyright © afg. Tutti i diritti riservati.
Aggiornato il 18/10/17.