ELS (Electronic Lead Screw) - progetto con ARDUINO
Moderatore: Junior Admin
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
si certo che si può fare e non è complicato... vediamo se ci riesci da solo 
McMax
“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson
fulminato in tenera età
“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson
fulminato in tenera età
-
tarzan
- SON PASSATO AI TRAPANINI
- Messaggi: 87
- Iscritto il: mer ago 13, 2014 09:21
- Località: Pordenone
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
Guarda che sono un somaro, non te ne eri accorto?

aspetta;
Si tratta di modificare qualcosa qui in "filettatura" aggiungendo un input per l'asse Y ?
Ad esempio....
(sto sparando ad intuito)
JoyY=analogRead(ANALOG_Y);
If(joyY >= HIGH_TOL){ stepperSpeed = 5 ;
Direction = CCW;}
if (joyY <= LOW_TOL) {stepperSpeed = 5 ;
Direction = CW;}
joy = analogRead(ANALOG_X);
if (joy >= HIGH_TOL) { stepperSpeed = 50; Direction = CCW;}
if (joy <= LOW_TOL) { stepperSpeed = 50; Direction = CW;}
if ((joy >= LOW_TOL) && (joy <=HIGH_TOL)) stepperSpeed = 0;
if (digitalRead(DIR) != Direction) {if (Speed == 0) digitalWrite(DIR, Direction); delayMicroseconds(10);}
if (digitalRead(SEL) == PRESSED || digitalRead(SEL2) == PRESSED) stay = false;
if (digitalRead(ESC) == PRESSED){ esegui = false; stay = false; delay(200);}
if (digitalRead(DIR) == Direction) StepperRunToSpeed(stepperSpeed); else StepperRunToSpeed(0);
delay (10);
}
e lo stesso nel menu' "movimento libero" ?
joy = analogRead(ANALOG_X);
if (joy >= HIGH_TOL) { stepperSpeed = joy - HIGH_TOL; Direction = CCW;}
if (joy <= LOW_TOL) { stepperSpeed = LOW_TOL - joy; Direction = CW;}
if ((joy >= LOW_TOL) && (joy <=HIGH_TOL)) stepperSpeed = 0;
if (digitalRead(DIR) != Direction) {if (Speed == 0) digitalWrite(DIR, Direction); delayMicroseconds(10);}
if (digitalRead(ESC) == PRESSED) stay = false;
if (digitalRead(DIR) == Direction) StepperRunToSpeed(stepperSpeed); else StepperRunToSpeed(0);
if (digitalRead(RESET) == PRESSED) absolute_steps = 0;
delay (10);
Posizione = ((float(absolute_steps)/one_turn_screw_steps)*float(NORTON_feed))/100;
lcd.setCursor(10,2);
lcd.print(Posizione,2);
lcd.print(" mm ");
}
Non ho alba di come fare però...
aspetta;
Si tratta di modificare qualcosa qui in "filettatura" aggiungendo un input per l'asse Y ?
Ad esempio....
(sto sparando ad intuito)
JoyY=analogRead(ANALOG_Y);
If(joyY >= HIGH_TOL){ stepperSpeed = 5 ;
Direction = CCW;}
if (joyY <= LOW_TOL) {stepperSpeed = 5 ;
Direction = CW;}
joy = analogRead(ANALOG_X);
if (joy >= HIGH_TOL) { stepperSpeed = 50; Direction = CCW;}
if (joy <= LOW_TOL) { stepperSpeed = 50; Direction = CW;}
if ((joy >= LOW_TOL) && (joy <=HIGH_TOL)) stepperSpeed = 0;
if (digitalRead(DIR) != Direction) {if (Speed == 0) digitalWrite(DIR, Direction); delayMicroseconds(10);}
if (digitalRead(SEL) == PRESSED || digitalRead(SEL2) == PRESSED) stay = false;
if (digitalRead(ESC) == PRESSED){ esegui = false; stay = false; delay(200);}
if (digitalRead(DIR) == Direction) StepperRunToSpeed(stepperSpeed); else StepperRunToSpeed(0);
delay (10);
}
e lo stesso nel menu' "movimento libero" ?
joy = analogRead(ANALOG_X);
if (joy >= HIGH_TOL) { stepperSpeed = joy - HIGH_TOL; Direction = CCW;}
if (joy <= LOW_TOL) { stepperSpeed = LOW_TOL - joy; Direction = CW;}
if ((joy >= LOW_TOL) && (joy <=HIGH_TOL)) stepperSpeed = 0;
if (digitalRead(DIR) != Direction) {if (Speed == 0) digitalWrite(DIR, Direction); delayMicroseconds(10);}
if (digitalRead(ESC) == PRESSED) stay = false;
if (digitalRead(DIR) == Direction) StepperRunToSpeed(stepperSpeed); else StepperRunToSpeed(0);
if (digitalRead(RESET) == PRESSED) absolute_steps = 0;
delay (10);
Posizione = ((float(absolute_steps)/one_turn_screw_steps)*float(NORTON_feed))/100;
lcd.setCursor(10,2);
lcd.print(Posizione,2);
lcd.print(" mm ");
}
Non ho alba di come fare però...
-
desdemone1976
- APPRENDISTA E ADDETTO ALLE PULIZIE
- Messaggi: 7
- Iscritto il: mar lug 06, 2021 07:44
- Località: Ancona
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
Grazie per la risposta McMax, ci avevo studiato un po sopra e avevo capito che generavi un PWM...il problema con il MEGA è che l'indirizzo del pin è diverso...sul mega corrisponde al pin 11 risolto l'arcano!
Adesso però mi servirebbe un consiglio sui parametri in quanto non riesco ad arrivare ad una quadra all'atto pratico...il motore non ha abbastanza forza...sicuramente sbaglio qualcosa...
questo l'alimentatore:
https://www.amazon.it/gp/product/B07DFH ... UTF8&psc=1
questo il driver:
https://www.amazon.it/gp/product/B07W5Y ... UTF8&psc=1
questo il motore passo passo
https://www.ebay.it/itm/DUAL-SHAFT-NEMA ... 2174320544
Ho chiesto su un altro gruppo e vi dico i parametri che ho messo...per me sbagliati ma sono quelli che mi danno un minimo di risultato altrimenti il motore ha forza ZERO...fermo il carrello con le mani...per farvi capire.
Comunque ho impostato la corrente erogata al massimo sul driver 5.6A e 1600 passi.
Sull'ELS ho impostato 800 passi per il motore (ho un rapporto di trasmissione 1:2, cioè ho una puleggia a 20 denti sull'albero motore e una puleggia 40 denti sulla vite di trasmissione)
...ma c'è qualcosa che non mi porta...con questa configurazione ho dovuto portare a75cent/giro il parametro avanzamento su una vite da 3mm di passo per avere dimensioni giuste...ed avere una "forza" minima per lavorare.
...ma c'è qualcosa che non va nella mia testa dovrei impostare i parametri a rovescio...tipo 800 passi sul driver e 1600 sull'ELS avendo quel rapporto di trasmissione cosi da riportare anche a 300i cent/giro...
MA cosi ho una forza sul carro ridicola ed il motore perde passi con un soffio....HEEEELPPP
Adesso però mi servirebbe un consiglio sui parametri in quanto non riesco ad arrivare ad una quadra all'atto pratico...il motore non ha abbastanza forza...sicuramente sbaglio qualcosa...
questo l'alimentatore:
https://www.amazon.it/gp/product/B07DFH ... UTF8&psc=1
questo il driver:
https://www.amazon.it/gp/product/B07W5Y ... UTF8&psc=1
questo il motore passo passo
https://www.ebay.it/itm/DUAL-SHAFT-NEMA ... 2174320544
Ho chiesto su un altro gruppo e vi dico i parametri che ho messo...per me sbagliati ma sono quelli che mi danno un minimo di risultato altrimenti il motore ha forza ZERO...fermo il carrello con le mani...per farvi capire.
Comunque ho impostato la corrente erogata al massimo sul driver 5.6A e 1600 passi.
Sull'ELS ho impostato 800 passi per il motore (ho un rapporto di trasmissione 1:2, cioè ho una puleggia a 20 denti sull'albero motore e una puleggia 40 denti sulla vite di trasmissione)
...ma c'è qualcosa che non mi porta...con questa configurazione ho dovuto portare a75cent/giro il parametro avanzamento su una vite da 3mm di passo per avere dimensioni giuste...ed avere una "forza" minima per lavorare.
...ma c'è qualcosa che non va nella mia testa dovrei impostare i parametri a rovescio...tipo 800 passi sul driver e 1600 sull'ELS avendo quel rapporto di trasmissione cosi da riportare anche a 300i cent/giro...
MA cosi ho una forza sul carro ridicola ed il motore perde passi con un soffio....HEEEELPPP
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
ammazza se sei andato al risparmio 
Allora diciamo che motore e driver potrebbero anche andare, ma il condizionale è d'obbligo visto che su questa roba super cinese delle specifiche non mi fido molto.... l'alimentatore invece è un disastro totale
Se leggi bene il manuale faccio presente quanto sia importante un alimentatore di qualità. Ora non voglio dire che il problema è sicuramente quello ma a vederlo (ed a vedere il prezzo) ritengo che sia il maggior sospettato. Se hai un oscilloscopio prova ad attaccarlo all'uscita dell'alimentatore e vedi cosa succede alla tensione quando cerchi di far girare i motore.....
edit: se scopri che è quello e lo devi cambiare, prendilo con uscita a 48V al posto che 36, visto che sia il driver che il motore supportano la 48V....
Allora diciamo che motore e driver potrebbero anche andare, ma il condizionale è d'obbligo visto che su questa roba super cinese delle specifiche non mi fido molto.... l'alimentatore invece è un disastro totale
Se leggi bene il manuale faccio presente quanto sia importante un alimentatore di qualità. Ora non voglio dire che il problema è sicuramente quello ma a vederlo (ed a vedere il prezzo) ritengo che sia il maggior sospettato. Se hai un oscilloscopio prova ad attaccarlo all'uscita dell'alimentatore e vedi cosa succede alla tensione quando cerchi di far girare i motore.....
edit: se scopri che è quello e lo devi cambiare, prendilo con uscita a 48V al posto che 36, visto che sia il driver che il motore supportano la 48V....
McMax
“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson
fulminato in tenera età
“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson
fulminato in tenera età
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
tarzan, si quelli sono i blocchi che si incaricano di leggere il joystick e muovere il motore con una velocità proporzionale alla posizione del joy. Nel caso specifico leggono l'ingresso ANALOG_X che corrisponde all'asse X del joystick.
Se vuoi fare in modo che l'asse Y sposti il motore più finemente dovrai leggere l'asse e scalare la velocità del motore..... dai che non è difficile
Se vuoi fare in modo che l'asse Y sposti il motore più finemente dovrai leggere l'asse e scalare la velocità del motore..... dai che non è difficile
McMax
“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson
fulminato in tenera età
“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson
fulminato in tenera età
-
desdemone1976
- APPRENDISTA E ADDETTO ALLE PULIZIE
- Messaggi: 7
- Iscritto il: mar lug 06, 2021 07:44
- Località: Ancona
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
..e lo so che sono andato al risparmio...ma i budget erano risicati...
Proviamo a vedere come si comporta sto driver quando deve "Lavorare"
Mentre per il discorso step? penso che la configurazione giusta sia 1600 sul driver e 800 sull'ELS...giusto?
Grazie.
-
tarzan
- SON PASSATO AI TRAPANINI
- Messaggi: 87
- Iscritto il: mer ago 13, 2014 09:21
- Località: Pordenone
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
Ciao, temo anch'io che sia colpa dell'alimentazione...controlla che non si sieda sotto carico, quel driver ed il motore sembrano di discreta qualità ..
Per il discorso step in ELS e step nel controller viene suggerito di impostarli uguali ma anch'io siccome uso un rapporto 1:2 sto provando a sperimentare coi settaggi ..
Avevo trovato la soluzione per puro caso!
Poi per un guasto alla scheda motore dc ho dovuto smontare fuori tutto e adesso non riesco più a ricordare l'impostazione corretta...
Per McMax, la modifica che avevo provato è quella scritta in blu, ovviamente mi da errore di variabile non dichiarata ..
Ma tu dici che devo mantenere "Joy" ed associarlo anche ad Y o usare un'altro nome?
Mi sto perdendo in un bicchiere d'acqua ma ti ripeto che fino a qualche mese fa non sapevo nemmeno cosa fosse Arduino
Per il discorso step in ELS e step nel controller viene suggerito di impostarli uguali ma anch'io siccome uso un rapporto 1:2 sto provando a sperimentare coi settaggi ..
Avevo trovato la soluzione per puro caso!
Poi per un guasto alla scheda motore dc ho dovuto smontare fuori tutto e adesso non riesco più a ricordare l'impostazione corretta...
Per McMax, la modifica che avevo provato è quella scritta in blu, ovviamente mi da errore di variabile non dichiarata ..
Ma tu dici che devo mantenere "Joy" ed associarlo anche ad Y o usare un'altro nome?
Mi sto perdendo in un bicchiere d'acqua ma ti ripeto che fino a qualche mese fa non sapevo nemmeno cosa fosse Arduino
Ultima modifica di tarzan il mar lug 27, 2021 14:17, modificato 2 volte in totale.
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
@ desdemone1976
metti il driver a 400 step giro e lascia l'ELS a 800.
Se hai una riduzione 1:2 questo è il rapporto corretto. Inoltre riducendo il microstepping guadagni in coppia.
metti il driver a 400 step giro e lascia l'ELS a 800.
Se hai una riduzione 1:2 questo è il rapporto corretto. Inoltre riducendo il microstepping guadagni in coppia.
-->I MIEI VIDEO<--
-
desdemone1976
- APPRENDISTA E ADDETTO ALLE PULIZIE
- Messaggi: 7
- Iscritto il: mar lug 06, 2021 07:44
- Località: Ancona
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
Grazie per la risposta!
...in un momento di lucidità ho realizzato che a lavoro usiamo questi alimentatori:
https://www.meanwell-web.com/en-gb/ac-d ... r--240--48
Ne recupero uno e lo provo...probabilmente è migliore della mia cineseria...
...in un momento di lucidità ho realizzato che a lavoro usiamo questi alimentatori:
https://www.meanwell-web.com/en-gb/ac-d ... r--240--48
Ne recupero uno e lo provo...probabilmente è migliore della mia cineseria...
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
Aggiungo che il software originale ha un limite di 255 centesimi come valore massimo di avanzamento (leggi vecchi post) quindi nel movimento libero non avrai mai la corrispondenza sul valore letto visto cha hai una vita da 300 centesimi.
Devi fare questa modifica ....mettere a "int" la variabile NORTON_feed
Devi fare questa modifica ....mettere a "int" la variabile NORTON_feed
Codice: Seleziona tutto
void MovimentoLibero() //moves the stepper motor freely using the joystick. It returns the carriage position calculated on the actual NORTON gearbox ratio
{
boolean stay = true;
unsigned long stepperSpeed;
float Posizione = 0.00;
unsigned int joy;
int NORTON_feed; -->I MIEI VIDEO<--
-
desdemone1976
- APPRENDISTA E ADDETTO ALLE PULIZIE
- Messaggi: 7
- Iscritto il: mar lug 06, 2021 07:44
- Località: Ancona
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
...ho cambiato l'alimentatore...ma niente...
...sempre uno NULLA di coppia! anche a 400 step
...Potrebbe essere il driver

...sempre uno NULLA di coppia! anche a 400 step
...Potrebbe essere il driver
-
tarzan
- SON PASSATO AI TRAPANINI
- Messaggi: 87
- Iscritto il: mer ago 13, 2014 09:21
- Località: Pordenone
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
Controlla minuziosamente i collegamenti del motore ed i vari dip switch, vedo che puoi impostare anche dei limitatori di corrente..
A me è capitato di impazzire solo perchè sbadatamente ( complice la serigrafia ingannevole ) li stavo impostando ad cazzum ...

A me è capitato di impazzire solo perchè sbadatamente ( complice la serigrafia ingannevole ) li stavo impostando ad cazzum ...
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
Ma ti perde passi in movimento libero? Riduci la veocità massima dello stepper sull'ELS portala a 100 (su impostazioni "Vel max stepper") ed aumenta i tempi di ritardo accellerazione (prova 2000)
-->I MIEI VIDEO<--
-
desdemone1976
- APPRENDISTA E ADDETTO ALLE PULIZIE
- Messaggi: 7
- Iscritto il: mar lug 06, 2021 07:44
- Località: Ancona
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
Grazie per le risposte!
Switch del driver controllati più volte...
Velocità già impostata a 100 e accelerazione/decelerazione a 2600
Perde passi se oppongo resistenza in fase di avanzamento agendo sul carrello, la trovo molto molle come spinta...
Conclusione: penso il tutto risieda nella cineseria...dichiarano un valore...ma sicuramente non lo mantengono!!!
Switch del driver controllati più volte...
Velocità già impostata a 100 e accelerazione/decelerazione a 2600
Perde passi se oppongo resistenza in fase di avanzamento agendo sul carrello, la trovo molto molle come spinta...
Conclusione: penso il tutto risieda nella cineseria...dichiarano un valore...ma sicuramente non lo mantengono!!!
Re: ELS (Electronic Lead Screw) - progetto con ARDUINO
Scusa ma su che tornio lo stai montando? la vite che passo ha? posso dirti che indicativamente gli stessi componenti li ho installati su un damatomacchine e il carro a mano non lo fermi.
-->I MIEI VIDEO<--