pd example patch 4 controlling steppers via pduino
hiya, im traying control 1 step motor via pduino (latest cvs) manage make motor tick. have tested wiring basic arduino step motor unipolar example playground , works quite well. but, since im not familiar coding i've been trying firmware code named pduino aka firmata.
im not sure whats speed , secuence of values have send 4 pins unipolar connected.
can here share puredata patches move stepper? via pduino or not, same me long works.
tx!,
/a
im not sure whats speed , secuence of values have send 4 pins unipolar connected.
can here share puredata patches move stepper? via pduino or not, same me long works.
tx!,
/a
okay, didnt work via pduino, began copy pasting form here , there , end code arduino:
/* paso paso aka step motor control desde puredata
* --------------------
*
*
* copy pasted on 28 december 2006
* kdag-alej00d <http://co.lab.cohete.net>
* http://altred.net
*
*/
int ledpin = 13;
int statusled = low;
int delaytime = 500;
int val = 0;
int serbyte = 0; // valor que llega via serial
int analogvalue = 0;
void setup()
{
pinmode(ledpin, output);
serial.begin(9600); // conecta el puerto serial
int i;
for(i=8; i<11; i++) {
pinmode(i, output);
}
pinmode(13, output); //led pin 13.
digitalwrite(13, high);
}
void stepforward() //movimiento hacia adelante
{
digitalwrite(8, high);
digitalwrite(9, low);
digitalwrite(10, low);
digitalwrite(11, low);
delay(30);
digitalwrite(8, low);
digitalwrite(9, high);
digitalwrite(10, low);
digitalwrite(11, low);
delay(30);
digitalwrite(8, low);
digitalwrite(9, low);
digitalwrite(10, high);
digitalwrite(11, low);
delay(30);
digitalwrite(8, low);
digitalwrite(9, low);
digitalwrite(10, low);
digitalwrite(11, high);
delay(30);
}
void stepbackward() //movimiento hacia atras
{
digitalwrite(8, low);
digitalwrite(9, low);
digitalwrite(10, low);
digitalwrite(11, high);
delay(30);
digitalwrite(8, low);
digitalwrite(9, low);
digitalwrite(10, high);
digitalwrite(11, low);
delay(30);
digitalwrite(8, low);
digitalwrite(9, high);
digitalwrite(10, low);
digitalwrite(11, low);
delay(30);
digitalwrite(8, high);
digitalwrite(9, low);
digitalwrite(10, low);
digitalwrite(11, low);
delay(30);
}
void loop()
{
serbyte = serial.read();
val = serbyte; //val = analogread(0);
// val = analogread(0); comentado porque los datos llegan via serial. no via pin analogico
serial.print(val);
if (val > 5) {
// acelera
delaytime = 2048 - 1024 * val / 512 + 1;
stepforward();
} else if (val < 9) {
// disminuya la velocidad
delaytime = 1024 * val / 512 + 1;
stepbackward();
} else {
delaytime = 1024;
}
}
the pd patch not yet ready, change rotation direction doesnt alter speed rotation yet..
the stepper connected according schematics in arduino playground uln2003a driver.
((el patch de pd aun no esta afinado, ya que el motor si cambia el sentido de rotacion pero no acelera o disminuya la velocidad de rotacion...no se porque.))
/a
/* paso paso aka step motor control desde puredata
* --------------------
*
*
* copy pasted on 28 december 2006
* kdag-alej00d <http://co.lab.cohete.net>
* http://altred.net
*
*/
int ledpin = 13;
int statusled = low;
int delaytime = 500;
int val = 0;
int serbyte = 0; // valor que llega via serial
int analogvalue = 0;
void setup()
{
pinmode(ledpin, output);
serial.begin(9600); // conecta el puerto serial
int i;
for(i=8; i<11; i++) {
pinmode(i, output);
}
pinmode(13, output); //led pin 13.
digitalwrite(13, high);
}
void stepforward() //movimiento hacia adelante
{
digitalwrite(8, high);
digitalwrite(9, low);
digitalwrite(10, low);
digitalwrite(11, low);
delay(30);
digitalwrite(8, low);
digitalwrite(9, high);
digitalwrite(10, low);
digitalwrite(11, low);
delay(30);
digitalwrite(8, low);
digitalwrite(9, low);
digitalwrite(10, high);
digitalwrite(11, low);
delay(30);
digitalwrite(8, low);
digitalwrite(9, low);
digitalwrite(10, low);
digitalwrite(11, high);
delay(30);
}
void stepbackward() //movimiento hacia atras
{
digitalwrite(8, low);
digitalwrite(9, low);
digitalwrite(10, low);
digitalwrite(11, high);
delay(30);
digitalwrite(8, low);
digitalwrite(9, low);
digitalwrite(10, high);
digitalwrite(11, low);
delay(30);
digitalwrite(8, low);
digitalwrite(9, high);
digitalwrite(10, low);
digitalwrite(11, low);
delay(30);
digitalwrite(8, high);
digitalwrite(9, low);
digitalwrite(10, low);
digitalwrite(11, low);
delay(30);
}
void loop()
{
serbyte = serial.read();
val = serbyte; //val = analogread(0);
// val = analogread(0); comentado porque los datos llegan via serial. no via pin analogico
serial.print(val);
if (val > 5) {
// acelera
delaytime = 2048 - 1024 * val / 512 + 1;
stepforward();
} else if (val < 9) {
// disminuya la velocidad
delaytime = 1024 * val / 512 + 1;
stepbackward();
} else {
delaytime = 1024;
}
}
the pd patch not yet ready, change rotation direction doesnt alter speed rotation yet..
the stepper connected according schematics in arduino playground uln2003a driver.
((el patch de pd aun no esta afinado, ya que el motor si cambia el sentido de rotacion pero no acelera o disminuya la velocidad de rotacion...no se porque.))
/a
Arduino Forum > Forum 2005-2010 (read only) > Software > Interfacing > pd example patch 4 controlling steppers via pduino
arduino
Comments
Post a Comment