PROGETTI ARDUINO

  • HOME
  • 200 Progetti
  • Progetti e Tutorial
  • Reti
    • Impara le reti
    • internet fibra
    • wifi mesh
    • modem router
    • diagnostica reti
    • ethernet lan
    • sicurezza configurazione
  • Elettronica
  • Recensioni
  • Manuale
  • Contatti
  • HOME
  • 200 Progetti
  • Progetti e Tutorial
  • Reti
    • Impara le reti
    • internet fibra
    • wifi mesh
    • modem router
    • diagnostica reti
    • ethernet lan
    • sicurezza configurazione
  • Elettronica
  • Recensioni
  • Manuale
  • Contatti

Progetto 146
​Sistema pan-tilt con joystick

🚀 Introduzione

Vuoi controllare una piccola piattaforma orientabile muovendola a destra, sinistra, in alto e in basso? 🎮⚙️

In questo progetto realizzerai un sistema pan-tilt controllato tramite joystick, utilizzando Arduino UNO e due servomotori.

Il primo servo controllerà il movimento orizzontale, chiamato pan.

Il secondo servo controllerà il movimento verticale, chiamato tilt.

Muovendo il joystick, la piattaforma seguirà gradualmente la direzione scelta. Premendo il pulsante integrato nel joystick, il sistema tornerà automaticamente alla posizione centrale.
​
👉 Il progetto è ideale come base per supporti orientabili, piccoli robot, telecamere, sensori mobili e torrette dimostrative.

🎯 Cosa realizzerai
​

Con Arduino creerai un sistema che:
  • ↔️ muove una piattaforma a destra e sinistra;
  • ↕️ regola l’inclinazione verso l’alto e il basso;
  • 🎮 utilizza un joystick analogico;
  • ⚙️ controlla due servomotori;
  • 🎯 mantiene il movimento entro limiti sicuri;
  • 🧊 applica una zona morta al centro del joystick;
  • 🚀 muove i servo gradualmente;
  • 🔘 riporta il sistema al centro tramite pulsante;
  • 📟 mostra le posizioni su display LCD;
  • ✅ utilizza codice compatibile con Arduino UNO.

🧰 Materiale necessario
​
  • 1x Arduino UNO;
  • 1x modulo joystick analogico;
  • 2x servomotori SG90, MG90S o compatibili;
  • 1x supporto pan-tilt per due servo;
  • 1x display LCD 16×2 con interfaccia I2C;
  • 1x alimentatore esterno da 5V per i servomotori;
  • cavetti jumper;
  • breadboard;
  • cavo USB.
​
Il supporto pan-tilt può essere acquistato già pronto oppure realizzato con materiali leggeri.

🛒 Non hai ancora i componenti?

Molti dei progetti presenti su progettiarduino.com utilizzano componenti elettronici di base come LED, resistenze, sensori e breadboard.
Se stai iniziando con Arduino, il modo più semplice è utilizzare un kit completo per principianti, che include quasi tutti i componenti necessari per realizzare molti dei progetti presenti sul sito.

👉 Kit Arduino consigliato:
ℹ️ Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
https://amzn.to/4b3dxjW

📘 Vuoi imparare Arduino passo dopo passo?
Se vuoi approfondire e realizzare progetti più completi, puoi dare un'occhiata anche ai miei libri dedicati ad Arduino.
All'interno troverai spiegazioni semplici, schemi chiari e molti progetti pratici pensati per chi parte da zero.

👉 Scopri i miei libri su Arduino:
ℹ️ Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
https://amzn.to/4rfzjXE
​

📚 Librerie necessarie
​

Il progetto utilizza:
  • Servo;
  • LiquidCrystal_I2C.
La libreria Servo è normalmente già inclusa nell’Arduino IDE.
​
Per il display LCD devi installare una libreria compatibile con LiquidCrystal_I2C.

Per installarla:
  1. apri Arduino IDE;
  2. vai su Sketch → Include Library → Manage Libraries;
  3. cerca LiquidCrystal I2C;
  4. installa una versione compatibile con il tuo modulo.

🔌 Schema di collegamento

Joystick analogico
Il modulo joystick possiede normalmente cinque pin:
  • VCC → 5V;
  • GND → GND;
  • VRx → A0;
  • VRy → A1;
  • SW → pin digitale 2.
Il pin SW corrisponde al pulsante integrato nel joystick.
Nel codice viene utilizzata la modalità INPUT_PULLUP, quindi il pulsante premuto viene letto come LOW.

Servomotore PAN
Il servo orizzontale controlla il movimento destra-sinistra:
  • filo segnale → pin digitale 9;
  • alimentazione → 5V esterno;
  • GND → GND comune.

Servomotore TILT
Il servo verticale controlla il movimento alto-basso:
  • filo segnale → pin digitale 10;
  • alimentazione → 5V esterno;
  • GND → GND comune.

