Caso práctico: Seguidor solar de un solo eje

Prototipo de Seguidor solar de un solo eje (Maker Style)

Nivel: Medio. Diseña un circuito de control que compare los niveles de luz de dos sensores para orientar un motor hacia la fuente de luz más brillante.

Objetivo y caso de uso

Este caso práctico te guía a través de la construcción de un bucle de control analógico que orienta automáticamente un mecanismo hacia una fuente de luz utilizando fotorresistencias (LDR) y amplificadores operacionales. Construirás un «buscador solar» que equilibra activamente dos entradas de luz para accionar un motor en la dirección correspondiente.

  • Aplicaciones en el mundo real:
  • Energía solar: Aumenta la eficiencia de los paneles fotovoltaicos manteniendo los paneles perpendiculares al sol durante todo el día.
  • Robótica: Permite comportamientos de búsqueda de luz (fototaxis) en robots autónomos.
  • Domótica: Controla persianas inteligentes para regular la temperatura de la habitación basándose en la intensidad de la luz solar.
  • Resultado esperado:
  • Cuando la fuente de luz está equilibrada, el motor permanece parado.
  • Cuando LDR1 está sombreado, la diferencia de voltaje activa el motor para girar en sentido horario (CW).
  • Cuando LDR2 está sombreado, el motor gira en sentido antihorario (CCW).
  • Público objetivo: Estudiantes de electrónica familiarizados con divisores de voltaje y amplificadores operacionales (OpAmps).

Materiales

  • V1: Fuente de alimentación de 9 V CC (Fuente de energía).
  • R1: Fotorresistencia (LDR), función: Sensor de luz izquierdo.
  • R2: Fotorresistencia (LDR), función: Sensor de luz derecho.
  • R3: Resistencia de 10 kΩ, función: Rama inferior del divisor de voltaje para R1.
  • R4: Resistencia de 10 kΩ, función: Rama inferior del divisor de voltaje para R2.
  • U1: LM358, función: Amplificador operacional dual (Comparadores).
  • U2: L293D, función: CI controlador de motor de puente en H.
  • M1: Motorreductor de 9 V CC, función: Actuador de seguimiento.
  • C1: Condensador de 100 nF, función: Desacoplo de la fuente de alimentación.

Guía de conexionado

Este circuito utiliza dos divisores de voltaje paralelos comparados por dos OpAmps para determinar la dirección del motor.

  • Fuente de alimentación:
  • Conecta el terminal positivo de V1 al nodo VCC.
  • Conecta el terminal negativo de V1 al nodo GND (0).
  • Conecta C1 entre VCC y GND.

  • Sensores (Divisor de voltaje dual):

  • Conecta R1 (LDR izquierdo) entre VCC y el nodo VA (Voltaje del sensor A).
  • Conecta R3 entre VA y GND.
  • Conecta R2 (LDR derecho) entre VCC y el nodo VB (Voltaje del sensor B).
  • Conecta R4 entre VB y GND.

  • Comparadores (LM358 – U1):

  • Comparador A (Lógica de giro a la derecha/CW):
    • Conecta la entrada no inversora (+) de U1 al nodo VA.
    • Conecta la entrada inversora (-) de U1 al nodo VB.
    • Conecta la Salida A de U1 al nodo SIG_CW.
  • Comparador B (Lógica de giro a la izquierda/CCW):
    • Conecta la entrada no inversora (+) de U1 al nodo VB.
    • Conecta la entrada inversora (-) de U1 al nodo VA.
    • Conecta la Salida B de U1 al nodo SIG_CCW.
  • Conecta el pin VCC de U1 a VCC y el pin GND a GND.

  • Controlador de motor (L293D – U2):

  • Conecta la Entrada 1 de U2 al nodo SIG_CW.
  • Conecta la Entrada 2 de U2 al nodo SIG_CCW.
  • Conecta el pin Enable 1 de U2 a VCC.
  • Conecta la Salida 1 de U2 al nodo M_POS.
  • Conecta la Salida 2 de U2 al nodo M_NEG.
  • Conecta VCC1 (Lógica) y VCC2 (Potencia) de U2 a VCC.
  • Conecta los pines GND de U2 a GND.

  • Actuador:

  • Conecta M1 (Motor) entre los nodos M_POS y M_NEG.

