🧠 Introduzione
In questa versione evoluta del braccio robotico, introduciamo un sistema di controllo manuale tramite potenziometri.
Ogni potenziometro controlla direttamente un servo motore, permettendo di muovere il braccio in modo preciso e intuitivo semplicemente ruotando una manopola.
Questo approccio è molto utilizzato nei sistemi reali di controllo manuale e rappresenta un passaggio fondamentale per comprendere il legame tra input analogico e movimento meccanico.
Il risultato è un sistema interattivo in tempo reale, dove ogni movimento del potenziometro si riflette immediatamente sul braccio robotico.
In questa versione evoluta del braccio robotico, introduciamo un sistema di controllo manuale tramite potenziometri.
Ogni potenziometro controlla direttamente un servo motore, permettendo di muovere il braccio in modo preciso e intuitivo semplicemente ruotando una manopola.
Questo approccio è molto utilizzato nei sistemi reali di controllo manuale e rappresenta un passaggio fondamentale per comprendere il legame tra input analogico e movimento meccanico.
Il risultato è un sistema interattivo in tempo reale, dove ogni movimento del potenziometro si riflette immediatamente sul braccio robotico.
🧰 Materiale necessario
- Arduino UNO
- 3 Servo motori (SG90)
- 3 Potenziometri
- Breadboard
- Cavi jumper
🛒 Componenti e risorse consigliate
👉 Kit Arduino consigliato: https://amzn.to/41fmFNK
💡 Con un solo kit puoi realizzare la maggior parte dei progetti presenti nel sito.
📚 I miei libri consigliati
👉 Arduino per tutti – Volume 1: https://amzn.to/4rGNxB9
👉 Arduino per tutti – Volume 2: https://amzn.to/4bkfaey
👉 Arduino per tutti – Volume 3: https://amzn.to/4bogjAg
👉 Kit Arduino consigliato: https://amzn.to/41fmFNK
💡 Con un solo kit puoi realizzare la maggior parte dei progetti presenti nel sito.
📚 I miei libri consigliati
👉 Arduino per tutti – Volume 1: https://amzn.to/4rGNxB9
👉 Arduino per tutti – Volume 2: https://amzn.to/4bkfaey
👉 Arduino per tutti – Volume 3: https://amzn.to/4bogjAg
🔌 Schema di collegamento
Potenziometri
Servo motori
⚠️ Tutti i GND devono essere collegati insieme
💡 Consigliata alimentazione esterna per i servo
Potenziometri
- Potenziometro 1 → Pin A0 Arduino
- Potenziometro 2 → Pin A1 Arduino
- Potenziometro 3 → Pin A2 Arduino
- Pin laterale → 5V
- Pin laterale → GND
- Pin centrale → ingresso analogico
Servo motori
- Servo base → Pin 3 Arduino
- Servo braccio → Pin 5 Arduino
- Servo pinza → Pin 6 Arduino
- Rosso → 5V
- Marrone → GND
- Arancione → pin di controllo
⚠️ Tutti i GND devono essere collegati insieme
💡 Consigliata alimentazione esterna per i servo
📚 Librerie necessarie
- Servo.h (già inclusa)
💻 Codice Arduino
// ============================================
// Progetto 96 - Braccio robotico con potenziometri
// Controllo manuale dei servo in tempo reale
// ============================================
#include <Servo.h>
Servo base;
Servo braccio;
Servo pinza;
// Pin potenziometri
int pot1 = A0;
int pot2 = A1;
int pot3 = A2;
void setup() {
base.attach(3);
braccio.attach(5);
pinza.attach(6);
Serial.begin(9600);
}
void loop() {
// Lettura valori analogici (0–1023)
int val1 = analogRead(pot1);
int val2 = analogRead(pot2);
int val3 = analogRead(pot3);
// Conversione in angolo (0–180)
int angolo1 = map(val1, 0, 1023, 0, 180);
int angolo2 = map(val2, 0, 1023, 0, 180);
int angolo3 = map(val3, 0, 1023, 0, 180);
// Movimento servo in tempo reale
base.write(angolo1);
braccio.write(angolo2);
pinza.write(angolo3);
delay(20); // piccolo ritardo per stabilità
}
// Progetto 96 - Braccio robotico con potenziometri
// Controllo manuale dei servo in tempo reale
// ============================================
#include <Servo.h>
Servo base;
Servo braccio;
Servo pinza;
// Pin potenziometri
int pot1 = A0;
int pot2 = A1;
int pot3 = A2;
void setup() {
base.attach(3);
braccio.attach(5);
pinza.attach(6);
Serial.begin(9600);
}
void loop() {
// Lettura valori analogici (0–1023)
int val1 = analogRead(pot1);
int val2 = analogRead(pot2);
int val3 = analogRead(pot3);
// Conversione in angolo (0–180)
int angolo1 = map(val1, 0, 1023, 0, 180);
int angolo2 = map(val2, 0, 1023, 0, 180);
int angolo3 = map(val3, 0, 1023, 0, 180);
// Movimento servo in tempo reale
base.write(angolo1);
braccio.write(angolo2);
pinza.write(angolo3);
delay(20); // piccolo ritardo per stabilità
}
⚙️ Come funziona
Arduino legge continuamente i valori dei potenziometri tramite gli ingressi analogici.
Ogni valore viene convertito in un angolo da 0 a 180 gradi e inviato al servo corrispondente.
Questo permette un controllo diretto e immediato del braccio robotico, rendendo il sistema molto intuitivo e preciso.
Arduino legge continuamente i valori dei potenziometri tramite gli ingressi analogici.
Ogni valore viene convertito in un angolo da 0 a 180 gradi e inviato al servo corrispondente.
Questo permette un controllo diretto e immediato del braccio robotico, rendendo il sistema molto intuitivo e preciso.
🔁 Varianti possibili
- Aggiungere joystick al posto dei potenziometri
- Salvare posizioni del braccio
- Controllo via Bluetooth
- Braccio robotico avanzato multi-gradi