GPIO – General Purpose Input Output: guida completa
Oggi ti spiego cos’è il GPIO e come funziona. Se lavori con elettronica o microcontrollori, sicuramente hai sentito parlare di GPIO. In parole semplici, GPIO è un’interfaccia che permette al tuo dispositivo di comunicare con il mondo esterno tramite segnali digitali. Questo è fondamentale per controllare LED, leggere sensori, o attivare motori.
Che cos’è GPIO?
GPIO sta per General Purpose Input Output, cioè “Ingresso/Uscita Generico”. È un pin programmabile su un microcontrollore o una scheda elettronica (come Raspberry Pi, Arduino) che puoi configurare sia come ingresso sia come uscita digitale.
- Ingresso (Input): leggi lo stato di un segnale esterno, per esempio un sensore di temperatura o un pulsante.
- Uscita (Output): invii segnali per attivare qualcosa, come accendere un LED o controllare un relè.
Come funziona il GPIO?
Ti faccio un esempio pratico: supponi di voler accendere un LED con un pulsante.
- Configuri un pin GPIO come ingresso per leggere lo stato del pulsante.
- Configuri un altro pin GPIO come uscita per controllare il LED.
- Quando premi il pulsante, il pin di ingresso legge un valore alto (1).
- Il microcontrollore riceve il segnale e imposta il pin di uscita a valore alto, accendendo il LED.
- Quando rilasci il pulsante, il pin di ingresso torna a basso (0) e il LED si spegne.
Dettagli tecnici utili
GPIO lavora con segnali digitali, cioè due livelli di tensione:
- HIGH (1): generalmente vicino a 3.3V o 5V, a seconda della scheda.
- LOW (0): tensione vicino a 0V.
Attenzione però: non puoi applicare tensioni superiori a quella supportata dal GPIO, altrimenti rischi di danneggiare il microcontrollore. Se vuoi collegare dispositivi che lavorano a tensioni diverse, devi usare dei componenti come resistori o convertitori di livello.
Configurazione tipica e codice di esempio
Se usi Arduino, la configurazione è semplice. Ecco un esempio rapido in C++ per accendere un LED quando premi un pulsante:
In questo esempio, il pin 2 legge lo stato del pulsante, e il pin 13 controlla il LED. Quando premi il pulsante, il LED si accende immediatamente, grazie alla comunicazione diretta tra i pin.
Ora, se invece vuoi leggere sensori analogici, GPIO da solo non basta perché lavora solo in digitale. Per quello esistono pin ADC (Analog to Digital Converter), ma in molte schede sono separati dal GPIO.
Un’altra cosa importante: la modalità pull-up e pull-down. Quando un pin GPIO configurato come ingresso non è collegato direttamente a un segnale, può “fluttuare”, cioè leggere valori casuali. Per evitare questo, usi resistori interni o esterni di pull-up o pull-down che forzano il pin a uno stato definito (alto o basso) quando non c’è segnale esterno.
Questa è una base molto solida per iniziare a usare GPIO nei tuoi progetti elettronici. Le possibilità sono infinite: da controllare display, a gestire motori, a creare interfacce utente semplici. Nel tempo, potresti anche combinare GPIO con protocolli come I2C o SPI per comunicazioni più complesse, ma questa è un’altra storia.
Domani vedremo come usare GPIO per controllare motori DC con un ponte H, così potrai capire meglio come gestire carichi più impegnativi e ampliare i tuoi progetti con azionamenti più potenti.