Invetir giro con millis y mas

hola es la primera vez que entro al foro y no lo entiendo aun
quiero hacer un programa , que haga girar un motor paso tan despacio que gire 90 grados en 4 minutos y en ese momento con un final de carrera u otro metodo , pare el motor y empiece a girar en sentido contrario a una velocidad que esos 90 grados los realice en unos 5 segundos
tengo una parte hecha en la cual el motor por medio de millis he conseguido que el motor este andando 2 segundos , para durante esos 4 minutos, y asi esos 90 grados tarda en hacerlos mas o menos 2 horas y aqui es donde tendria que parar ;pero no se como integrar eso para que lo pare y empiece a girar en sentido contrario hasta el punto de inicio y vuelta a empezar al siguiente dia, por medio de un LDR que distinga entre noche y dia, siento si lo que digo es confuso , hace unos meses empeze con arduino y voy despacio gracias

Claro es confunso ayudar cuando solo te dan texto y nada más, recomiendo hacer un esquema, no les cuesta nada dibujar sobre un papel sus ideas y adjuntarlo en una respuesta junto con el código realizado, así tu mismo llegas a comprender detalles que antes no tenias en cuenta y los demas de la comunidad pueden darte un diagnóstico eficaz

tienes razon migue me gustaria enviar el codigo y asi lo habia pensado , en este momento no se como enviarlo, en cuanto lo sepa lo envio y mejor desearia que tu que creo te desenvuelves bien por aqui me diera una idea

Lee las Normas del Foro, punto 7

hola esta mañana sin saber como he llegado a un lugar que eran las normas , ahora llevo un rato intentando verlas y no se como , ademas no se si esto es asi para todos pero hay unos cuantos sitios que sale todo en ingles es normal? gracias

const int ledPin = 4; // the number of the LED pin // ACTUA SOBRE EL ENABLE DE LA PLACA L298 A LA CUAL ESTA CONECTADO

int ledState = LOW; // ledState used to set the LED
long previousMillis = 0; // will store last time LED was updated

long intervalOn = 3000; // medio segundo ON //
long intervalOff = 200000; // cinco segundos OFF // PONIENDO AQUI 200000 EL MOTOR PERMANECE PARADO 3 MIN 20 SEG LO CUAL EN PLACA SOLAR ,
//CON LA DEMULTIPLICACION DE ENGRANAJES TARDA UNAS DOS HORAS EN RECORRER UNOS 90 GRADOS
// AUNQUE ESTO HAY QUE ASEGURARLO
#include <Stepper.h> //Importamos la librería para controlar motores paso a paso

#define STEPS 200 //Ponemos el número de pasos que necesita para dar una vuelta. 48 en nuestro caso

// Ponemos nombre al motor, el número de pasos y los pins de control
Stepper stepper(STEPS, 8, 9, 10, 11);

void setup() {
// put your setup code here, to run once:
pinMode(ledPin, OUTPUT);
stepper.setSpeed(2); // Velocidad del motor en RPM
}
void loop() {
// put your main code here, to run repeatedly:
stepper.step(2);

//delay(10000);
//motor.step(-pasosPorVuelta);
//delay(2000);
unsigned long currentMillis = millis();
if (ledState == LOW) {
if (currentMillis - previousMillis > intervalOff) {
previousMillis = currentMillis;
ledState = HIGH;
}
} else {
if (currentMillis - previousMillis > intervalOn) {
previousMillis = currentMillis;
ledState = LOW; // BIEN A PARTIR DE AQUI COMO HACER QUE EL MOTOR PARE CUANDO LLEGUE A FINAL CARRERA O DE OTRA FORMA Y EMPIEZE A GIRAR AL CONTRARIO HASTA LLEGAR AL ORIGEN DONDE EMPEZO Y MANTENERSE PARADO HASTA QUE SALGA EL SOL , SUPONGO QUE ESTO LO HARIA CON UNA LDR

}

}
digitalWrite(ledPin, ledState);
}Texto preformateado

Las normas están disponibles en la página principal del foro en español y en la página de cada sección del foro en español.
No entiendo cómo dices que recién las encuentras si es lo primero que se ve.

Por favor léelas, edita tu post y pon el código como se debe y no escribas en mayúsculas porque equivale a gritar.
Gracias

no sabia yo que escribir mayusculas equivalia a gritar nada mas lejos de mi intencion, solamente lo he puesto para que si alguien lo leia lo viera mejor. posiblemente tu lleves en este foro muchos años y a demas seras mas inteligente que yo y ademas seguramente mucho mas joven ,y tal vez los viejos y los torpes no deberiamos entrar aqui , pero vuelvo a repetir que me cuesta mucho ver las reglas del foro, y tambien como editar un post y si consigo llegar a verlo supongo que sabre como se debe poner el codigo ,pero bueno eso es culpa mia lo intentare a ver si lo consigo

Yo tengo 60 años, no se si soy más joven o más inteligente pero trato de que si no lo soy, no se note.

Acá le acerco las reglas

Saludos

