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:

A triangle divided into three regions labelled V at top, I and R at the bottom; the rearranged forms V = IR, I = V/R, R = V/I appear around it.

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.

A diode schematic symbol -- a triangle pointing right into a vertical bar -- with anode marked on the left and cathode on the right. An LED variant adds two outward arrows next to the symbol indicating emitted light.

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.

A circuit: GPIO pin connects through a resistor R to the anode of an LED; the LED's cathode goes to ground. Labels mark Vsupply at the pin, V_R across the resistor, Vf across the LED, and the current If flowing around the loop.

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.