Offline
Newbie
Karma: 0
Posts: 10
|
 |
« on: July 11, 2012, 09:08:39 am » |
buenas a todos tengo un pequeño problema que quizas sea mas facil de lo que me lo parece a mi, este es el codigo de mi programa (que he ido acumulando de un sitio y de otro) pero quiero que el contenido de void loop se repita el numero de veces que ponga en ( int nfotos=600;) como deberia hacerlo, si es que en el void loop se puede, y otra duda que tengo es si se podria simplificar el programa puesto que el numero de pasos y toma de foto supongo que se le podria decir que lo repita x veces en una direccion y en otra un saludo y espero que algun alma caritativa me resuelva el problema he mirado por muchas paginas pero no encuentro nada programa para tomar fotografias panoramicas */ int nfotos=600; int pasos = 4; int temppas = 2000; int temfoto = 1000; int delayfoto = 200; int pinArray[] = {13}; int count = 0; int timer = 1000; #include <Stepper.h>
const int stepsPerRevolution = 48; // change this to fit the number of steps per revolution // for your motor
// initialize the stepper library on pins 8 through 11: Stepper myStepper(stepsPerRevolution, 8,9,10,11);
void setup(){ for (count=0;count<1;count++) { // Configuramos todas // los PIN-es de golpe pinMode(pinArray[count], OUTPUT); } // set the speed at 60 rpm: myStepper.setSpeed(70); // initialize the serial port: Serial.begin(9600); pinMode(13, OUTPUT); }
void loop(){ Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } }
|
|
|
|
« Last Edit: July 11, 2012, 09:16:44 am by ivanlledo »
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 2
Posts: 512
|
 |
« Reply #1 on: July 11, 2012, 09:21:41 am » |
Para que una serie de instrucciones se repita un número determinado de veces tienes que ponerlo dentro de un for:
for (i=0;i<nfotos;i++) { //instrucciones a repetir "nfotos" veces }
El for puedes ponerlo dentro de una condición para que sólo se ejecute una vez. Por ejemplo si activas un pulsador.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 10
|
 |
« Reply #2 on: July 11, 2012, 09:29:08 am » |
gracias por tu contestacion pero soy bastate nuevo en esto de arduino y no he entendido muy bien tu explicacion eso es lo que quiero hacer que al pulsar un boton emieza y se repita en nmero de veces que yo quiera se que con for se puede hacer pero no se donde ni como ponerlo gracias por tu respuesta y perdon por mi ignorancia 
|
|
|
|
« Last Edit: July 11, 2012, 09:30:57 am by ivanlledo »
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 10
|
 |
« Reply #3 on: July 11, 2012, 09:34:04 am » |
de hecho lo he utizado en mi codigo pero como he dicho cojiendolo de varias paginas y no se donde tengo que ponerlo para que repita todo el contenido del void loop
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 10
|
 |
« Reply #4 on: July 11, 2012, 10:07:59 am » |
ok ya lo voy entendiendo pero algo falla sera que no esta bien puesto en su sitio... int i; int nfotos=1; int pasos = 4; int temppas = 2000; int temfoto = 1000; int delayfoto = 200; int pinArray[] = {13}; int count = 0; int timer = 1000; #include <Stepper.h>
const int stepsPerRevolution = 48; // change this to fit the number of steps per revolution // for your motor
// initialize the stepper library on pins 8 through 11: Stepper myStepper(stepsPerRevolution, 8,9,10,11);
void setup(){ for (count=0;count<1;count++) { pinMode(pinArray[count], OUTPUT); } // rpm 70 myStepper.setSpeed(10); // initialize the serial port: Serial.begin(9600); pinMode(13, OUTPUT); }
void loop(){ for (i=0;i<nfotos;i++) Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } }
|
|
|
|
|
Logged
|
|
|
|
|
Donostia
Offline
God Member
Karma: 0
Posts: 672
elektronikadonbosco
|
 |
« Reply #5 on: July 11, 2012, 12:52:02 pm » |
For necesita que le digas que quieres repetir para ellos se usan las llaves { } Todo lo que esté en medio se repetirá las veces que le hayas puesto. En el código te falta poner las dos llaves.
Mira atentamente lo que Cheyenne te comentaba, pero mira todo los comentarios también. SAlu2
|
|
|
|
|
Logged
|
|
|
|
|
Euskadi
Offline
God Member
Karma: 10
Posts: 600
Arduinotarrak
|
 |
« Reply #6 on: July 11, 2012, 01:13:05 pm » |
Hola, si quieres que la ejecución se repita un número concreto de veces, el for() lo puedes poner en setup() y dejar vacío el loop() Esas líneas que empiezan por for (count=0;count<1;count++) no hacen nada, porque count no puede incrementarse con la condición count < 0
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 10
|
 |
« Reply #7 on: July 11, 2012, 03:44:19 pm » |
Hola, si quieres que la ejecución se repita un número concreto de veces, el for() lo puedes poner en setup() y dejar vacío el loop() Esas líneas que empiezan por for (count=0;count<1;count++) no hacen nada, porque count no puede incrementarse con la condición count < 0 muchas gracias curro92 era tan sencillo como sacarlo de void loop y meterlo en setup de verdad muchas gracias no veas lo que me ha costado incluso lo he puesto pero como me ha dicho ionhs me faltaban las llaves que contenian las intrucciones y me devolvia un fallo
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 10
|
 |
« Reply #8 on: July 11, 2012, 03:47:33 pm » |
ahora solo me falta añadir un boton que inicie el programa voy a investigar a ver como se hace no quiero daros mucho la tabarra  y asi aprendo jejeje
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 10
|
 |
« Reply #9 on: July 14, 2012, 10:51:40 am » |
bueno mi proyecto va avanzando ya he conseguido que al pulsar un boton se inicie el programa.... sigo investigando para hacer algo mas elaborado tipo menu en un display todavia me falta pero gracias a vosotros he avanzado bastante int pulsador=2; int i; int foto=1; int nfotos=1; int pasos = 6; int temppas = 1000; int temfoto = 0500; int delayfoto = 0500; int pinArray[] = {13}; int count = 0; int timer = 1000; #include <Stepper.h> const int stepsPerRevolution = 48; Stepper myStepper(stepsPerRevolution, 8,9,10,11);
void setup() { pinMode(pulsador, INPUT); pinMode(foto, OUTPUT); for (i=0;i<nfotos;i++) for (count=0;count<1;count++) { pinMode(pinArray[count], OUTPUT); } // rpm 70 myStepper.setSpeed(40); // initialize the serial port: Serial.begin(9600); }
void panodruino() { for (i=0;i<nfotos;i++){ Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("izquierda"); myStepper.step(pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } Serial.println("derecha"); myStepper.step(-pasos); delay(delayfoto); for (count=0;count<1;count++) { digitalWrite(pinArray[count], HIGH); delay(timer); digitalWrite(pinArray[count], LOW); delay(delayfoto); } }
} void espera() { }
void loop() { espera(); if (digitalRead(2)==HIGH) { panodruino(); } }
|
|
|
|
|
Logged
|
|
|
|
|
|