Diagrama de bloques conceptual

Conceptual block diagram — LM358 Solar Tracking Logic
Lectura rápida: entradas → bloque principal → salida (actuador o medida). Resume el esquemático ASCII de la siguiente sección.

Esquemático

[ INPUTS / SENSORS ]               [ LOGIC / PROCESSING ]                  [ ACTUATOR ]

   [ Power Supply Block ]
   [ Source: V1 (9 V)    ] --(VCC/GND Power)--> (Distributes to all ICs and Sensors)
   [ Filter: C1 (100nF) ]

                                         [ U1: LM358 Dual OpAmp ]
                                         |                      |
   [ Left Light Sensor  ]                | Comparator A (Logic) |
   [ Top: R1 (LDR)      ] --(Signal VA)->| Input: VA > VB ?     |--(SIG_CW)--->+
   [ Bot: R3 (10k Ohm)  ]                | Output: Turn CW      |              |
                                         |                      |              |
                                         |                      |              v
                                         | Comparator B (Logic) |      [ U2: L293D H-Bridge ]
   [ Right Light Sensor ]                | Input: VB > VA ?     |      |                    |
   [ Top: R2 (LDR)      ] --(Signal VB)->| Output: Turn CCW     |      | Input 1: CW Sig    |
   [ Bot: R4 (10k Ohm)  ]                |                      |      | Input 2: CCW Sig   |===(High Current)==> [ M1: Gear Motor ]
                                         +----------+-----------+      | Enable: VCC        |      (9 V DC)
                                                    |                  | VCC1/VCC2: 9 V      |
                                                    +--(SIG_CCW)------>| GND: Common        |
                                                                       +--------------------+
Esquema Eléctrico

Mediciones y pruebas

Sigue estos pasos para validar la lógica del seguidor:

  1. Prueba de equilibrio estático:

    • Expón ambos LDR a la luz ambiente por igual.
    • Mide el voltaje en los nodos VA y VB. Deberían ser aproximadamente iguales.
    • Mide SIG_CW y SIG_CCW. Ambos deberían estar en Bajo (aprox. 0 V) o equilibrados, manteniendo el motor detenido.
  2. Simulación de sombra izquierda:

    • Cubre R1 (LDR izquierdo) con tu mano.
    • Observación: La resistencia de R1 aumenta, provocando que el voltaje en VA caiga.
    • Comprobación lógica: Dado que VB > VA, el Comparador B (No inversor = VB) debería ponerse en Alto (SIG_CCW ≈ VCC).
    • Actuador: El motor debería girar en sentido antihorario.
  3. Simulación de sombra derecha:

    • Expón R1 a la luz y cubre R2 (LDR derecho).
    • Observación: La resistencia de R2 aumenta, provocando que el voltaje en VB caiga.
    • Comprobación lógica: Dado que VA > VB, el Comparador A (No inversor = VA) debería ponerse en Alto (SIG_CW ≈ VCC).
    • Actuador: El motor debería girar en sentido horario.

Netlist SPICE y simulación

Netlist SPICE de referencia (ngspice) — extractoNetlist SPICE completo (ngspice)

* Single-axis Solar Tracker Simulation
* Based on Practical Electronics Breadboard Case

* --- Power Supply ---
* V1: 9 V DC power supply
V1 VCC 0 DC 9V
* C1: 100 nF capacitor (Decoupling)
C1 VCC 0 100nF

