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 151
Braccio robotico
​con 2 servomotori

🚀 Introduzione

Vuoi iniziare a costruire un vero braccio robotico controllato da Arduino? 🤖🦾

In questo progetto realizzerai un braccio robotico a due assi utilizzando Arduino UNO e due servomotori.

Il primo servomotore controllerà la rotazione della base, permettendo al braccio di spostarsi verso destra e verso sinistra.
Il secondo servomotore controllerà il movimento verticale del braccio, permettendogli di sollevarsi e abbassarsi.

Il sistema sarà comandato tramite quattro pulsanti:
  1. rotazione verso sinistra;
  2. rotazione verso destra;
  3. sollevamento del braccio;
  4. abbassamento del braccio.

Mantenendo premuto un pulsante, il servomotore corrispondente si muoverà gradualmente nella direzione scelta.
​
👉 Il movimento progressivo evita gli spostamenti improvvisi e rende il controllo del braccio più preciso.
​
Questo progetto costituisce una base importante per realizzare successivamente sistemi robotici più complessi, come pinze automatiche, bracci controllati con potenziometri e sistemi pick and place.

🎯 Cosa realizzerai
​

Con Arduino creerai un braccio robotico che:
  • 🤖 utilizza due servomotori;
  • ↔️ ruota la base verso destra e verso sinistra;
  • ↕️ solleva e abbassa il braccio;
  • 🔘 viene controllato tramite quattro pulsanti;
  • 🐢 esegue movimenti graduali;
  • 📐 limita gli angoli per proteggere la struttura;
  • 🛑 si ferma quando nessun pulsante viene premuto;
  • 💡 utilizza un LED per indicare un movimento in corso;
  • ⚙️ permette di modificare velocità e limiti;
  • ✅ utilizza codice compatibile con Arduino UNO.

🧰 Materiale necessario
​
  • 1x Arduino UNO;
  • 2x servomotori SG90, MG90S o compatibili;
  • 1x struttura per braccio robotico a due assi;
  • 4x pulsanti;
  • 1x LED;
  • 1x resistenza da 220 Ω;
  • 1x alimentatore esterno stabilizzato da 5V;
  • 1x condensatore elettrolitico da 470 µF o 1000 µF, consigliato;
  • 1x breadboard;
  • cavetti jumper;
  • viti e supporti per fissare i servomotori;
  • cavo USB.
​
Per una struttura molto leggera possono essere utilizzati due servomotori SG90.

Se il braccio è più pesante, è consigliabile utilizzare almeno un servomotore MG90S o un modello con una coppia maggiore per il movimento verticale.

🛒 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 la libreria:
  • Servo.

La libreria Servo è normalmente già inclusa nell’Arduino IDE e non richiede installazioni aggiuntive.
Per controllare i servomotori viene utilizzata la funzione:
servo.write(angolo);

Il valore dell’angolo è generalmente compreso tra 0° e 180°.
Nel progetto verranno però utilizzati limiti più ristretti per ridurre il rischio di danneggiare la struttura meccanica.

🦾 Struttura del braccio robotico
​

Il sistema utilizza due movimenti principali.

Servomotore della base
Il primo servomotore permette di ruotare tutto il braccio:
  • verso sinistra;
  • verso destra.
Questo movimento rappresenta il primo asse del braccio robotico.

Servomotore del braccio
Il secondo servomotore permette di:
  • sollevare il braccio;
  • abbassare il braccio.
Questo movimento rappresenta il secondo asse.
​
I due movimenti possono essere comandati separatamente oppure contemporaneamente, premendo un pulsante della base e uno del braccio nello stesso momento.

🔌 Schema di collegamento
​

Servomotore della base
  • filo del segnale → pin digitale 9;
  • filo rosso → positivo dell’alimentazione esterna da 5V;
  • filo marrone o nero → GND dell’alimentazione esterna.

Servomotore del braccio
  • filo del segnale → pin digitale 10;
  • filo rosso → positivo dell’alimentazione esterna da 5V;
  • filo marrone o nero → GND dell’alimentazione esterna.

Pulsante rotazione a sinistra
  • un terminale → pin digitale 2;
  • terminale opposto → GND.

Pulsante rotazione a destra
  • un terminale → pin digitale 3;
  • terminale opposto → GND.

Pulsante sollevamento
  • un terminale → pin digitale 4;
  • terminale opposto → GND.

Pulsante abbassamento
  • un terminale → pin digitale 5;
  • terminale opposto → GND.
