Seguidor solar de 2 ejes servo Arduino (5 / 6 paso)

Paso 5: El Arduino código

#define TILTL 2
#define labrado 3
#define fondo 2
#define TOPLEFT 0
#define color 1
#include < Servo.h >
#include "math.h"

Servo hservo;
Servo vservo;
int tlsense;
int trsense;
int bsense;
int tavg;
int diff;
int spd;
int divisor;
sensibilidad del int;
int tiltl;
int labrado;

void setup () {}
vservo.Attach(9); se fija el servo en el pin 9 al objeto servo
hservo.Attach(10); se fija el servo en el pin 10 al objeto servo
divisor = 10; controla la velocidad del servo. menor número = mayor velocidad de
sensibilidad = 5; Esto controla la sensibilidad del rastreador. menor número = mayor sensibilidad. Si el tracker es variación constantemente hacia adelante y hacia atrás, aumentar el número
Serial.Begin(19200); abrir com serial
Serial.Print ("SolarTracker listo!");
pinMode (parte inferior, entrada); configurar las entradas de
pinMode (TOPLEFT, entrada);
pinMode (color, entrada);
pinMode (TILTL, entrada);
pinMode (labrado, entrada);
}

void loop () {}

tiltl = digitalRead(TILTL); leer el sensor de inclinación
labrado = digitalRead(TILTH);
tlsense = analogRead(TOPLEFT); leer los sensores de luz
trsense = analogRead(TOPRIGHT);
bsense = analogRead(BOTTOM);
bsense = bsense * 1.05; Tuve que ajustar el valor de este sensor para que sea más precisa. puede que tenga que hacer lo mismo pero empezar por dejarlo solo
Tavg = (tlsense + trsense) / 2; obtener un valor medio de los sensores de la tapa 2
diff = abs (tavg - bsense); Esta juzga cuánto debe girar el tracker
SPD = diff/divisor; y ajusta la velocidad de la reacción en consecuencia
SPD = max (spd, 1); establece la velocidad mínima en 1
Serial.Print ("\nTOP:"); Serial.Print (tavg, DEC); imprimir los valores de los sensores a la serie com
Serial.Print("\tBOTTOM:"); Serial.Print (bsense, DEC);
Serial.Print("\tLEFT:"); Serial.Print (tlsense, DEC);
Serial.Print("\tRIGHT:"); Serial.Print (trsense, DEC);

Si ((tavg < bsense) & & (diff > sensibilidad) & & (tiltl == LOW) & & (labrado == LOW)) {/ / si el valor medio de los sensores superior es más pequeño (más luz) que el sensor de fondo y sensor de la inclinación está en el rango correcto
vservo.Write (90 - spd); Enviar comando servo para girar hacia arriba y agregar velocidad
Serial.Print ("\tState:"); Serial.Print("up!");
} else if ((tavg < bsense) & & (diff > sensibilidad) & & (tiltl == HIGH) & & (labrado == LOW)) {/ / si el valor medio de los sensores superior es más pequeño (más luz) que el sensor de fondo y sensor de la inclinación está en el rango correcto
vservo.Write (90 - spd); Enviar comando servo para girar hacia arriba y agregar velocidad
Serial.Print ("\tState:"); Serial.Print("up!");
} else if ((tavg > bsense) & & (diff > sensibilidad) & & (tiltl == HIGH) & & (labrado == LOW)) {/ / si el valor del sensor de la parte inferior es más pequeño (más luz) que el valor promedio de los principales sensores y el sensor de inclinación está en el rango correcto
vservo.Write (90 + spd); Enviar comando servo para girar hacia abajo además de agregar velocidad
Serial.Print ("\tState:"); Serial.Print("Down!");
} else if ((tavg > bsense) & & (diff > sensibilidad) & & (tiltl == LOW) & & (labrado == HIGH)) {/ / si el valor del sensor de la parte inferior es más pequeño (más luz) que el valor promedio de los principales sensores y el sensor de inclinación está en el rango correcto
vservo.Write (90 + spd); Enviar comando servo para girar hacia abajo además de agregar velocidad
Serial.Print ("\tState:"); Serial.Print("Down!");
} else {/ / para todos los otros casos
vservo.Write(90); parar el motor del eje y
Serial.Print ("\tState:"); Serial.Print("STOP!");
}

tlsense = analogRead(TOPLEFT); volver a leer los sensores de la tapa 2 porque probablemente han cambiado
trsense = analogRead(TOPRIGHT);
trsense = trsense * 1.03; otra vez tuve que ajustar el valor de un sensor para hacer el seguimiento más preciso
diff = abs (tlsense - trsense); restablecer la variable diff para los nuevos valores
SPD = diff/divisor; y generar en consecuencia una velocidad de
SPD = max (spd, 1); establece la velocidad mínima en 1

Si ((tlsense < trsense) & & (diff > sensibilidad)) {/ / si el valor de sensor izquierdo superior es más pequeño (más luz) que el sensor superior derecha
hservo.Write (90 + spd); Enviar comando servo para girar a la izquierda
Serial.Print ("\tState:"); Serial.Print("left!");
} else if ((tlsense > trsense) & & (diff > sensibilidad)) {/ / si el valor de sensor izquierdo superior es más grande (menos luz) que el sensor superior derecha
hservo.Write (90 - spd); Enviar comando servo para girar a la derecha
Serial.Print ("\tState:"); Serial.Print("Right!");
} else {/ / para todos los otros casos
hservo.Write(90); parar el motor del eje x
Serial.Print ("\tState:"); Serial.Print("STOP!");
}

