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);
}



barlettaag

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


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