Programma per un braccio robotico

Buonasera, vorrei chiedere se qualcuno mi potrebbe aiutare con il programma per manovrre un braccio robotico con 4 servo motori (Pinza, base e le due braccia) con dei potenziometri.
P.S. sono nuovo e non ci capisco nulla e mi serve per l'esame di 3 media.
Grazie mille!!

Buonasera,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. :wink:

>Tom_26: in conformità al REGOLAMENTO, punto 13, il cross-posting è proibito (anche tra lingue diverse) per cui, il tuo post duplicato è stato cancellato.

Ti prego, per il futuro, di evitare di aprire più post sullo stesso argomento in sezioni differenti del forum. Grazie.

Guglielmo

Ciao! Forse siamo un po in ritardo, ma muovere un braccio con dei potenziometri è qualcosa di abbastanza semplice :slight_smile:

In realtà trovi esempi per muovere un servo con un potenziometro, tu dovrai ripetere il codice per tutti i servi che hai.
Non gli fornisco la pappa pronta :slight_smile: gli voglio mostrare come usare due servo, potrebbe essere difficile da capire il fatto di usare più oggetti Servo con nomi diversi :wink:

Questo è un esempio che ho trovato in rete, il primo che ho trovato :slight_smile:

int pinPot = A1; // Il pin analogico collegato al potenziometro
Servo miServo; // La variabile per controllare il servo
 
 
void setup()
{
 miServo.attach(10);
}
 
void loop()
{
 int potRead = analogRead(pinPot); // Legge il valore del sensore analogico
 int servoValue =  map(potRead, 0, 1023, 0, 180); // trasforma il valore da 0 a 1023 in da 0 a 180
 miServo.write(servoValue); // Imposta il servo con l'angolo corrispondente
 delay(500); // Wait 500 ms
 
}

Tu dovrai ripetere per il numero di servi che hai.

Devi crearti tanti oggetti Servo con nomi diversi uno per ogni servo

Esempio:

/* I pin analogici che usiamo sono A1 A2 A3 uno per il rispettivo servo */
/* Controlliamo tre servi del robot, abbiamo bisogno di tre oggetti servo */


Servo miServo1; 
Servo miServo2; 
Servo miServo3;

int potRead;
int servoValue;
void setup()
{
        // Colleghiamo i sevo ai rispettivi pin useremo i pin 10 11 12
     miServo1.attach(10);
     miServo2.attach(11);
     miServo3.attach(12);
}
 
void loop()

{

        // Lettura potenziometro e posizionamento primo servo         

        potRead = analogRead(A1); // Legge il valore del sensore analogico
        servoValue =  map(potRead, 0, 1023, 0, 180); // trasforma il valore da 0 a 1023 in da 0 a 180
        miServo1.write(servoValue); // Imposta il servo con l'angolo corrispondente
 
        // Lettura potenziometro e posizionamento secondo servo   


        potRead = analogRead(A2); // Legge il valore del sensore analogico
        servoValue =  map(potRead, 0, 1023, 0, 180); // trasforma il valore da 0 a 1023 in da 0 a 180
        miServo2.write(servoValue); // Imposta il servo con l'angolo corrispondente

   
         // Lettura potenziometro e posizionamento terzo servo          

        /* CREA TU IL CODICE PER TUTTI GLI ALTRI SERVO ;)
            TIENI PRESENTE CHE TI BASTA RIPETERE LE TRE RIGHE SOPRA
            CAMBIANDO NOME DEL PIN ANALOGICO E DELL SERVO */

        delay(500); // Wait 500 ms
 
}