Hi!!
im trying to run this on my Arduino Due, but im getting this error, so any help will be very appreciated!
Stepper_1.ino: In function 'void setup()':
Stepper_1:13: error: redefinition of 'void setup()'
ConstantSpeed:42: error: 'void setup()' previously defined here
Stepper_1.ino: In function 'void loop()':
Stepper_1:36: error: redefinition of 'void loop()'
ConstantSpeed:76: error: 'void loop()' previously defined here
Stepper_1.ino: In function 'void forward(int)':
Stepper_1:128: error: a function-definition is not allowed here before '{' token
Stepper_1:206: error: expected '}' at end of input
http://www.hispavila.com/3ds/atmega/motoresunipolares.html
CODE:
/*
stepperunipolar1.pde
http://www.bristolwatch.com/arduino/arduino_unipolar_stepper.htm
Dependiendo del tipo de motor intercambiar los cuatro números de
abajo (8-11) hasta que funcione el motor.
Disponemos dos pulsadores para girar en dos sentidos y un pot.
para variar la velocidad de giro.
La secuencia que sigue, procede a través de la experimentación con
este motor unipolar. Puede ser diferente para otro motor.
La velocidad se controla por un retardo entre cada paso.
A mayor retardo, velocidad mas lenta.
Para mayor velocidad cambiar el 10 por 2.
Esta se calcula entre cada paso para variar la velocidad, mientras que se mueve.
El valor del retardo se obtiene de la lectura y conversión analogico-a-digital
(AD0 en este caso), entregando un valor entre 0 y 1023.
Los valores son divididos por 4 y se suma 10 para el retardo en
milisegundos: delay(analogRead(0)/4 +10)
Modificado y actualizado: 05.05.2011
por: V. Garcia
Los siguientes comandos serán compilados en código de máquina
y cargados en el microcontrolador.
Tamaño compilado con IDE Arduino v0013: 3154 bytes.
*/
#define Motorpin1 8 // D1, devanado 1 del motor, pin 8
#define Motorpin2 9 // D2, devanado 2 del motor, pin 9
#define Motorpin3 10 // D3, devanado 3 del motor, pin 10
#define Motorpin4 11 // D4, devanado 4 del motor, pin 11
#define CW 3 // SW0 pulsador, pin 3
#define CCW 4 //SW1 pulsador, pin 4
// Entrada analógica potenciómetro en pin 0.
#define ledPin 13
int v = 2 ; // variar velocidad
void setup() {
pinMode(CW, INPUT);
pinMode(CCW, INPUT);
digitalWrite(CW, 1); // activa la RPA, pull up on
digitalWrite(CCW,1); // activa la RPA, pull up on
pinMode(Motorpin1, OUTPUT);
pinMode(Motorpin2, OUTPUT);
pinMode(Motorpin3, OUTPUT);
pinMode(Motorpin4, OUTPUT);
// inicia con todas las bobinas apagadas
digitalWrite(Motorpin1, 0);
digitalWrite(Motorpin2, 0);
digitalWrite(Motorpin3, 0);
digitalWrite(Motorpin4, 0);
// set up the LED pin: indicador
pinMode(ledPin, OUTPUT);
// blink the LED:
blink(3);
}
void loop() {
all_coils_off(); // apaga bobinas, rueda libre. Comentar para bloquear
if (!digitalRead(CW)) { // espera que se presione pulsador avance
forward(20000); // pasos que avanza
blink(3); // parpadea LED
}
if (!digitalRead(CCW)) { // espera que se presione pulsado reverso
reverse(20000); // pasos que retrocede
blink(3); // parpadea LED
}
} // final del lazo (loop)
void all_coils_off(void) { // apaga bobinas
digitalWrite(Motorpin1, 0);
digitalWrite(Motorpin2, 0);
digitalWrite(Motorpin3, 0);
digitalWrite(Motorpin4, 0);
}
void forward(int i) { // gira como el reloj
while (1) { // i = 20000
// 1
digitalWrite(Motorpin1, 1);
digitalWrite(Motorpin2, 0);
digitalWrite(Motorpin3, 0);
digitalWrite(Motorpin4, 0);
delay(analogRead(0)/4 + v); // pin analógico 0, entrada pot.
i--;
if (i < 1) break;
// 13
digitalWrite(Motorpin1, 1);
digitalWrite(Motorpin2, 0);
digitalWrite(Motorpin3, 1);
digitalWrite(Motorpin4, 0);
delay(analogRead(0)/4 + v);
i--;
if (i < 1) break;
// 3
digitalWrite(Motorpin1, 0);
digitalWrite(Motorpin2, 0);
digitalWrite(Motorpin3, 1);
digitalWrite(Motorpin4, 0);
delay(analogRead(0)/4 + v);
i--;
if (i < 1) break;
// 32
digitalWrite(Motorpin1, 0);
digitalWrite(Motorpin2, 1);
digitalWrite(Motorpin3, 1);
digitalWrite(Motorpin4, 0);
delay(analogRead(0)/4 + v);
i--;
if (i < 1) break;
// 2
digitalWrite(Motorpin1, 0);
digitalWrite(Motorpin2, 1);
digitalWrite(Motorpin3, 0);
digitalWrite(Motorpin4, 0);
delay(analogRead(0)/4 + v);
i--;
if (i < 1) break;
// 24
digitalWrite(Motorpin1, 0);
digitalWrite(Motorpin2, 1);
digitalWrite(Motorpin3, 0);
digitalWrite(Motorpin4, 1);
delay(analogRead(0)/4 + v);
i--;
if (i < 1) break;
// 4
digitalWrite(Motorpin1, 0);
digitalWrite(Motorpin2, 0);
digitalWrite(Motorpin3, 0);
digitalWrite(Motorpin4, 1);
delay(analogRead(0)/4 + v);
i--;
if (i < 1) break;
// 14
digitalWrite(Motorpin1, 1);
digitalWrite(Motorpin2, 0);
digitalWrite(Motorpin3, 0);
digitalWrite(Motorpin4, 1);
delay(analogRead(0)/4 + v);
i--;
if (i < 1) break;
}
}
void reverse(int i) { // gira contra el reloj
while (1) {
// 14
digitalWrite(Motorpin1, 1);
digitalWrite(Motorpin2, 0);
digitalWrite(Motorpin3, 0);
digitalWrite(Motorpin4, 1);
delay(analogRead(0)/4 + v);
i--;
if (i < 1) break;
// 4
digitalWrite(Motorpin1, 0);
digitalWrite(Motorpin2, 0);
digitalWrite(Motorpin3, 0);
digitalWrite(Motorpin4, 1);
delay(analogRead(0)/4 + v);
i--;
if (i < 1) break;
// 24
digitalWrite(Motorpin1, 0);
digitalWrite(Motorpin2, 1);
digitalWrite(Motorpin3, 0);
digitalWrite(Motorpin4, 1);
delay(analogRead(0)/4 + v);
i--;
if (i < 1) break;
// 2
digitalWrite(Motorpin1, 0);
digitalWrite(Motorpin2, 1);
digitalWrite(Motorpin3, 0);
digitalWrite(Motorpin4, 0);
delay(analogRead(0)/4 + v);
i--;
if (i < 1) break;
// 23
digitalWrite(Motorpin1, 0);
digitalWrite(Motorpin2, 1);
digitalWrite(Motorpin3, 1);
digitalWrite(Motorpin4, 0);
delay(analogRead(0)/4 + v);
i--;
if (i < 1) break;
// 3
digitalWrite(Motorpin1, 0);
digitalWrite(Motorpin2, 0);
digitalWrite(Motorpin3, 1);
digitalWrite(Motorpin4, 0);
delay(analogRead(0)/4 + v);
i--;
if (i < 1) break;
// 13
digitalWrite(Motorpin1, 1);
digitalWrite(Motorpin2, 0);
digitalWrite(Motorpin3, 1);
digitalWrite(Motorpin4, 0);
delay(analogRead(0)/4 + v);
i--;
if (i < 1) break;
// 1
digitalWrite(Motorpin1, 1);
digitalWrite(Motorpin2, 0);
digitalWrite(Motorpin3, 0);
digitalWrite(Motorpin4, 0);
delay(analogRead(0)/4 + v);
i--;
if (i < 1) break;
}
}
// Blink el indicador LED:
void blink(int howManyTimes) {
int i;
for (i=0; i< howManyTimes; i++) {
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
delay(200);
}
}
Moderator edit: Ow! My scrolling finger. Quote tags swapped for code tags.