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 !!
Este comentario ha sido eliminado por el autor.
ResponderBorrarcomo se llama el programa para pasarlo al arduino?
ResponderBorrarArduino.cc
BorrarExcelente !! Felicitaciones
ResponderBorrarMuchas Felicidades este es un gran proyecto, sera posible utilizarlo para
ResponderBorrarmover panel solar de grandes dimensiones claro esta adaptandole servos de Potencia. Gracias.
Muchas Felicidades este es un gran proyecto, sera posible utilizarlo para
ResponderBorrarmover panel solar de grandes dimensiones claro esta adaptandole servos de Potencia. Gracias.
Lo probare inmediatamente.. Gracias.
ResponderBorrarYa estoy terminando este proyecto, con una estructura diferente, me sirvió de mucho, GRACIAS!
ResponderBorrarCon este proyecto gane en mi colegio la feria de la ciencia, fue el mejor!!! gracias!!!
ResponderBorrartengo problemas para cargar el programa en arduino , si pudieras explicar como realizar este proceso te lo agradecería muchisimo
ResponderBorrarExcelente lo use para adaptarlo a un seguidor con otra estructura q yo mismo construí aquí pego el link
ResponderBorrarhttps://drive.google.com/file/d/0B065Z2nzMl2NeFk4cTJWdGhDTmM/view
Se necesita acceso para entrar al link
BorrarMaravilhoso!! Fiz um igual, os servos se mexem bastante, mas não segue a luz. O que poderia ser?
ResponderBorrarGracias 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í.
ResponderBorrarSaludos
Me aparece un error en el programa alguien me puede ayudar? Porfavor
ResponderBorrarque te sale
BorrarDisculpen el código no compila, necesito ayuda por favor!!!!!!!!!!
ResponderBorrarMuy buen proyecto tengo unas dudas
ResponderBorrarprimero 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
Que tal Saludos me podrías proporcionar los datos del servomotor te lo agradeceria
ResponderBorrarPara que sirven los potenciadoreszafectan algo en el codigo ?
ResponderBorrarhola 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
ResponderBorrarme gustaria que me apollaran en eso porfavor
Yo hice uno igual a este con el circuito del diagrama pero cuando lo enciendo solo da vueltas y vueltas que puede ser
ResponderBorrarMe pasa lo mismo,aun no se porque lo hace
BorrarGracias!
ResponderBorrarMejora la vida de muchos
What is a jackpot slot? - TrickToAction
ResponderBorrarAn 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