Attuatori: agire sul mondo fisico
Dal dato digitale all'azione reale: come i sistemi embedded muovono, illuminano e suonano. Relè, servo, motori DC e stepper, LED, PWM e criteri di scelta dell'attuatore giusto.
1. Dal dato all'azione: sensori, controllore e attuatori
Un attuatore è un dispositivo che converte un segnale elettrico o digitale, elaborato da un controllore, in un'azione fisica nel mondo reale: movimento, luce, suono o calore. È l'output del sistema embedded.
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.
Per l'interrogazione ricorda la frase-ciclo: il sensore percepisce, il controllore decide, l'attuatore agisce. Se ti chiedono perché serve l'attuatore, rispondi: senza, il sistema è cieco dal punto di vista dell'intervento — può solo osservare, non può chiudere il loop di controllo.
2. Classificazione degli attuatori per tipo di energia
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 e quale hardware servirà.
⚙️ Movimento e forza
Motori DC, stepper, servomotori, relè, elettrovalvole, solenoidi. Convertono elettricità in rotazione o spostamento lineare.
💡 Luce e visualizzazione
LED, strip RGB, display LCD/OLED, laser. Segnalazione, illuminazione e interfacce uomo-macchina.
🔊🌡️ Suono e calore
Buzzer passivi/attivi, altoparlanti, resistenze riscaldanti, Peltier, ventole.
Termostato smart in aula: sensore DHT22 misura temperatura → Arduino decide se fa troppo caldo → attiva attuatore meccanico (ventola tramite relè) + attuatore ottico (LED rosso) + acustico (buzzer breve). Tre tipi di attuatori nello stesso progetto!
3. Attuatori meccanici: relè, servo, motore DC e stepper
3.1 Relè — l'interruttore controllato elettricamente
Il relè è uno dei componenti più antichi e ancora fondamentali. È un interruttore meccanico controllato da un segnale elettrico: un piccolo segnale (microcontrollore) comanda un circuito ad alta potenza che il microcontrollore non potrebbe gestire direttamente.
Bobina + armatura
Una bobina percorsa da corrente genera campo magnetico che attrae un'armatura mobile. Questo apre/chiude un contatto separato: il circuito di potenza. Bobina: 5V pochi mA. Contatto: 220V AC fino a 10A → isolamento completo.
Proteggere Arduino
Arduino opera a 5V e max 40 mA per pin. Non può controllare un motore da 220V. Il relè fa da intermediario. Attenzione: usare sempre diodo flyback in parallelo alla bobina.
Collegare direttamente un motore DC o una lampada 220V al pin Arduino. Il pin si brucia. Soluzione: usa sempre driver (transistor, relè, L298N). Per relè: non dimenticare il diodo 1N4007 in antiparallelo alla bobina per assorbire la extracorrente di apertura.
3.2 Servomotore — controllo preciso della posizione angolare
Il servomotore è un motore con controllo integrato che posiziona l'albero con precisione — tipicamente 0°-180°. È l'insieme di motore DC + gearbox + potenziometro di feedback + circuito di controllo in unico package.
Servo: si comanda con PWM a 50 Hz (impulso ogni 20 ms). Larghezza impulso = angolo: 1,0 ms → 0°, 1,5 ms → 90°, 2,0 ms → 180°. Libreria Arduino Servo.h nasconde i timing: myServo.write(angolo).
Robotica educativa, aeromodellismo, bracci meccanici, gimbal per telecamere, serrature smart. Tipi: standard 0-180°, continuo 360° senza controllo posizione (controllo velocità), digitale (risposta più rapida e precisa).
3.3 Motore DC — velocità e H-Bridge L298N
Il motore DC converte energia elettrica in rotazione continua. Velocità proporzionale a tensione, verso proporzionale a polarità. Un pin Arduino non basta: serve un driver che gestisca corrente e inversione di polarità.
L298N = ponte H = 4 transistor a forma di H. Logica: IN1=HIGH IN2=LOW → avanti, inverti → indietro, entrambi LOW → fermo. ENA con PWM 0-255 → velocità. Ricorda: modulo L298N ha caduta ~2V, meglio alimentazione esterna 7-12V per motori.
3.4 Motore Stepper — passi precisi senza feedback
Lo stepper si muove di angoli discreti — i "passi" — attivando bobine in sequenza. Non ha bisogno di sensore di posizione: ogni impulso = angolo definito (tipicamente 1,8° = 200 passi/giro).
Alta precisione open-loop
Stampanti 3D (testa stampa), CNC, telescopi (inseguimento stelle), messa a fuoco fotocamere. Coppia alta a bassa velocità, no slip.
Come scegliere
Stepper: open-loop, ideale dove serve posizione assoluta senza encoder, come CNC. Servo: closed-loop con feedback, alta velocità, reazione a carichi variabili, robotica.
4. Attuatori ottici e acustici: LED, display e buzzer
LED — Light Emitting Diode
Il LED è l'attuatore ottico più semplice. Diodo a semiconduttore che emette luce quando percorso da corrente diretta. Colore = materiale semiconduttore.
LED RGB — tre colori in uno
Il LED RGB integra R+G+B nello stesso package. Con PWM su tre pin si ottiene qualsiasi colore per sintesi additiva — stesso principio degli schermi.
Display LCD e OLED come attuatori visivi avanzati
Display caratteri
16 caratteri × 2 righe. Modulo I²C riduce fili da 16 a 4 (VCC GND SDA SCL). Libreria LiquidCrystal_I2C. Ideale per valori sensori real-time.
Pixel attivi
OLED = pixel auto-luminosi, contrasto altissimo. 128×64 pixel, I²C, libreria Adafruit_SSD1306. Mostra grafica, icone, grafici.
Buzzer attivo vs passivo
Frequenza fissa interna
Ha oscillatore interno → suona fisso quando alimentato. Controllo: solo ON/OFF (digitalWrite HIGH). Per allarmi semplici.
Melodie con PWM
Richiede PWM esterno. Frequenza PWM = tono. Con tone(pin, freq) suoni note e melodie. Fondamentale per feedback musicale.
5. PWM: simulare l'analogico con il digitale
PWM (Pulse Width Modulation): tecnica che simula valori analogici variando la percentuale di tempo in cui un segnale digitale è HIGH (duty cycle). Su Arduino: analogWrite(pin, 0-255) sui pin marcati ~ (3,5,6,9,10,11).
Il PWM è fondamentale perché i microcontrollori hanno solo uscite digitali binarie (0V o 5V). Variando rapidamente il tempo di ON vs OFF, si ottiene una tensione media intermedia. Usato per luminosità LED, velocità motori, posizione servo, volume audio.
Domanda classica verifica: perché il PWM sembra analogico? Rispondi: perché il dispositivo ha inerzia. L'occhio integra luce oltre 50 Hz, il motore non può fermarsi a 490 Hz, quindi risponde alla tensione media (duty × Vcc). Frequenza PWM UNO: 490 Hz (pin 5,6) e 980 Hz (3,9,10,11).
6. Confronto finale: come scegliere l'attuatore giusto
La scelta dipende da: che effetto voglio (movimento? luce? suono?), quale precisione serve, quanta corrente ho, quanto deve essere semplice o complesso il controllo.
| Attuatore | Tipo uscita | Controllo | Precisione | Caso d'uso |
|---|---|---|---|---|
| Relè | ON/OFF alta potenza | Digitale | Bassa | Lampade AC, riscaldatori, pompe 220V |
| Servomotore | Posizione 0-180° | PWM 50Hz | Alta ±1° | Robotica, serrature smart, gimbal |
| Motore DC | Rotazione continua | PWM + H-Bridge | Media | Robot mobili, ventole, pompe DC |
| Stepper | Rotazione a passi | Sequenza digitale | Molto alta 1.8° | Stampanti 3D, CNC, telescopi |
| LED | Luce | Digitale / PWM | Alta 256 livelli | Segnalazione, RGB, illuminazione |
| Buzzer passivo | Suono | PWM frequenza | Media | Allarmi, feedback, melodie |
| Display OLED | Grafica/testo | I²C | Alta 128×64 | UI, grafici, dashboard sensori |
Scenario: cancello scorrevole automatico con telecomando e sensore ostacolo. Quale attuatore? Motore DC con L298N + encoder o fine-corsa per movimento continuo potente. Servo troppo debole, stepper troppo lento. Per segnalazione: LED lampeggiante + buzzer. Per sicurezza: relè per blocco alimentazione in emergenza.
7. Verifica / Esercizio
🔬 Attività pratica + domande
Progetto: braccio robotico a 2 servi + LED di stato + buzzer di fine corsa. Usa potenziometri per comandare i servi e testa il PWM per dimmerare il LED.
- Calcola la resistenza per un LED blu (Vf 3V, If 20mA) alimentato a 5V. Quale valore commerciale useresti?
- Spiega con un disegno il principio del duty cycle al 60%: quanta tensione media vede un motore a 5V?
- Perché per un motore DC serve un L298N e non basta un pin digitale? E per un relè perché il diodo flyback?
- Scegli tra servo e stepper per: stampante 3D, braccio robotico che deve tenere posizione sotto carico, tergicristallo auto. Motiva.
- Scrivi pseudocodice: se sensore ultrasuoni <20cm, accendi LED rosso, suona buzzer, ferma motore DC; altrimenti motore avanti.
1) R=(5-3)/0.02=100Ω → 120Ω o 150Ω per margine.
2) 60% di 5V = 3V medi. HIGH 60% periodo, LOW 40%. Media vista = 3V.
3) Pin Arduino max 40mA, motore richiede 500mA-2A + picchi. L298N fornisce corrente e inversione. Diodo flyback assorbe extratensione inversa bobina (Lenz).
4) Stampante 3D → stepper. Braccio sotto carico → servo closed-loop. Tergicristallo → motore DC.
5) if distance <20: LED ON, tone(1000), stopMotore() else: LED OFF, noTone(), motoreAvanti(180).
8. Riepilogo e concetti chiave
📚 Prossimo passo - Sistemi di controllo ad anello aperto e chiuso
Ora che sappiamo percepire (sensori) e agire (attuatori), chiuderemo il cerchio: come un sistema decide in autonomia mantenendo stabilità? Vedremo feedback, retroazione, PID introduttivo e differenza cruciale tra open-loop e closed-loop.