Braccio meccanico e requisiti Motore Stepper

Niente da fare ragazzi, posto il codice comunque ma c'è troppo rumore e qualcosa non mi convince:

 if (micros()>=tempoOp1) {
   
               tempoOp1=micros()+1000;
              stopm1++;
              if (hl1 == 0)
              { 
                  digitalWrite(7, HIGH); 
                  hl1=1;
              } else {
                  digitalWrite(7, LOW); 
                  hl1=0;
                    }   
              
              }

con il ciclo for e delay è piu semplice controllare il numero di step e il delay per la velocità.

Se collego un arduino per ogni motore dove al suo interno cè una funzione che accetta come parametri il numero di step e il delay per la velocità?
E con un arduino globale manda i parametri ai arduini in modo che funzionino indipendentemente e quindi multithread... un sistema a 3 core??

Per quanto riguarda il test della linea retta avevate ragione, non riesce a farla, crea un 'arco' proprio perche a step diversi crea angolazioni diverse.... OMG

Etemenanki:
Quello che intendo e' che i passi non corrisponderanno allo stesso numero di gradi uno dopo l'altro ... usando le leve in quel modo si ha un sistema triangolare in cui ad ogni spostamento la dimensione di uno dei lati varia, e quindi anche le inclinazioni reciproche dei lati del triangolo variano, quindi per ogni passo c'e' una quantita' diversa di rotazione in gradi, anche se le differenze possono essere piccole ... si, e' possibile comunque calcolarle usando un (bel) po di trigonometria ... ma non e' la stessa cosa di sapere che a "tot" passi corrispondono esattamente "tot" gradi ...

scusami se ti quoto ancora ma ho fatto un test grafico per confermare che a step diversi corrispondono gradi diversi:

ho creato graficamente 4 bracci uguali con la stessa misura e la stessa distanza dei giunti messi con una estensione del pistone tale da avere uno di 75 gradi, uno di 45, 30 e 15.

Ho calcolato la lunghezza/l'estensione del pistone nella configurazione a 45 gradi e 30 gradi.
La configurazione mi dice che per aumentare o diminuire di 15 gradi basta allungare o estendere il pistone di 0.26.

Facendo la prova ad inclinarlo fino a 15 gradi o fino a 75 gradi la lunghezza REALE del pistone ' di 1.61 per i 15 gradi e di 0.52 per i 75 gradi.

Se la lunghezza REALE la calcolo usando la costante di scostamento calcolata in precedenza, cioe' 0.26 i valori sono 1.62 (con errore di 0.01) per i 15 gradi e di 0.58 (errore di 0.05) per i 75 gradi.

Quindi, pensate potrei mettere i miei pistoni in una posizione migliore per evitare questi problemi oppure essendo i pistoni funzionano sotto leve non potro' mai evitare questo problema?

In alternativa, usando i potenziometri per ricavare i gradi precisi, non ho capito bene come puo aiutarmi a scavalcare questo problema, e anche se fosse non ho idea di come posizionarli a livello pratico sul mio braccio in quanto i giunti sono fissi e non mobili.

Grazie in anticipo.

Tony

Ho trovato la funzione del braccio. Ecco la foto:

La linea blu e' landamento del mio triangolo, quella arancione e' quella che devo ottenere.

Avevo pensato di suddividere i giri del motore grado per grado in modo tale che ad ogni grado gli cambio la velocita' del motore cosi avra' un andamento costante di 1 grado al secondo.

Se non sara' ancora abbastanza preciso suddividero a mezzo grado