* --- Dynamic Light Stimulus (Virtual Control) ---
* This source simulates the position of the sun moving from Left to Right.
* 0V = Light on Left Sensor, 5V = Light on Right Sensor.
* Sweeps linearly from 0V to 5V over 100ms.
V_LIGHT LIGHT_POS 0 PWL(0 0 100m 5)

* --- Sensors (LDRs) ---
* Modeled as voltage-dependent resistors controlled by LIGHT_POS.
* R1 (Left LDR): Resistance increases as Light moves Right (LIGHT_POS increases).
* Range: 1k (Bright) to 50k (Dark).
R1 VCC VA R = '1k + 49k * (V(LIGHT_POS)/5)'
* ... (truncated in public view) ...

Copia este contenido en un archivo .cir y ejecútalo con ngspice.

🔒 Parte del contenido de esta sección es premium. Con el pase de 7 días o la suscripción mensual tendrás acceso al contenido completo (materiales, conexionado, compilación detallada, validación paso a paso, troubleshooting, mejoras/variantes y checklist) y podrás descargar el pack PDF listo para imprimir.

* Single-axis Solar Tracker Simulation
* Based on Practical Electronics Breadboard Case

* --- Power Supply ---
* V1: 9 V DC power supply
V1 VCC 0 DC 9V
* C1: 100 nF capacitor (Decoupling)
C1 VCC 0 100nF

* --- Dynamic Light Stimulus (Virtual Control) ---
* This source simulates the position of the sun moving from Left to Right.
* 0V = Light on Left Sensor, 5V = Light on Right Sensor.
* Sweeps linearly from 0V to 5V over 100ms.
V_LIGHT LIGHT_POS 0 PWL(0 0 100m 5)

* --- Sensors (LDRs) ---
* Modeled as voltage-dependent resistors controlled by LIGHT_POS.
* R1 (Left LDR): Resistance increases as Light moves Right (LIGHT_POS increases).
* Range: 1k (Bright) to 50k (Dark).
R1 VCC VA R = '1k + 49k * (V(LIGHT_POS)/5)'

* R2 (Right LDR): Resistance decreases as Light moves Right.
* Range: 50k (Dark) to 1k (Bright).
R2 VCC VB R = '1k + 49k * (1 - V(LIGHT_POS)/5)'

* --- Voltage Divider Bottom Legs ---
* R3: 10 kΩ resistor for R1
R3 VA 0 10k
* R4: 10 kΩ resistor for R2
R4 VB 0 10k

* --- Comparators (U1: LM358) ---
* U1 is a Dual OpAmp. We define a subcircuit matching the 8-pin DIP pinout.
* Pinout: 1=OutA, 2=In-A, 3=In+A, 4=GND, 5=In+B, 6=In-B, 7=OutB, 8=VCC
* Wiring Guide:
* Comparator A (CW): (+) VA, (-) VB -> Out SIG_CW
* Comparator B (CCW): (+) VB, (-) VA -> Out SIG_CCW
XU1 SIG_CW VB VA 0 VB VA SIG_CCW VCC LM358_DIP8

* --- Motor Driver (U2: L293D) ---
* U2 is an H-Bridge Driver. We define a subcircuit for the used pins.
* Pinout used: 1=EN1, 2=IN1, 3=OUT1, 4/5=GND, 6=OUT2, 7=IN2, 8=VCC2, 16=VCC1
* Wiring Guide:
* IN1=SIG_CW, IN2=SIG_CCW, OUT1=M_POS, OUT2=M_NEG, EN1=VCC
XU2 VCC SIG_CW M_POS 0 0 M_NEG SIG_CCW VCC VCC L293D_BRIDGE

* --- Actuator (M1: 9V DC Gear Motor) ---
* Modeled as a resistive/inductive load.
R_M1 M_POS M_INT 20
L_M1 M_INT M_NEG 5mH

* --- Subcircuit Definitions ---