Display LCD 16×2 I2C
  • VCC → 5V;
  • GND → GND;
  • SDA → A4;
  • SCL → A5.
Nel codice viene utilizzato l’indirizzo I2C 0x27.
Se il display non mostra nulla, il tuo modulo potrebbe utilizzare l’indirizzo 0x3F.
⚠️ Alimentazione dei servomotori
​

Due servomotori possono richiedere una corrente superiore a quella fornibile stabilmente dal pin 5V di Arduino.
Per evitare:
  • riavvii;
  • vibrazioni;
  • movimenti irregolari;
  • surriscaldamento della scheda;
utilizza un alimentatore esterno da 5V adeguato.

Collega insieme:
  • GND dell’alimentatore;
  • GND dei due servo;
  • GND di Arduino.
​
👉 La massa comune è necessaria per permettere ad Arduino di inviare correttamente i segnali di controllo.
Foto

💻 Codice Arduino

Il programma legge continuamente i due assi del joystick.

Quando il joystick viene spostato:
  • l’asse X modifica la posizione PAN;
  • l’asse Y modifica la posizione TILT.

Il movimento non dipende direttamente dal valore assoluto del joystick.

Arduino controlla invece la direzione e aumenta o diminuisce progressivamente gli angoli.
​
In questo modo il joystick funziona come un comando di movimento continuo.

    

⚙️ Come funziona

Il joystick restituisce valori analogici compresi tra 0 e 1023.

Quando si trova al centro, il valore dovrebbe essere vicino a 512.

Nella pratica il centro può variare leggermente.
Per questo il programma utilizza una zona morta.
​
Se il valore si trova nell’intervallo centrale, il servo non si muove.
Se supera la zona morta, Arduino modifica gradualmente l’angolo.

↔️ Movimento PAN
​

Il servo PAN controlla il movimento orizzontale.
Il codice limita l’angolo tra:
  • 10°;
  • 170°.
​
Quando il joystick viene mosso verso destra, l’angolo aumenta.
Quando viene mosso verso sinistra, l’angolo diminuisce.
Se il movimento risulta invertito, puoi scambiare nel codice incremento e decremento.

↕️ Movimento TILT
​

Il servo TILT controlla l’inclinazione verticale.
Per evitare di forzare il supporto meccanico, il movimento viene limitato tra:
  • 30°;
  • 150°.
I limiti possono essere modificati in base alla struttura utilizzata.
👉 Prima di montare definitivamente il supporto, prova i servo senza carico per verificare gli angoli corretti.

🚀 Movimento graduale
​

Gli angoli non vengono modificati in modo continuo a ogni ciclo del programma.
Arduino attende un breve intervallo prima di cambiare nuovamente la posizione.

La costante:
const unsigned long INTERVALLO_MOVIMENTO = 20;
controlla la velocità.
​
Un valore più piccolo produce un movimento più rapido.
Un valore più grande lo rende più lento.

🔘 Ritorno al centro
​

Premendo il joystick, il sistema imposta come destinazione:
  • PAN → 90°;
  • TILT → 90°.
I servo tornano gradualmente al centro, senza spostamenti improvvisi.
​
Durante il ritorno, il display mostra:
CENTRATURA
​
Quando entrambi i servo raggiungono la posizione centrale, il sistema torna al controllo manuale.

🧠 Perché è un progetto importante
​

Con questo progetto impari a:
  • controllare due servomotori;
  • utilizzare un joystick analogico;
  • gestire due assi indipendenti;
  • creare una zona morta;
  • regolare la velocità in modo proporzionale;
  • limitare gli angoli di sicurezza;
  • riconoscere la pressione del joystick;
  • realizzare un ritorno automatico al centro;
  • visualizzare le posizioni su LCD;
  • sviluppare codice compatibile con Arduino UNO.

🔄 Varianti possibili
​

Vuoi migliorare il progetto?
  • 📷 monta una piccola telecamera;
  • 📏 aggiungi un sensore a ultrasuoni;
  • 🔦 monta un LED orientabile;
  • 💾 salva l’ultima posizione nella EEPROM;
  • 🎯 aggiungi posizioni predefinite;
  • 🔘 usa il pulsante per cambiare modalità;
  • 📟 crea un menu LCD;
  • 🔔 aggiungi un buzzer;
  • 📱 controlla il sistema tramite Bluetooth;
  • 🤖 integra il supporto in un robot;
  • 🌞 realizza un inseguitore solare;
  • 🛰️ crea una piccola antenna orientabile.

Foto
Foto

© ProgettiArduino.com 2026 - Fancello Salvatore
​ Layout, immagini e testi sono di esclusiva proprietà di www.progettiarduino.com 
Privacy Policy