Seguidor Solar com Arduino
Este seguidor solar usa o ARDUINO UNO em conjunto com um servomotor(M), 2 resistências e 2 LDR para seguir uma fonte de luz. O servo motor é controlado pela LIB incluída na "servo library". No código é usado "pos" para definir a posição inicial do servo para 90. As resistências LDR estão ligadas aos pinos A0 e A1 no ARDUINO. É definida alguma tolerância porque, de outro modo, estaria a fazer auto ajuste de forma permanente. A tolerância pode ser ajustada alterando a variável tolerancia

Sketch Code
#include <Servo.h>
Servo myservo;
int pos = 90; // Posição inicial
int sens1 = A0; // LRD1 pino
int sens2 = A1; // LDR2 pino
int tolerancia = 3; // Valor da variável da tolerância, pode ser aumentada ou diminuída
void setup()
{
myservo.attach(9); // Liga o servo ao pino 9 do arduino
pinMode(sens1, INPUT);
pinMode(sens2, INPUT);
myservo.write(pos);
delay(3000); // 3 segundos de espera evita o ajuste permanente do painel
}
void loop()
{
int val1 = analogRead(sens1); // faz a leitura do sensor 1
int val2 = analogRead(sens2); // faz a leitura do sensor 2
if((abs(val1 - val2) <= tolerancia) || (abs(val2 - val1) <= tolerancia)) {
//nao faz nada se os valores da leitura estão dentro do limite de tolerancia
} else {
if(val1 > val2) { pos = --pos; }
if(val1 < val2) { pos = ++pos;}
}
if(pos > 180) { pos = 180; } // reset para 180 se for acima
if(pos < 0) { pos = 0; } // reset para 0 se descer abaixo
myservo.write(pos); // escreve a posição do servo motor
delay(50);
}