LDR i motor stepper(paso a paso)

Hola buenas estoy haciendo un proyecto y dispongo de Arduino Mega y no se como hacer el código de programación porque tengo 5 LDR y un motor paso a paso y necesito que el motor ruede hacia el ldr que tenga mas luz. los LDr los tengo en una semicircunferencia( 180º) y quiero que el funto referencial sea a los 90º asi que necesito mover el motor stepper según los 5 ldr para que siembre quede el ldr de los 90º encarado hacia la luz.

Gracias.

para contactar conmigo ( abr_1997@hotmail.com)

Se me ocurre antes de empezar que requires de alguna forma de calibración de los 5 LDR ya que no tienen respuestas similares, yo usaría una fuente de luz (linterna por ejemplo) enfocando perpendicularmente a distancias determinadas 2 o 3 no mas y tomaría esos puntos.
De ese modo estaríamos hablando de una respuesta pareja.

Ahora si con 5 sensores distribuidos digamos a 30 60 90 120 150 grados con respuestas similares se puede armar algo simple.
Para el stepper que usas, Motor Shield?

defines los 5 pines de A0 a A4.

en el loop lees los 5 en forma consecutiva.
pero mirá que ocurrirá si no haces lo que te sugiero.
6 array LDR

Bien supongamos que tenemos respuestas parejas, algo que dudo con LDR pero bueno.

Entonces lo que resta sería hacer lo siguiente.
S1 y s5 estan a 30 grados respecto de la vertical
S2 y S4 estan a 60 grados respecto de la vertical
S3 esta en la vertical o sea a 90 grrados.

si S1 o S2 son mayores al resto hay que girar a izquierda
si S4 o S5 son mayores, hay que girar a la derecha
Si s3 es quien supera a todos, ambas ruedas van parejas.

Girar a izquierda es hacer que la rueda derecha se mueva a velocidad normal y la izquierda mas lenta.
Cuan lenta depende de si estamos muy a la izquierda S1 o menos a la izquierda S2
Mismo criterior para la derecha.

Del ejemplo del motor Shield sabras como mover a uno u otro lado.

Asi que ya tienes por donde empezar.

Faltaría pensar si estas de acuerdo en que hacemos con la calibración y los 3 x 5 datos leídos.
Si eso podemos transformarlo en una curva o recta que uniformice los sensores.

Y acá tenés una posible forma de calibrar los LDR

Es cierto que el artículo no dice donde ponen la fuente de luz pero es un comienzo.

Esta [técnica es simple](http://técnica es simple) y puede funcionar tambien

muchas gracias!

pero no se como hacer esto de calibrar los LDR y ponerlo en función con el stepper.

Uso un controlador rojo, easydriver o algo asi me parece que se llama para el stepper (unipolar, 4 cables)

La tecnica simple es una alternativa fácil de hacer e implementar.

Tomas una linterna a una distancia X, supongamos 30 cmts o mas.. pero midela asi es mas o menos la misma en todos los casos.
Esto tienes que registrarlo para cada LDR, asi que manejarse con prolijidad.
Luego a oscuras, ese LDR y lees el valor que será bajo.
Te queda un valor alto para luz y uno bajo paa oscuridad. Si usas ese esquema que te sugerí.
Lo mismo para todos.

Ahora hay dos caminos. Transformar eso en una recta y = mx+b o algo mas fino sería la verdadera respuesta de un LDR que no es lineal. Pero como hacemos en electrónica, simplifiquemos.
tenemos dos puntos, 100% de luz o sea cuando iluminaste y 0% de luz cuando estuviste a oscuras.

Si llamo valor100 al que registré para 100% y valor0 para 0% tendré esto
la pendiente de la recta será m = (valor100 - valor0)/100
la ordenada al origen será b = valor0 ya que simplificamos que Oscuridad es 0% entonces en la ecuación de la recta y = m*x + b
nos queda y = m * 0 + b => y = b => b = valor0

Con esta recta y = (valor100-valor0)/100*ADC + valor0 donde ADC es el valor que tomes del ADC ya sea A0...A4 porque eran 5 sensores
Se entiende???

Entonces ya los tienes de algún modo emparejados.
Cuando uses la misma linterna para que el robot te siga la respuesta será pareja ya que si lo pones entre medio de dos sensores, estos responderán a traves de su recta de calibración con un valor que te permitirá decidir como girar las ruedas.

Lo que busco entonces es una respuesta mas o menos lineal y una toma de decisiones que hara que los motores no giren bruscamente sino según corresponda, mas o menos de acuedo a lo recibido por la luz incidente.
me parece que son muchos sensores, con 2 o 3 sería suficiente, creo pero veamos como sigue.

creo que ya voy entendiendo, muchas gracias :slight_smile:

Bueno mira como es la recta, no como la imaginé con pendiente positiva sino con pendiente negativa

Calibrado de LDR