.subckt LM358_DIP8 OUTA INMA INPA GND INPB INMB OUTB VCC
* Comparator A Behavior (Sigmoid for convergence)
* Output swings approx 0V to VCC-1.5V
B_OUTA OUTA 0 V = (V(VCC)-1.5) / (1 + exp(-50*(V(INPA)-V(INMA)))) + 0.05
* Comparator B Behavior
B_OUTB OUTB 0 V = (V(VCC)-1.5) / (1 + exp(-50*(V(INPB)-V(INMB)))) + 0.05
.ends

.subckt L293D_BRIDGE EN1 IN1 OUT1 GND1 GND2 OUT2 IN2 VCC2 VCC1
* Logic Threshold approx 2.0V.
* Output Voltage ~ VCC2 - 1.4V drop.
* Enable Logic
B_EN node_en 0 V = 1 / (1 + exp(-50*(V(EN1)-2.0)))
* Output 1 (M_POS)
B_O1 OUT1 0 V = V(node_en) * (1/(1+exp(-50*(V(IN1)-2.0)))) * (V(VCC2)-1.4)
* Output 2 (M_NEG)
B_O2 OUT2 0 V = V(node_en) * (1/(1+exp(-50*(V(IN2)-2.0)))) * (V(VCC2)-1.4)
.ends

* --- Simulation Directives ---
.op
* Transient analysis: 100ms duration to capture the full light sweep
.tran 100u 100m

* Print signals to verify logic:
* VA/VB: Sensor Voltages
* SIG_CW/CCW: Comparator Logic Outputs
* M_POS/M_NEG: Motor Drive Voltages
.print tran V(VA) V(VB) V(SIG_CW) V(SIG_CCW) V(M_POS) V(M_NEG) V(LIGHT_POS)

.end

Resultados de Simulación (Transitorio)

Resultados de Simulación (Transitorio)
Show raw data table (3024 rows)
Index   time            v(va)           v(vb)           v(sig_cw)
0	0.000000e+00	8.181818e+00	1.500000e+00	7.550000e+00
1	1.000000e-06	8.181454e+00	1.500012e+00	7.550000e+00
2	2.000000e-06	8.181089e+00	1.500025e+00	7.550000e+00
3	4.000000e-06	8.180361e+00	1.500049e+00	7.550000e+00
4	8.000000e-06	8.178903e+00	1.500098e+00	7.550000e+00
5	1.600000e-05	8.175990e+00	1.500196e+00	7.550000e+00
6	3.200000e-05	8.170168e+00	1.500392e+00	7.550000e+00
7	6.400000e-05	8.158542e+00	1.500784e+00	7.550000e+00
8	1.280000e-04	8.135365e+00	1.501569e+00	7.550000e+00
9	2.280000e-04	8.099394e+00	1.502797e+00	7.550000e+00
10	3.280000e-04	8.063833e+00	1.504028e+00	7.550000e+00
11	4.280000e-04	8.028586e+00	1.505260e+00	7.550000e+00
12	5.280000e-04	7.993645e+00	1.506495e+00	7.550000e+00
13	6.280000e-04	7.959008e+00	1.507732e+00	7.550000e+00
14	7.280000e-04	7.924669e+00	1.508970e+00	7.550000e+00
15	8.280000e-04	7.890626e+00	1.510211e+00	7.550000e+00
16	9.280000e-04	7.856873e+00	1.511454e+00	7.550000e+00
17	1.028000e-03	7.823409e+00	1.512699e+00	7.550000e+00
18	1.128000e-03	7.790228e+00	1.513945e+00	7.550000e+00
19	1.228000e-03	7.757327e+00	1.515194e+00	7.550000e+00
20	1.328000e-03	7.724703e+00	1.516445e+00	7.550000e+00
21	1.428000e-03	7.692352e+00	1.517698e+00	7.550000e+00
22	1.528000e-03	7.660271e+00	1.518953e+00	7.550000e+00
23	1.628000e-03	7.628457e+00	1.520211e+00	7.550000e+00
... (3000 more rows) ...

