Seguidor solar
Servo horizontal; / / Servo horizontal int servoh = 90; / / Stand servo horizontal
Servo vertical; / / Servo vertical int servov = 90; / / Stand servo vertical
/ / Conexões de pino LDR
/ / Name = analogPin; int ldrlt = 0; / / LDR superior esquerdo int ldrrt = 1; / / LDR superior direito int ldrld = 2; / / LDR inferior esquerdo int ldrrd = 3; / / LDR inferior direito
void setup ()
{
Serial.begin (9600);
/ / Conexões servo
/ / Name.attacht (pino); horizontal.attach (9); vertical.attach (10);
}
void loop ()
{
int lt = analogRead (ldrlt); / / Leitura do Valor Analógico do LDR Superior esquerdo int rt = analogRead (ldrrt); / / Leitura do Valor Analógico do LDR Superior direito int ld = analogRead (ldrld); / / Leitura do Valor Analógico do LDR Inferior esquerdo int rd = analogRead (ldrrd); / / Leitura do Valor Analógico do LDR Inferior direito int dtime = analogRead (4) / 20; / / Leitura dos potenciômetros nas entradas analógicas A4= Velocidade e A5= Tolerância) int tol = analogRead (5) / 4; int AVT = (lt + rt) / 2; / / Valor Médio Superior esquerdo e direito int avd = (ld + rd) / 2; / / Valor Médio Inferior esquerdo e direito int avl = (lt + ld) / 2; / / Valor Médio Esquerdo superior e inferior int avr = (rt + rd) / 2; / / Valor Médio Direito superior e inferior int dvert = avt - avd; / / Verifica a diferença superior e inferior int dhoriz = avl - avr ;/ / Verifica a diferença esquerda e direita if (-l*tol > dvert | | dvert > tol) / / Verifica se a diferença está na tolerância senão altera o ângulo vertical { if (avt > avd) { servov = + + servov; if (servov > 180) { servov = 180; } } else if (avt < avd) { servov = - servov; if (servov < 0) { servov = 0; } } vertical.write (servov); } / / Verifica se a diferença está na tolerância senão altera o ângulo