Você está na página 1de 3

Rastreador solar ARDUINO

1 Arduino (Uno / Mega)

3 fotorresistências 100 kOhms

3 resistores 10 k Ohms

fornecimento 9V

2 servo motores 9g

Etapa 2: Configuração

PASSO 1: Capturar a luz

Para capturar uma fonte de luz, usamos fotorresistências de 100


kOhms. As fotorresistências são resistências que variam de acordo
com a intensidade luminosa recebida. Quanto mais o fotorresistor
captura a luz, mais fraca sua resistência se tornará. Foram
utilizadas fotorresistências de 100kOhms. Vamos conectar o
fotorresistor em série com uma resistência de 10 kOhms para
podermos ter uma variação da tensão no ponto médio. Vamos
conectar esse ponto a uma entrada analógica do Arduino.

PASSO 2: Mova-se para seguir a fonte de luz Dois servomotores


permitem que você se mova em duas direções. Ao programar a
rotação em relação aos valores fotorresistentes, podemos seguir a
fonte de luz.

PASSO 3: Faça o rastreador

O módulo composto por três fotorresistências permite conhecer sua


posição em relação à luz. Quando a pessoa está perfeitamente
posicionada, as três fotorresistências estão no máximo e são mais
ou menos iguais.
Código

// No sentido horário int Steps2Take = 0; // Número de etapas de rotação solicitad


as em longo tempo motor = 0; // Tempo de rotação para uma volta int A4988_pas = 3;
// nema 17 define a velocidade int A4988_direction = 4; // nema 17 float de direçã
o definida photo_r_0, photo_r_1, photo_r_2; // valor do photoresist int servo1 = 6
; // comando do primeiro servo int servo2 = 7; int angle_rot = 90, angle_inc = 90;
// ângulo servo Servo motor_rotation; Inclinação do servomotor; // ***************
********** INICIALIZAÇÃO ********************** void setup () {pinMode (A4988_pas,
OUTPUT); pinMode (A4988_direction, OUTPUT); moteur_rotation.attach (servo1); // co
necta o obteto ao pino de controle motor_inclination.attach (servo2); // conecta o
objeto ao pino de controle Serial.begin (9600); atraso (2000); } // **************
************************* BOUCLE ******* ******************** void loop () {photo_
r_0 = analogRead (A0); Serial.print ("R_0:"); Serial.println (photo_r_0); // entra
da analógica de 8 bits = 1024 valores = 0 a 5V photo_r_1 = analogRead (A1); Serial
.print ("R_1:"); Serial.println (photo_r_1); photo_r_2 = analogRead (A2); Serial.p
rint ("R_2:"); Serial.println (photo_r_2); if (photo_r_0 photo_r_1 + 3) {// angle_
rot = angle_rot + 1; //moteur_rotation.write(angle_rot); digitalWrite (A4988_direc
tion, LOW); // Permite que o motor gire em uma direção por (int x = 0; x <1; x ++)
// 1 volta completa = 200 etapas {// Permite que você dê um passo em um determinad
o ritmo. Para acelerar, altere o atraso para 1, diminua a velocidade, altere para
30 digitalWrite (A4988_pas, HIGH); atraso (5); digitalWrite (A4988_pas, baixa); at
raso (5); }} // verde roxo marrom marrom, se (foto_r_2> foto_r_1 + 3) {// angle_in
c = angle_inc-1; // tilt_motor.write (angle_inc); small_stepper.setSpeed (40); sma
ll_stepper.step (10); } caso contrário, se (photo_r_2}

Você também pode gostar