Dal dato all’azione
Nella lezione precedente abbiamo visto come i sensori traducono il mondo fisico in dati digitali. Ora percorriamo il percorso inverso: dal dato digitale elaborato dal controllore all’azione fisica nel mondo reale. Questo è il compito degli attuatori.
Se i sensori sono gli occhi e le orecchie del sistema, gli attuatori ne sono le mani. Un sistema di Physical Computing senza attuatori può solo osservare — non può intervenire, correggere, modificare. È il binomio sensore-attuatore che rende un sistema veramente autonomo.
Classificazione degli attuatori
Gli attuatori si classificano in base al tipo di energia che producono in uscita: movimento meccanico, luce, suono, calore. Questa distinzione è importante perché determina quale grandezza fisica il sistema può controllare.
Attuatori meccanici
Relè — l’interruttore controllato elettricamente
Il relè è uno dei componenti più antichi e ancora fondamentali dell’elettronica. È un interruttore meccanico controllato da un segnale elettrico: un piccolo segnale (quello del microcontrollore) comanda un circuito ad alta potenza che il microcontrollore non potrebbe gestire direttamente.
Una bobina (solenoide) percorsa da corrente genera un campo magnetico che attrae un’armatura metallica mobile. Questo movimento fisico apre o chiude un contatto elettrico separato — il circuito di potenza.
Contatto: 220V AC, fino a 10A
→ Isola completamente i circuiti
Arduino opera a 5V e può erogare al massimo 40 mA per pin. Non può controllare direttamente un motore da 220V o una lampada. Il relè fa da intermediario: il pin Arduino pilota la bobina, la bobina comanda il contatto ad alta potenza.
Servomotore — controllo preciso della posizione
Il servomotore è un motore con un sistema di controllo integrato che permette di posizionare l’albero motore con precisione angolare — tipicamente tra 0° e 180°. È la combinazione di un motore DC, un riduttore di velocità (gearbox), un potenziometro di feedback e un circuito di controllo in un unico componente.
Motore DC — velocità variabile con H-Bridge
Il motore DC (a corrente continua) converte energia elettrica in rotazione continua. La velocità dipende dalla tensione applicata, il verso di rotazione dalla polarità. Un pin Arduino da solo non può pilotarlo — la corrente necessaria è troppo elevata e non è possibile invertire la polarità direttamente.
Il modulo L298N contiene un ponte H (H-Bridge): quattro transistor disposti a forma di H che permettono di invertire la polarità della tensione sul motore. Combinando i segnali sui pin IN1, IN2 (per il canale A) e abilitando ENA con un segnale PWM, si controlla sia il verso che la velocità del motore.
Motore Stepper — passi precisi senza feedback
Il motore passo-passo (stepper motor) si muove di angoli precisi e discreti — i “passi” — attivando le bobine interne in sequenza. Non ha bisogno di un sensore di posizione perché ogni impulso corrisponde a un angolo definito (tipicamente 1,8° per passo = 200 passi per giro completo).
- Stampanti 3D — posizionamento testa di stampa
- CNC — fresatura con precisione micrometrica
- Telescopi — inseguimento stelle
- Macchine fotografiche — messa a fuoco automatica di precisione
Servo: closed-loop con feedback, alta velocità, ideale per robotica dove serve reazione a carichi variabili.
Attuatori ottici — LED, RGB e Display
LED — Light Emitting Diode
Il LED è l’attuatore ottico più semplice e versatile. È un diodo a semiconduttore che emette luce quando percorso da corrente nella direzione di conduzione. Il colore dipende dal materiale semiconduttore usato.
LED RGB — tre colori in uno
Un LED RGB integra tre LED (rosso, verde, blu) nello stesso package. Combinando le intensità dei tre colori con il PWM si ottiene qualsiasi colore dello spettro visibile — lo stesso principio degli schermi LCD e OLED.
Display LCD e OLED
Display a cristalli liquidi da 16 caratteri × 2 righe. Il modulo I²C riduce i collegamenti da 16 a soli 4 fili (VCC, GND, SDA, SCL). Libreria LiquidCrystal_I2C per Arduino. Ideale per visualizzare valori di sensori in tempo reale.
Display OLED (pixel auto-luminosi, nessun backlight) con risoluzione 128×64 pixel. Ogni pixel è un LED indipendente — contrasto altissimo. Interfaccia I²C, libreria Adafruit_SSD1306. Può mostrare grafica, icone e grafici.
Attuatori acustici — Buzzer e altoparlanti
Contiene internamente un oscillatore — emette una frequenza fissa quando alimentato. Si controlla solo ON/OFF. Semplice da usare: basta portare il pin HIGH. Usato per allarmi e notifiche semplici.
Richiede un segnale PWM esterno per emettere suono. La frequenza del PWM determina il tono. Con la funzione tone(pin, frequenza) di Arduino si possono suonare melodie e note musicali.
PWM — Pulse Width Modulation
Il PWM (Modulazione a Larghezza di Impulso) è una tecnica fondamentale che permette ai microcontrollori — che hanno solo uscite digitali binarie (0V o 5V) — di simulare valori analogici intermedi. È usata praticamente ovunque: controllo velocità motori, luminosità LED, posizione servomotori, volume audio.
Come funziona il PWM
analogWrite(pin, valore) dove il valore è da 0 (0%) a 255 (100%). I pin PWM di Arduino UNO sono: 3, 5, 6, 9, 10, 11 (marcati con ~).Il PWM funziona perché i dispositivi che controlla hanno una inerzia — non reagiscono alle commutazioni istantanee. L’occhio umano non percepisce sfarfallii oltre i 50–60 Hz e vede la luminosità media. Un motore ha inerzia meccanica e risponde alla corrente media. Un altoparlante ha inerzia meccanica della membrana. La frequenza PWM di Arduino (490 Hz sui pin 5 e 6, 980 Hz sugli altri) è abbondantemente superiore alle soglie di percezione.
Confronto tra attuatori — scegliere quello giusto
- Gli attuatori completano il ciclo del Physical Computing: convertono il segnale digitale in un’azione fisica. Si classificano per tipo di uscita: meccanici (motori, relè), ottici (LED, display), acustici (buzzer), termici
- Il relè isola galvanicamente Arduino dal carico ad alta potenza. Il servomotore controlla la posizione angolare (0–180°) tramite PWM. Il motore DC richiede un driver H-Bridge (L298N) per la gestione della corrente e del verso. Lo stepper offre la massima precisione posizionale senza feedback
- Il PWM (Pulse Width Modulation) simula valori analogici variando la percentuale di tempo in cui il segnale è HIGH (duty cycle). Su Arduino:
analogWrite(pin, 0–255)sui pin ~3, ~5, ~6, ~9, ~10, ~11 - La scelta dell’attuatore dipende dal tipo di effetto desiderato, dalla precisione richiesta, dalla corrente disponibile e dalla complessità del controllo accettabile nel progetto