3.6. Nozioni di base di elettronica

Per pilotare qualsiasi dispositivo esterno da un pin GPIO serve un circuito sull’altro lato del pin. Tre concetti dell’elettronica di base – tensione, corrente e la relazione tra loro attraverso una resistenza – compaiono in ogni circuito di questo tipo.

3.6.1. Tensione, corrente, resistenza

  • La tensione (volt, V) è la differenza di potenziale tra due punti di un circuito. Il binario di alimentazione del chip potrebbe trovarsi a 3,3 V rispetto a massa; un pin GPIO portato a livello alto si trova agli stessi 3,3 V.

  • La corrente (ampere, A, o milliampere, mA) è il flusso di carica attraverso un filo. La corrente torna sempre da dove è venuta, quindi affinché qualsiasi corrente scorra il circuito deve formare un anello completo dall’alimentazione fino a massa.

  • La resistenza (ohm, Ω) indica quanto il percorso si oppone a quel flusso. Lo scopo di una resistenza è impostare la corrente a un valore noto a una tensione nota.

La legge di Ohm li lega insieme:

Un triangolo diviso in tre regioni etichettate V in alto, I e R in basso; intorno compaiono le forme riarrangiate V = IR, I = V/R, R = V/I.

La legge di Ohm nelle sue tre forme.

In parole: la tensione ai capi di una resistenza è uguale alla corrente che la attraversa moltiplicata per la resistenza. Conoscendo due qualsiasi delle tre grandezze si ottiene la terza con l’algebra.

3.6.2. Diodi

Un diodo è un componente a due terminali che conduce corrente in una sola direzione (dall”anodo al catodo) e la blocca nell’altra.

Il simbolo schematico di un diodo -- un triangolo che punta a destra verso una barra verticale -- con l'anodo indicato a sinistra e il catodo a destra. Una variante LED aggiunge due frecce rivolte verso l'esterno accanto al simbolo per indicare la luce emessa.

Un diodo conduce solo dall’anodo al catodo. Un LED è un diodo che emette luce mentre conduce.

Un diodo ha anche una tensione di soglia diretta (Vf) – la caduta di tensione ai suoi capi quando la corrente scorre nella direzione di conduzione. Una volta che la tensione applicata raggiunge Vf il diodo si comporta all’incirca come un filo; al di sotto di essa non scorre quasi alcuna corrente.

3.6.3. LED

Un diodo a emissione luminosa (LED) è un diodo che converte la sua corrente di conduzione in luce visibile o infrarossa. La luminosità cresce con la corrente; il colore è determinato dalla chimica del LED, non dal pilotaggio.

Tensioni dirette tipiche dei LED:

  • Rosso: 1,8 – 2,2 V

  • Verde o giallo: 2,0 – 2,4 V

  • Blu o bianco: 2,8 – 3,4 V

Una corrente di funzionamento utile per un LED indicatore è 5 – 20 mA. Correnti più elevate sono più luminose ma riducono la vita del LED e possono superare il limite di pilotaggio del pin GPIO.

3.6.4. La resistenza di limitazione della corrente

Collegare un LED direttamente tra un pin GPIO e massa lascerebbe scorrere una corrente pressoché illimitata: una volta raggiunta la tensione diretta, il LED si comporta come un cortocircuito. Una resistenza in serie tra il pin e il LED imposta la corrente a un valore sicuro.

Un circuito: il pin GPIO si collega attraverso una resistenza R all'anodo di un LED; il catodo del LED va a massa. Le etichette indicano Vsupply al pin, V_R ai capi della resistenza, Vf ai capi del LED e la corrente If che scorre lungo l'anello.

Una resistenza in serie imposta la corrente del LED.

La tensione di alimentazione si ripartisce tra la resistenza e il LED: il LED cade della sua tensione diretta, la resistenza cade del resto. Per la legge di Ohm:

R = (Vsupply - Vf) / If

Per un LED rosso (Vf 2.0 V) pilotato da un pin GPIO a 3,3 V a 10 mA:

R = (3.3 - 2.0) / 0.010 = 130 Ω

In pratica, scegli il valore standard immediatamente superiore (150 Ω o 220 Ω). Il risultato è un LED leggermente meno luminoso con un margine di sicurezza più sano. Affidati a 200 – 470 Ω come valore predefinito ragionevole quando la luminosità esatta non è importante.

3.6.5. Perché ogni elemento è importante

La forma di ogni circuito di uscita GPIO deriva dalle quattro idee precedenti:

  • La tensione stabilisce l’energia disponibile al pin. Un GPIO a 3,3 V ha 3,3 V da spendere su qualsiasi cosa sia cablata tra esso e massa.

  • Un diodo (un LED, in questo caso) consuma parte di quella tensione come sua caduta diretta e rifiuta di condurre nella direzione sbagliata – stabilisce in quale verso e la quota fissa.

  • Una resistenza di limitazione della corrente consuma la tensione rimanente e trasforma il budget residuo in una corrente controllata. Senza di essa, il LED assorbirebbe qualunque corrente il pin sia in grado di fornire – di solito sufficiente a distruggere l’uno o l’altro, o entrambi.

  • La legge di Ohm è ciò che rende calcolabile il valore della resistenza: data la tensione residua e la corrente desiderata, R si ricava per algebra.

Tensione, corrente, resistenza, diodi e un’equazione riarrangiata bastano a progettare ogni stadio di uscita GPIO di base.

Gli stessi componenti si sono nascosti dietro il LED integrato per tutto il tempo. machine.LED("LED_RED").on() accende il LED perché la scheda della camera fornisce già tutto ciò che lo circonda – la resistenza di limitazione della corrente, il filo verso massa, il LED stesso – e la classe si limita a commutare il GPIO del silicio dietro di essi. L’idea che «una riga accende un LED» è vera; è solo un modo breve per dire «pilota quel circuito». Togli l’astrazione ed esattamente il circuito qui sopra è ciò che rimane.

machine.Pin è lo stesso silicio esposto senza i componenti circostanti. Lo script controlla direttamente la tensione del pin; sei tu a fornire la resistenza (dimensionata con la legge di Ohm), il LED e il percorso di ritorno a massa. Le stesse quattro idee tornano, in combinazioni leggermente diverse, dietro il debouncing degli interruttori, il filtraggio PWM e il pilotaggio dei motori.