Painel fotovoltaico inteligente
Bruno Andrade Muniz, Gabriel Souza de Freitas e Jandir Lucas Ferreira Serra

Introdução

Nos dias atuais é cada vez maior a busca pelo desenvolvimento sustentável, ou seja, achar uma forma de conciliar o crescimento humano aliado à manutenção do equilíbrio ambiental.
Seguindo esta linha de raciocínio, encontra-se os famosos painéis solares (fotovoltaicos), que se utilizam da energia proveniente da luminosidade do sol para gerar energia elétrica limpa. Esse meio de geração energética vem se tornando cada vez mais acessível e famoso pela sua qualidade e capacidade de economia e sustentabilidade.
Porém, muitas vezes a instalação desses painéis não consegue aproveitar bem a luminosidade disponível no espaço, afinal, eles ficam parados enquanto a fonte luminosa (sol) se desloca.
O projeto aqui apresentado tem a função de fornecer mobilidade a essa estrutura, de forma a movê-la conforme a luminosidade do sol. Tudo isso feito de forma automatizada, utilizando o Arduíno.

Montagem

Circuito

Programa Arduino

#include <Servo.h>

Servo servoB; // servo da base
int posB = 90; // posição inicial
int sens1 = A0; // LRD1
int sens2 = A1; // LDR2

Servo servoT; // servo do topo
int posT = 1; // posição inicial
int sens3 = A2; // LDR3
int sens4 = A3; // LDR4

int tolerancia = 50; // valor da variável da tolerância

void setup()
{
servoB.attach(8); // Liga o servo da base ao pino 8 do arduino
pinMode(sens1, INPUT);
pinMode(sens2, INPUT);
servoB.write(posB);
servoT.attach(9); // Liga o servo do topo ao pino 9 do arduino
pinMode(sens3, INPUT);
pinMode(sens4, INPUT);
servoT.write(posT);
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
int val3 = analogRead(sens3); // faz a leitura do sensor 3
int val4 = analogRead(sens4); // faz a leitura do sensor 4

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) { posB = --posB; }
if(val1 < val2) { posB = ++posB; }
}
if(posB > 180) { posB = 180; } // reset para 180 se for acima
if(posB < 0) { posB = 0; } // reset para 0 se descer abaixo

servoB.write(posB); // escreve a posição do servo motor

if((abs(val3 - val4) <= tolerancia) || (abs(val4 - val3) <= tolerancia)) {
//nao faz nada se os valores da leitura estão dentro do limite de tolerancia
} else {
if(val3 > val4) { posT = --posT; }
if(val3 < val4) { posT = ++posT; }
}
if(posT > 80) { posT = 80; } // reset para 180 se for acima
if(posT < 1) { posT = 1; } // reset para 1 se descer abaixo

servoT.write(posT); // escreve a posição do servo motor
delay(50);
}

Conclusão

A realização do projeto aqui exposto auxilia na aplicação prática de projetos e ideias que, aparentemente, podem parecer complexos e sofisticados, porém, com a utilização do Arduíno e sua plataforma de programação, a atuação desse tipo de prática se torna mais fácil, acessível e interessante.
Ademais, com esse trabalho foi possível ter ainda mais clareza acerca do funcionamento e das dimensões da geração energética a partir de painéis fotovoltaicos, já que aqui pode-se observar como a utilização da automação auxilia na elevação do rendimento nesse processo de geração.

Referências

https://www.portal-energia.com/construir-seguidor-solar-caseiro-servo-motor-controlado-arduino/
https://www.electronica-pt.com/arduino/seguidor-solar
https://www.filipeflop.com/blog/video-controle-de-servo-motor-sem-biblioteca/
https://www.arduino.cc/reference/pt/
https://www.youtube.com/watch?v=y6LChQF_qCs
https://www.youtube.com/watch?v=BRQDa-LKdLU
Acessos em 21 de outubro de 2018.


Download

Clique aqui para baixar o poster do artigo.
Administrado por: Epaminondas Lage