3.9. Interruttori e resistori di pull

L’uscita GPIO pilota l’hardware esterno. L’ingresso GPIO è l’opposto: la camera legge la tensione su un pin e la riporta come 0 o 1. Il dispositivo di ingresso più semplice è un interruttore – e renderlo leggibile in modo affidabile richiede un componente elettronico in aggiunta all’interruttore stesso.

3.9.1. Interruttori e ingressi flottanti

Un interruttore è un contatto meccanico: due pezzi di metallo che si toccano quando l’interruttore è chiuso e si separano quando è aperto. Elettricamente, questo è l’intero dispositivo. Non c’è alcuna sorgente di tensione al suo interno; un interruttore da solo fornisce solo «connesso» o «disconnesso».

Cablare un interruttore direttamente tra un pin GPIO e la massa significa che il pin è:

  • A 0 V quando l’interruttore è chiuso (ora cablato alla massa).

  • Flottante quando l’interruttore è aperto (cablato a nulla).

Un pin flottante non ha una tensione definita. L’ingresso legge qualunque cosa si trovi nelle sue vicinanze – diafonia da segnali vicini, rumore dall’alimentazione, persino l’elettricità statica di un dito vicino al filo. value() restituisce miscele imprevedibili di 0 e 1 molte volte al secondo.

3.9.2. Resistori di pull-up e pull-down

La soluzione è un resistore di pull: un resistore di valore elevato (tipicamente da 10 kΩ a 100 kΩ) che lega l’ingresso a una linea nota quando l’interruttore è aperto.

Due schemi circuitali affiancati. A sinistra: un circuito di pull-up con un resistore dal pin di ingresso verso l'alimentazione e un interruttore dal pin di ingresso verso GND. A destra: un circuito di pull-down con un resistore dal pin di ingresso verso GND e un interruttore dal pin di ingresso verso l'alimentazione.

Configurazioni di pull-up (a sinistra) e pull-down (a destra) per un ingresso a interruttore.

  • Pull-up. Il resistore lega l’ingresso alla linea di alimentazione. Quando l’interruttore è aperto, solo una piccola corrente scorre attraverso il resistore e il pin legge alto. Quando l’interruttore è chiuso, cortocircuita il pin a massa; il pin legge basso. Il resistore limita la corrente che altrimenti scorrerebbe dall’alimentazione alla massa attraverso l’interruttore chiuso.

  • Pull-down. L’immagine speculare: il resistore lega l’ingresso alla massa e l’interruttore si collega all’alimentazione. Aperto legge basso, chiuso legge alto.

Il pull-up è la convenzione più comune – pulsanti «attivi bassi». L’MCU stesso fornisce pull-up e pull-down integrati che possono essere abilitati con Pin.PULL_UP o Pin.PULL_DOWN, eliminando del tutto il resistore esterno.