I quattro pulsanti utilizzano la modalità INPUT_PULLUP.
Non sono quindi necessarie resistenze esterne di pull-up o pull-down.

LED di movimento
  • anodo → pin digitale 7 tramite resistenza da 220 Ω;
  • catodo → GND.
Il LED si accende quando almeno uno dei servomotori sta ricevendo un comando di movimento.
Foto

💻 Codice Arduino

    

🔘 Funzionamento dei pulsanti
​

Poiché viene utilizzata la modalità INPUT_PULLUP, la logica dei pulsanti è invertita:
  • pulsante non premuto → valore HIGH;
  • pulsante premuto → valore LOW.
​
Quando Arduino rileva un valore LOW, modifica gradualmente l’angolo del servomotore associato.

⚠️ Alimentazione dei servomotori

I servomotori non devono essere alimentati direttamente dal pin 5V di Arduino quando devono muovere una struttura meccanica.

Durante il movimento, un servomotore può assorbire una corrente molto superiore a quella richiesta quando è fermo.

Due servomotori alimentati direttamente da Arduino possono provocare:
  • riavvii improvvisi della scheda;
  • movimenti irregolari;
  • vibrazioni;
  • perdita della comunicazione USB;
  • surriscaldamento del regolatore;
  • danneggiamento della scheda.
​
Utilizza un’alimentazione esterna stabilizzata da 5V capace di fornire almeno 1,5–2 A.

Per servomotori più potenti potrebbe essere necessaria una corrente maggiore.

🔧 Calibrazione iniziale
​

Prima di montare le leve sui servomotori:
  1. scollega i bracci meccanici;
  2. carica il programma;
  3. alimenta Arduino e i servomotori;
  4. attendi che raggiungano la posizione iniziale;
  5. scollega nuovamente l’alimentazione;
  6. monta le leve nella posizione corretta;
  7. controlla manualmente che nulla sia bloccato;
  8. riaccendi il circuito.
​
Questa procedura permette di montare la struttura partendo da una posizione conosciuta.

🔘 Pressione contemporanea dei pulsanti
​

Il programma controlla che non vengano eseguiti due comandi opposti sullo stesso asse.

Se vengono premuti contemporaneamente:
  • sinistra e destra → la base rimane ferma;
  • su e giù → il braccio rimane fermo.
Questa protezione evita che due comandi contrari modifichino continuamente la posizione del servomotore.
​
È comunque possibile muovere contemporaneamente i due assi.
​
Ad esempio puoi premere:
  • base sinistra;
  • braccio su.
Il braccio ruoterà e si solleverà nello stesso momento.

💡 LED di movimento
​

Il LED collegato al pin 7 indica quando Arduino sta modificando realmente la posizione di almeno un servomotore.
​
Il LED risulta:
  • acceso → movimento in corso;
  • spento → braccio fermo o limite raggiunto.
​
Se un pulsante viene mantenuto premuto dopo aver raggiunto il limite massimo, il LED si spegne perché il servomotore non può avanzare ulteriormente.

🧠 Perché è un progetto importante
​

Con questo progetto impari a:
  • controllare più servomotori;
  • realizzare un sistema robotico a due assi;
  • utilizzare pulsanti con INPUT_PULLUP;
  • gestire movimenti progressivi;
  • utilizzare millis() al posto di delay();
  • limitare gli angoli di movimento;
  • proteggere una struttura meccanica;
  • alimentare correttamente i servomotori;
  • eseguire movimenti simultanei;
  • progettare la base di un braccio robotico;
  • creare codice compatibile con Arduino UNO.

🔄 Varianti possibili
​

Vuoi migliorare il progetto?
  • 🕹️ aggiungi un joystick analogico;
  • 🎛️ controlla i servo con due potenziometri;
  • ✋ aggiungi una pinza con un terzo servomotore;
  • 💾 salva alcune posizioni nella memoria EEPROM;
  • ▶️ crea una sequenza automatica;
  • 🔘 aggiungi un pulsante per tornare al centro;
  • 📟 visualizza gli angoli su un display LCD;
  • 🔢 mostra le posizioni su un display OLED;
  • 📡 controlla il braccio tramite Bluetooth;
  • 🌐 aggiungi un controllo Wi-Fi;
  • 🎮 utilizza un controller esterno;
  • 🚨 aggiungi un pulsante di arresto;
  • 🧲 monta un piccolo elettromagnete;
  • 📦 trasforma il sistema in un pick and place;
  • ⚙️ utilizza servomotori più potenti;
  • 🦾 aggiungi altri assi di movimento.

Foto
Foto

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