Pages: [1]   Go Down
Author Topic: motore passo passo con potenziometro: come aggiungo un altro?  (Read 889 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 37
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

« Last Edit: March 26, 2013, 09:23:21 am by leo72 » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 79
Posts: 4666
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
int Speed1 = analogRead(A0);   
int Speed2 = analogRead(A1);   
e all'inizio:
Code:
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
Logged

my name is IGOR, not AIGOR

Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie!
pensi che così vada bene?

Code:
#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);
}
« Last Edit: March 26, 2013, 03:31:41 pm by UweFederer » Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 79
Posts: 4666
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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
Logged

my name is IGOR, not AIGOR

Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Caspita sono nei guai!! Da dove comincio?? smiley-eek
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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!
Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 79
Posts: 4666
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai già cominciato!  smiley-grin
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.
Logged

my name is IGOR, not AIGOR

0
Offline Offline
Newbie
*
Karma: 0
Posts: 37
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Pages: [1]   Go Up
Jump to: