Go Down

Topic: motore passo passo con potenziometro: come aggiungo un altro? (Read 1 time) previous topic - next topic

robyr1

Mar 26, 2013, 02:15 pm Last Edit: Mar 26, 2013, 03:23 pm by leo72 Reason: 1
Salve a tutti,

ho trovato questo sketch, è un semplice stepper comandato da un potenziometro e due pulsanti (per la direzione).
Vorrei aggiungere un altro motore passo passo, non avendo le conoscenze, e più che altro senza comprare un altro arduino (che per me sarebbe la cosa + facile!) chi mi aiuta a modificare lo sketch?

Code: [Select]
#include <Stepper.h>

int forward = 2;
int reverse = 3;

Stepper motor(200, 10,11,12,13);            

void setup() {
 pinMode(forward,INPUT);
 pinMode(reverse,INPUT);
   Serial.begin(9600);
}

void loop() {
 int Speed = analogRead(A0);
 int RPM = map(Speed, 0, 1023, 0, 100);
 int f = digitalRead(forward);
 int r = digitalRead(reverse);
 if(f == 1 && r == 0 && RPM > 1){
 motor.step(1);
   motor.setSpeed(RPM);
   delay(.01);
 }
 if(r == 1 && f== 0  && RPM > 1){
   motor.step(-1);
   motor.setSpeed(RPM);
       delay(.01);
 }
 delay(5);
   Serial.println(RPM);
}



Comprare un'altro arduino sarebbe la cosa più stupida da fare ...sarebbe come comprarsi un'altra ps3 solo per avere 2 controller....cmq io per pilotare i motori passo passo non uso il tuo stesso skech... ho seguito questa guida, magari ti può aiutare anche a te. Per ora possiedo solo un motore passo passo, ma a giorni mi dovrebbe arrivare l'altro e ti potrò dire se è possibile pilotarli facilmente... http://www.mauroalfieri.it/elettronica/motori-passo-passo-bipolari-con-arduino-controlla-la-velocita.html

robyr11

Certo conosco quel link! Ma quello che ho trovato io funziona bene, e per me l' utilizzo dei pulsanti è fondamentale!


nid69ita

Brutalmente, raddoppia le tue variabili e chiamale 1 e 2. Naturalmente raddoppi anche l'uso dei pin; usi A0, quindi userai anche A1
Esempio:
Code: [Select]

int Speed1 = analogRead(A0);   
int Speed2 = analogRead(A1);   

e all'inizio:
Code: [Select]

int forward1 = 2;    // pin 2   per motore 1
int reverse1 = 3;     // pin 3   per motore 1
int forward2 = 4;    // pin 4   per motore 2
int reverse2 = 5;     //pin 5    per motore 2
my name is IGOR, not AIGOR

robyr11

#4
Mar 26, 2013, 05:01 pm Last Edit: Mar 26, 2013, 09:31 pm by UweFederer Reason: 1
Grazie!
pensi che così vada bene?

Code: [Select]
#include <Stepper.h>

int forward1 = 2;    // pin 2   per motore 1
int reverse1 = 3;     // pin 3   per motore 1
int forward2 = 4;    // pin 4   per motore 2
int reverse2 = 5;     //pin 5    per motore 2

Stepper motor(200, 10,11,12,13);            

void setup() {
 pinMode(forward,INPUT);
 pinMode(reverse,INPUT);
   Serial.begin(9600);
}

void loop() {
 int Speed1 = analogRead(A0);    
 int Speed2 = analogRead(A1);
 int RPM = map(Speed, 0, 1023, 0, 100);
 int f = digitalRead(forward);
 int r = digitalRead(reverse);
 if(f == 1 && r == 0 && RPM > 1){
 motor.step(1);
   motor.setSpeed(RPM);
   delay(.01);
 }
 if(r == 1 && f== 0  && RPM > 1){
   motor.step(-1);
   motor.setSpeed(RPM);
       delay(.01);
 }
 delay(5);
   Serial.println(RPM);
}

nid69ita

No, devi raddoppiare tutte le variabili.
Scusa, non son stato chiaro. Non volevo farlo io al tuo posto. Ti suggerivo un metodo ma senza farlo tutto io.

Importante è anche raddoppiare l'oggetto motor
Code: [Select]

Stepper motor1(200, 10,11,12,13);
Stepper motor2(200, 10,11,12,13);   --> ATTENZIONE: i 4 pin DEVONO essere altri non sò quali hai liberi


naturalmente motor nel programma non esiste più, cerca motor e sostituiscilo con motor1
my name is IGOR, not AIGOR


robyr11

Ora che ci penso l' altro stepper andrebbe comandato solo con un potenziometro, dovrebbe girare solo quando ruoto il potenziometro, e fermarsi quando il potenziometro è fermo!

nid69ita

Hai già cominciato!  :D
Hai modificato in parte il codice. Lo hai capito cosa fa?
I potenziometri e il motore li hai collegati ad alcuni pin. Il programma li vede attraverso le variabili.

Raddoppia i collegamenti del motore e dei potenziometri.
Esempio il motore è collegato a pin 10,11,12,13 il secondo puoi collegarli ai pin 6,7,8,9 (se sono liberi)
I potenziometri a quali pin son collegati? Collega gli altri ad altri pin liberi.
my name is IGOR, not AIGOR

robyr1

Ok grazie..ora faccio una prova! Infatti quello che mi interessa è capire, non fare semplicemente "copia e incolla"! Così sarò autonomo!

Go Up