lunes, 7 de septiembre de 2015

Seguidor Solar (Brazo robotico solar)


En esta ocacion construiremos un seguidor solar con arduino, lo podemos aplicar en distintos proyectos especialmente a los que nos gusta la robotica y la energia reciclable como es la solar, es muy facil de hacer y muy interesante si queremos aprender un poco mas en el mundo de la electronica y el open source.





Lo que necesitamos:

- Un Arduino
- Un shield (es opcional)
- 4 Resistencias LDR (fotoceldas)
- 2 Servo motores
- 4 Resistencias de 10k Ohm
- Cables

El siguiente video muestra paso a paso la elavoracion y como vamos a ensamblar nuestro seguidor solar.


Diagrama de conexiones (los Potenciometros y el shield son opcionales)



Copiamos el codigo para Arduino:

#include <Servo.h> // libreria para los servo motores 

// 180 horizontal MAXIMO
Servo horizontal; // declaramos el valor para el servo horizontal
int servoh = 180;        

int servohLimitHigh = 180; //limite en posicion superior
int servohLimitLow = 65; //limite para posicion inferior


Servo vertical;   // vertical servo 
int servov = 45;    
int servovLimitHigh = 80;
int servovLimitLow = 15;



int ldrlt = 0; // conexion a las resistencias LDR
int ldrrt = 1; 
int ldrld = 2; 
int ldrrd = 3; 

void setup()
{
  Serial.begin(9600);
  horizontal.attach(9); //servo horizontal pin digital 9
  vertical.attach(10); // servo vertical pin digital 10
  horizontal.write(180);
  vertical.write(45);
  delay(3000);
}

void loop() 
{
  int lt = analogRead(ldrlt); // top left (superior izquierdo)
  int rt = analogRead(ldrrt); // top right (superior derecho)
  int ld = analogRead(ldrld); // down left (inferior izquierdo)
  int rd = analogRead(ldrrd); // down rigt (inferior derecho)
  
  // int dtime = analogRead(4)/20; // Opcional si utilizamos potenciometros para la velocidad 
  // int tol = analogRead(5)/4;
  int dtime = 10;
  int tol = 50;
  
  int avt = (lt + rt) / 2; // valor superior maximo
  int avd = (ld + rd) / 2; // valor inferior maximo
  int avl = (lt + ld) / 2; // valor izquierdo maximo
  int avr = (rt + rd) / 2; // valor derecho maximo

  int dvert = avt - avd; // diferencia entre superior e inferior
  int dhoriz = avl - avr;// diferencia entre izquierdo y derecho
  
  
  Serial.print(avt);   // Imnprimir valores  de posicion en monitor serial
  Serial.print(" ");
  Serial.print(avd);
  Serial.print(" ");
  Serial.print(avl);
  Serial.print(" ");
  Serial.print(avr);
  Serial.print("   ");
  Serial.print(dtime);
  Serial.print("   ");
  Serial.print(tol);
  Serial.println(" ");
  
    
  if (-1*tol > dvert || dvert > tol) // revisar la diferencia para cambiar al angulo vertical
  {
  if (avt > avd)
  {
    servov = ++servov;
     if (servov > servovLimitHigh) 
     { 
      servov = servovLimitHigh;
     }
  }
  else if (avt < avd)
  {
    servov= --servov;
    if (servov < servovLimitLow)
  {
    servov = servovLimitLow;
  }
  }
  vertical.write(servov);
  }
  
  if (-1*tol > dhoriz || dhoriz > tol) // revisar la diferencia para cambiar al angulo horizontal
  {
  if (avl > avr)
  {
    servoh = --servoh;
    if (servoh < servohLimitLow)
    {
    servoh = servohLimitLow;
    }
  }
  else if (avl < avr)
  {
    servoh = ++servoh;
     if (servoh > servohLimitHigh)
     {
     servoh = servohLimitHigh;
     }
  }
  else if (avl = avr)
  {
    
  }
  horizontal.write(servoh);
  }
   delay(dtime);

}

 Esperamos que este proyecto sea util y gracias siempre por visitar nuestro blog.

Hasta la proxima !!




SHARE THIS

25 comentarios:

  1. como se llama el programa para pasarlo al arduino?

    ResponderBorrar
  2. Muchas Felicidades este es un gran proyecto, sera posible utilizarlo para
    mover panel solar de grandes dimensiones claro esta adaptandole servos de Potencia. Gracias.

    ResponderBorrar
  3. Muchas Felicidades este es un gran proyecto, sera posible utilizarlo para
    mover panel solar de grandes dimensiones claro esta adaptandole servos de Potencia. Gracias.

    ResponderBorrar
  4. Lo probare inmediatamente.. Gracias.

    ResponderBorrar
  5. Ya estoy terminando este proyecto, con una estructura diferente, me sirvió de mucho, GRACIAS!

    ResponderBorrar
  6. Con este proyecto gane en mi colegio la feria de la ciencia, fue el mejor!!! gracias!!!

    ResponderBorrar
  7. tengo problemas para cargar el programa en arduino , si pudieras explicar como realizar este proceso te lo agradecería muchisimo

    ResponderBorrar
  8. Excelente lo use para adaptarlo a un seguidor con otra estructura q yo mismo construí aquí pego el link
    https://drive.google.com/file/d/0B065Z2nzMl2NeFk4cTJWdGhDTmM/view

    ResponderBorrar
  9. Maravilhoso!! Fiz um igual, os servos se mexem bastante, mas não segue a luz. O que poderia ser?

    ResponderBorrar
  10. Gracias trabajo de hacer el programa y gracias por ofrecerlo a las personas que como yo, hemos llegado tarde a estas tecnologías y nos cuesta mucho desarrollar un diseño así.
    Saludos

    ResponderBorrar
  11. Me aparece un error en el programa alguien me puede ayudar? Porfavor

    ResponderBorrar
  12. Disculpen el código no compila, necesito ayuda por favor!!!!!!!!!!

    ResponderBorrar
  13. Muy buen proyecto tengo unas dudas
    primero es como se hago para el momento de soldar, digo las resistencias en el circuito estan a tierra y pues eso me preocupa un poco

    ResponderBorrar
  14. Que tal Saludos me podrías proporcionar los datos del servomotor te lo agradeceria

    ResponderBorrar
  15. Para que sirven los potenciadoreszafectan algo en el codigo ?

    ResponderBorrar
  16. hola tengo una super pregunta lo que pasa es que al pasar el progama a arduino lo pasa bien y todo pero no jalan los servos y las fotoceldas no estan jalando y todo lo tengo en modelo por el momento
    me gustaria que me apollaran en eso porfavor

    ResponderBorrar
  17. Yo hice uno igual a este con el circuito del diagrama pero cuando lo enciendo solo da vueltas y vueltas que puede ser

    ResponderBorrar
  18. What is a jackpot slot? - TrickToAction
    An example of a jackpot 우회 사이트 slot is a video 토 블리 poker game that requires a win in order to create a winning 동인지 사이트 jackpot. This 실시간 바카라 사이트 casino slot will not 먹튀 검증 사이트 offer you the opportunity

    ResponderBorrar