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:
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.
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.
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,
Rsi 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.