Errores comunes y cómo evitarlos

  1. LDR colocados demasiado cerca uno del otro:

    • Síntoma: El sistema es insensible y requiere ángulos de luz extremos para reaccionar.
    • Solución: Monta los LDR con una barrera física (un trozo de cartón o plástico) entre ellos para que se proyecte una sombra sobre un LDR cuando la luz no esté perfectamente centrada.
  2. Accionar el motor directamente desde los OpAmps:

    • Síntoma: El motor zumba pero no gira, o el OpAmp se sobrecalienta y falla.
    • Solución: Utiliza siempre una etapa controladora de corriente como el L293D o un puente en H de transistores. Los OpAmps no pueden suministrar la corriente requerida por los motores (típicamente >100 mA).
  3. Falta de banda muerta (Vibración/Jittering):

    • Síntoma: El motor vibra constantemente de un lado a otro cuando la luz está centrada.
    • Solución: Esta topología básica es un controlador «bang-bang» (todo o nada). En diseños avanzados, añade resistencias de histéresis a los OpAmps para crear una pequeña ventana de voltaje donde el motor permanezca apagado.

Solución de problemas

  • El motor gira en la dirección incorrecta:
    • Causa: La polaridad del motor está invertida en relación con la ubicación de los sensores.
    • Arreglo: Intercambia las conexiones de M1 (M_POS y M_NEG) O intercambia físicamente las posiciones de R1 y R2.
  • El motor funciona continuamente incluso con luz igual:
    • Causa: Gran diferencia de tolerancia entre los dos LDR o las resistencias fijas (R3/R4).
    • Arreglo: Reemplaza una resistencia fija (por ejemplo, R3) con un potenciómetro de ajuste de 10k para calibrar el equilibrio del puente manualmente.
  • No pasa nada cuando cambia la luz:
    • Causa: El pin Enable del L293D no está conectado a nivel alto.
    • Arreglo: Asegúrate de que el pin Enable del controlador esté conectado a VCC.

Posibles mejoras y extensiones

  1. Control de sensibilidad: Reemplaza las resistencias fijas R3 y R4 con un solo potenciómetro multivuelta. Conecta el cursor a tierra y los extremos a los LDR para permitir un ajuste fino del punto central.
  2. Integración de energía solar: Reemplaza V1 con un pequeño panel solar y un circuito de carga para hacer que el seguidor sea autosostenible.

Más Casos Prácticos en Prometeo.blog

Encuentra este producto y/o libros sobre este tema en Amazon

Ir a Amazon

Como afiliado de Amazon, gano con las compras que cumplan los requisitos. Si compras a través de este enlace, ayudas a mantener este proyecto.

Quiz rápido

Pregunta 1: ¿Cuál es el objetivo principal del circuito descrito en el artículo?




Pregunta 2: ¿Qué componente se utiliza como sensor de luz en este proyecto?




Pregunta 3: ¿Qué sucede con el motor cuando la fuente de luz está equilibrada entre ambos sensores?




Pregunta 4: ¿Cuál es una aplicación en el mundo real mencionada para este tipo de circuito?




Pregunta 5: ¿Qué tipo de bucle de control se construye en este caso práctico?




Pregunta 6: ¿Qué ocurre si el sensor LDR1 está sombreado según el resultado esperado?




Pregunta 7: ¿Qué comportamiento robótico permite este circuito según el texto?




Pregunta 8: ¿Qué componentes electrónicos clave se mencionan para procesar la señal de los sensores?




Pregunta 9: ¿Cómo se aplica este circuito en la domótica?




Pregunta 10: ¿Cuál es la función principal de comparar los niveles de luz de los dos sensores?




Carlos Núñez Zorrilla
Carlos Núñez Zorrilla
Electronics & Computer Engineer

Ingeniero Superior en Electrónica de Telecomunicaciones e Ingeniero en Informática (titulaciones oficiales en España).

Sígueme:
Scroll to Top