Moderador
El post#8 es un ejemplo de excusas sin sentido.
Primer hilo de cualquier post tienes las normas.
Ya te lo puso @MaximoEsfuerzo, cuando las mires entenderás todo. Si no entiendes me preguntas por privado.
Edita entonces tu post #6, retira las mayúsculas.
Si quieres resaltar algo usa negritas pero negritas en un código no surte efecto.
No te preocupes con comentar el código alcanza.
Desde 2014 yo respondo en este foro imagina si hemos visto códigos!!!
Para que quede constancia


Lee:

y lo mas importante hazlo y no sigas respondiendo sin antes hacerlo.

Asi se pone el código:

const int ledPin = 4; // the number of the LED pin // ACTUA SOBRE EL ENABLE DE LA PLACA L298 A LA CUAL ESTA CONECTADO

int ledState = LOW; // ledState used to set the LED
long previousMillis = 0; // will store last time LED was updated

long intervalOn = 3000; // medio segundo ON //
long intervalOff = 200000; // cinco segundos OFF // PONIENDO AQUI 200000 EL MOTOR PERMANECE PARADO 3 MIN 20 SEG LO CUAL EN PLACA SOLAR ,
//CON LA DEMULTIPLICACION DE ENGRANAJES TARDA UNAS DOS HORAS EN RECORRER UNOS 90 GRADOS
// AUNQUE ESTO HAY QUE ASEGURARLO
#include <Stepper.h> //Importamos la librería para controlar motores paso a paso

#define STEPS 200 //Ponemos el número de pasos que necesita para dar una vuelta. 48 en nuestro caso

// Ponemos nombre al motor, el número de pasos y los pins de control
Stepper stepper(STEPS, 8, 9, 10, 11);

void setup() {
  // put your setup code here, to run once:
  pinMode(ledPin, OUTPUT);
  stepper.setSpeed(2); // Velocidad del motor en RPM
}
void loop() {
  // put your main code here, to run repeatedly:
  stepper.step(2);

  //delay(10000);
  //motor.step(-pasosPorVuelta);
  //delay(2000);
  unsigned long currentMillis = millis();
  if (ledState == LOW) {
    if (currentMillis - previousMillis > intervalOff) {
      previousMillis = currentMillis;
      ledState = HIGH;
    }
  } else {
    if (currentMillis - previousMillis > intervalOn) {
      previousMillis = currentMillis;
      ledState = LOW; // BIEN A PARTIR DE AQUI COMO HACER QUE EL MOTOR PARE CUANDO LLEGUE A FINAL CARRERA O DE OTRA FORMA Y EMPIEZE A GIRAR AL CONTRARIO HASTA LLEGAR AL ORIGEN DONDE EMPEZO Y MANTENERSE PARADO HASTA QUE SALGA EL SOL , SUPONGO QUE ESTO LO HARIA CON UNA LDR

    }
  }
  digitalWrite(ledPin, ledState);
}

Viendo los avances, entiendo que los intervalos con millis() hacen que el motor gire 90 grados en en un aprox de 2 horas? Pero luego pides que el motor gire en sentido contrario esos 90 grados pero volver a la posición inicial; esto igualmente le tomara 2 horas con los intervalos establecidos, sin embargo dices que la secuencia debe empezar al otro dia, un dia aprox tiene 12 horas de sol y 12 horas de noche dependiendo de donde vives, si el motor le toma 4 horas ejecutar la secuencia completa que debe hacer el resto de horas hasta el anochecer

Donde ves 2hs @migueratto ?
200.000 mseg son 200 segundos o sea lo que el PO puso, 3min 20 segundos

De lo que el comenta en el código, a mi entender es el código para mover una estructura de un panel solar, trata de seguir el sol pienso yo por eso lo del LDR, por ende los intervalos mueven el motor que a su vez debe conectar con una estructura con engranajes a lo que el determina que los 90 grados se realiza en aprox 2 horas

PERMANECE PARADO 3 MIN 20 SEG LO CUAL EN PLACA SOLAR ,
//CON LA DEMULTIPLICACION DE ENGRANAJES TARDA UNAS DOS HORAS EN RECORRER UNOS 90 GRADOS
// AUNQUE ESTO HAY QUE ASEGURARLO

gracias por responder, si se trata de mover una placa solar de momento de 50w , para empezar a aprender, la cual tengo en mi terraza con un mastil redondo sobre el cual gira sujetada a la pared
quiero que siga al sol durante unas tres horas en sentido horizontal, en sentido vertical no lo necesito, ya que la placa la dejo fija a 40 grados , por eso quiero que a una hora determinada que es sobre las 14h , deje de girar y vuelva a su posicion inicial hasta la mañana siguiente,para ello llevo varios meses intentando aprendeer Arduino, porque es mas facil (claro si sabes programarlo), ya que habia pensato hacerlo fabricando una placa con ci l297 y l298 sin intervencion de micros de hecho ya tengo alguna que funciona para otras cosas, pero cuesta mucho tiempo hacerlo ya que es todo manual, si se me permite hacer en el foro creo que si, pondre una foto aunque siempre digo tengo que aprender a hacerlo ,de como esta instalado mas que nada por curiosiad y si alguien me da ideas mejores que las que yo tengo

Tienes razón @migueratto pasé por alto las palabras en mayúsculas porque el PO aún no las editó y van cuantos días!!!!
Yo simplemente no leo cosas que estan mal posteadas.