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}