Ho provato l'esempio n° 5 del tutorial specifico per l'Easy driver.
Aggiungendo appunto la libreria, tre pulsanti (sx dx stop) ed un potenziometro per la velocità.
// Example5 code for Brian Schmalz's Easy Driver Example page
// http://www.schmalzhaus.com/EasyDriver/EasyDriverExamples.html
#include <AccelStepper.h>
// Define the stepper and the pins it will use
AccelStepper stepper1(1, 9, 8);
// Define our three input button pins
#define LEFT_PIN 4
#define STOP_PIN 3
#define RIGHT_PIN 2
// Define our analog pot input pin
#define SPEED_PIN 0
// Define our maximum and minimum speed in steps per second (scale pot to these)
#define MAX_SPEED 500
#define MIN_SPEED 0.1
void setup() {
// The only AccelStepper value we have to set here is the max speeed, which is higher than we'll ever go
stepper1.setMaxSpeed(10000.0);
// Set up the three button inputs, with pullups
pinMode(LEFT_PIN, INPUT_PULLUP);
pinMode(STOP_PIN, INPUT_PULLUP);
pinMode(RIGHT_PIN, INPUT_PULLUP);
}
void loop() {
static float current_speed = 0.0; // Holds current motor speed in steps/second
static int analog_read_counter = 1000; // Counts down to 0 to fire analog read
static char sign = 0; // Holds -1, 1 or 0 to turn the motor on/off and control direction
static int analog_value = 0; // Holds raw analog value.
// If a switch is pushed down (low), set the sign value appropriately
if (digitalRead(LEFT_PIN) == 0) {
sign = 1;
}
else if (digitalRead(RIGHT_PIN) == 0) {
sign = -1;
}
else if (digitalRead(STOP_PIN) == 0) {
sign = 0;
}
// We only want to read the pot every so often (because it takes a long time we don't
// want to do it every time through the main loop).
if (analog_read_counter > 0) {
analog_read_counter--;
}
else {
analog_read_counter = 3000;
// Now read the pot (from 0 to 1023)
analog_value = analogRead(SPEED_PIN);
// Give the stepper a chance to step if it needs to
stepper1.runSpeed();
// And scale the pot's value from min to max speeds
current_speed = sign * ((analog_value/1023.0) * (MAX_SPEED - MIN_SPEED)) + MIN_SPEED;
// Update the stepper to run at this new speed
stepper1.setSpeed(current_speed);
}
// This will run the stepper at a constant speed
stepper1.runSpeed();
}
Devo dire che funziona, ho modificato la max speed da 500 a 10000, ma non sempre si muove in maniera pulita.
Alla pressione dello stop, ogni tanto si sentono rumori forti provenire dal motore, impulsi e tremolii o al cambio repentino sx dx..che comunque avviene decentemente.
Il potenziometro in alcuni punti sembra inibire interferire con il motore, creando un tremolio che lo immobilizza.
....devo fare diverse prove, anche con la tensione della cinta e lo sfregamento sulla guida.
....pero mi stò avvicinando....devo passare ora alla fase comandi da tastiera e da app...
Il tutto è decisamente disturbato da rumori di impulsi decisamente alti ..è normale?
Userei un driver DRV8825 piu' adatto per quel motore, visto che regge il doppio della corrente dell'EasyDriver, che e' poi quella quella che serve a quello stepper ( 1,5A ).
E con un alimentatore decente da 24V, almeno 2,5A.
E allora si che lo vedrai volare
Ceratamente..
Quel tipo di driver gestisce il motore in corrente e per fare cio' si regola appunto la corrente richiesta ( c'e' un trimmerino sulla scheda ) e si applica una tensione che e' almeno 4/5 volte quella di targa del motore.
Piu' o meno lo puoi fare con l'Easydriver, solo che la corrente max e' di 750mA e come dicevo prima, a te serve che ne scorra almeno il doppio
PS. Quell'alimentatore regolabile che usi, non vale una cippa
Brunello:
Ceratamente..
Quel tipo di driver gestisce il motore in corrente e per fare cio' si regola appunto la corrente richiesta ( c'e' un trimmerino sulla scheda ) e si applica una tensione che e' almeno 4/5 volte quella di targa del motore.
Piu' o meno lo puoi fare con l'Easydriver, solo che la corrente max e' di 750mA e come dicevo prima, a te serve che ne scorra almeno il doppio
PS. Quell'alimentatore regolabile che usi, non vale una cippa
c'è da chiederlo ? se devi far erogare almeno 1.5Ampere + altri 200 da buttare dentro al regolatore di tensione dell'arduino è ovvio che devi prendere un alimentatore più "oWATTato" (sottile battuta).
Se hai qualche computer fisso in giro ti consiglio di utilizzare l'alimentatore al suo interno, è comodissimo e ti fornisce molte tensioni con un buon wattaggio.
Dreamful:
...
Qualcuno ha esperienza con attuatori lineari a pistone se cosi si dice, sempre elettrici?
...
Intendi quelli che usano anche per le porte e per i lucernari ? ... se si, lascia perdere, sono semplicemente delle viti senza fine in un tubo con all'inizio una boccola filettata, lenti e poco precisi ...
Etemenanki:
Intendi quelli che usano anche per le porte e per i lucernari ? ... se si, lascia perdere, sono semplicemente delle viti senza fine in un tubo con all'inizio una boccola filettata, lenti e poco precisi ...
.....si infatti ho fatto una googolata....ne ho visti tanti.....il massimo che ho trovato e 5Omm al secondo...a costi molto elevati con una spinta di circa 20N....ma sono tanti tanti ...ai voglia a sfogliare pagine prima di trovare qualcosa che potrebbe andare bene...grazie Etemenanki
forse per andare veloce ti servirebbe una vite a ricircolo di sfere o barre elicoidali anche se in pratica le ho viste ma in vendita su siti vari credo mai e poi mai(nella mia corta vita)
Lucailvec:
oddio quanto costano poco quelle barre li ne voglio minimo 10 subito
...
Occhio che non sono terminate ... dei trovare qualcuno con un'officina che ti rettifica i terminali per alloggiare cuscinetti ed ingranaggi o giunti motore ... e non e' la cosa piu semplice del mondo
avevo visto che per poco le facevano loro...comunque grazie per la dritta ( ma che operazione si deve fare ? basta un tornio e una persona che sa quel che fa ?)
Etemenanki:
Occhio che non sono terminate ... dei trovare qualcuno con un'officina che ti rettifica i terminali per alloggiare cuscinetti ed ingranaggi o giunti motore ... e non e' la cosa piu semplice del mondo
.....illuminami con la 220V..(battuta)..cioe?....what?...praticamente?
...no nessun braccio robot....un semplice sportello che si deve aprire e chiudere velocemente ma è un pò pesante, e lavora a 90 ° dal basso verso l'alto
hai la possibilità di mettere un contrappeso? risparmieresti molta fatica all'attuatore, quindi ne potresti prendere uno più piccolo e lo fai lavorare su una leva corta.
Scherzi a parte ... quelle barre sono tagliate nette da una barra piu grande, e le parti terminali non sono lavorate, quindi se ci devi mettere dei cuscinetti alle estremita' e collegarci un motore, devi trovare qualcuno con una rettifica radiale (in pratica una grossa mola automatica in grado di rettificare alberi e barre ... per Lucailvec: no, se sono temperate un tornio non basta a fare un lavoro decente) che sia in grado di ridurti le estremita' a perni tondi del diametro e della lunghezza necessari ad alloggiare cuscinetti e raccordi per motore ... tipo ad esempio le estremita' di questa
EDIT: inoltre, con barre e viti a ricircolo di sfere, bisogna sempre fare attenzione a non togliere le boccole dalle barre o dalle viti senza contemporaneamente inserirci un tubo in plastica di tenuta, perche' le sfere nelle boccole sono "libere" nelle scanalature ... se si toglie la barra o la vite senza tenere in posizione le sfere con un tubo di diametro adeguato, le si perde e le boccole diventano inutilizzabili (e anche se poi le ritrovate tutte, riposizionarle non e' il lavoro piu semplice del mondo :D)
ooook afferrato che bisogna farle fare da qualcuno di serio
Comunque è vero con il contrappeso sarebbe molto più semplice e anche con un sistema tipo vericello elettrico, se trovi dove fissarlo hai risolto il problema del peso ...però forse la velocità no purtroppo.
per me il punto è che farlo viaggiare ad una velocità maggiore serve che acceleri il più forte possibile il che equivale applicare una forza maggiore...per me stai andando verso una soluzione grossa e che richieda molti watt e un controllo per evitare che si spacchi tutto..
Non dimenticatevi dell'inerzia ... se lo sportello pesa poco, e' un conto, ma se pesa parecchio, piu magari il contrappeso, il problema non e' solo muoverlo velocemente, ma anche fermarlo velocemente a fine corsa senza sfondare qualcosa