Delay(10); retardo de 10 ms
}

Arduino sondea los sensores y reacciona en consecuencia asegurándose de que no se incline demasiado hacia abajo o hacia arriba. La diferencia de luz determina qué tan rápido debe reaccionar el tracker.

Artículos Relacionados

Servo basado seguidor solar a doble eje

Servo basado seguidor solar a doble eje

servo basado seguidor solar de doble ejeCódigo: http://www.edaboard.com/thread285813.html#post1221635
Seguidor Solar de doble eje simple

Seguidor Solar de doble eje simple

En español.En BrownDogGadgets.com amamos mediante energía solar con nuestros proyectos de electrónica. En su mayor parte es muy fácil de trabajar en pequeñas, de baja tensión, proyectos.Una pregunta frecuente que obtenemos de los estudiantes y los af
Seguidor solar de doble eje con monitor de energía en línea

Seguidor solar de doble eje con monitor de energía en línea

Este proyecto fue uno de mis proyectos que hice en mis estudios de intercambio en Finlandia.Para este proyecto trabajé junto con Fatbardh.Esta es una versión mucho más grande y más avanzada de uno de mis primeros proyectos siempre.También un seguidor
Arduino y Lego seguidor Solar (doble eje)

Arduino y Lego seguidor Solar (doble eje)

Hice un seguidor solar con lego y arduino.Es un proyecto muy bonito y sencillo si quieres aprender arduino y la electrónica. No requiere soldadura.Su propósito es sólo educativo porque los motores no son lo suficientemente fuertes como para soportar
Seguidor Solar de Arduino DIY

Seguidor Solar de Arduino DIY

Hola NerdsSemana anterior vi una increíble instrcutable de seguidor solar agradable y simple de Geo Bruce.Así que, he pensado hacer mi propio y aquí está la salida.Se inspira en obra de Geo Bruce.Paso 1: Elementos necesarios Algunos temas será necesa
Seguidor solar con arduino de materiales de cada día

Seguidor solar con arduino de materiales de cada día

Esta construcción de modelo de seguidor solar es tan simple que no hay necesidad de un laboratorio completamente equipado para crearla. Realmente lo hice en mi cocina! Por otra parte la idea principal y el software son por lo que me atrevería a utili
Las Naciones Unidas seguidor-solar Solar Simple que Tiene Ejes Duales

Las Naciones Unidas seguidor-solar Solar Simple que Tiene Ejes Duales

En inglés.Nosotros una energía de encantamos usar la de BrownDogGadgets.com solar con nuestros proyectos electrónicos. En general, es muy fácil usar la energía solar con proyectos pequeños traductor el bajo voltaje.Una pregunta frecuente de estudiant
Motor paso a paso + Arduino + seguidor Solar (EV)

Motor paso a paso + Arduino + seguidor Solar (EV)

Este instructable es la traducción de otro que fue escrita originalmente en español, así que pido perdón si tengo muchos errores gramaticales, si así fuera me encantaría me sugieren para editarlo. Sólo lo hago porque me gusta compartir mis proyectos.
Seguidor-solar Solar con motores a paso + Arduino

Seguidor-solar Solar con motores a paso + Arduino

Con el enorme gusto de algunas personas les haya agradado mi primer instructivo: Deshidratador solar + Arduino les bendecido un nuevo proyecto realizar, se trata de las Naciones Unidas seguidor-solar solar, ningún pecado antes de mencionar mi inspira
PIC de un eje controlado seguidor Solar DIY Kit

PIC de un eje controlado seguidor Solar DIY Kit

Hola todosNo voy a tanta profundidad con este instructable debido a mis limitaciones de tiempo actual.  Dicho plan plenamente en la actualización de este instructable as time avanza con nuevos algoritmos y programas para la optimización.Intro:Estaba
Arduino seguidor Solar utilizando LEDs!

Arduino seguidor Solar utilizando LEDs!

Así que me encontré recientemente con un poco de información me había olvidado. LEDs de generan un poco de tensión bajo la iluminación de una gama de longitudes de onda. Tiempo para explotar esta peculiaridad para hacer un seguidor solar de DIY para
Seguidor Solar de DIY

Seguidor Solar de DIY

IntroducciónNuestro objetivo es introducir a los jóvenes alumnos ingeniería y enseñarles sobre energía solar; por haber ellos construyen un Helios como parte de su currículo. Hay un esfuerzo de ingeniería para la generación de energía de empuje lejos
Seguidor Solar Mini DIY

Seguidor Solar Mini DIY

HolaMi primer instructable es mi diseño llamado DIY Mini perseguidor Solar un panel solar que sigue el sol! Usé esto para mi proyecto de Feria de Ciencias grado de octavo y mis compañeros de clase pensaron que era increíble! Los usos de la tracker y
Seguidor Solar portable (No requerida microcontrolador!) ¿

Seguidor Solar portable (No requerida microcontrolador!) ¿

Siempre quiso mantener su panel solar a pleno sol todo el dia sin tener que moverlo constantemente?  Un seguidor solar puede ser la respuesta.  Este tracker tiene la ventaja de ser portable - ajustar si la mueves, la voluntad de tracker automáticamen