ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Seguidor de luz


Enviado por   •  12 de Abril de 2020  •  Apuntes  •  912 Palabras (4 Páginas)  •  124 Visitas

Página 1 de 4

// Se incluye la biblioteca predeterminada que contiene los comandos de los servos:

#include

// Se introducen las variables que caracterizarán a los servos:

Servo servoder;

Servo servoizq;

// Se introduce las variables, para la velocidad de cada servo:

int velder = 0;

int velizq = 0;

// Se introducen las fotoresistencias fotoA, B, C, D y se asignan a sus respectivos puertos análogos:

int fotoA = A0;

int fotoB = A1;

int fotoC = A2;

int fotoD = A3;

// Se introducen las variables X y Y que registrarán la posición de la luz en ambos ejes del plano cartesiano:

int X = 0;

int Y = 0;

int umb = 4; // Se introduce el umbral de luz necesaria para que el robot pueda moverse

int del = 300;

void setup() {

 

  // Se asignan los servos a los puertos PWM 10 y 11:

  servoder.attach(10);

  servoizq.attach(11);

 

  Serial.begin(9600); // Se empieza la comunicación serial a 9600 bits por segundo.

}

void loop() {

  // Se reinicia el valor de X y Y cada vez que termina una ejecución

  X = 0;

  Y = 0;

 

  // Se asignan las lecturas de voltage de los puertos análogos a las variables A, B, C y D:

  int A = analogRead(fotoA);

  int B = analogRead(fotoB);

  int C = analogRead(fotoC);

  int D = analogRead(fotoD);

  // Las fotoresistencias tienen sensibilidades diferentes, por eso en un intento de igualar las lecturas en condiciones de iluminación simililares, se multiplica cada valor por un escalar, que aumenta mientras menor sensibilidad tenga cada fotoresistencia:

  // Se determina la posición de la fuente de luz, dependiendo de las lecturas que pasen el umbral. A cada eje se le suma -1 o 1, -1 si la fuente de luz se encuentra en el lado negativo del eje o 1 si se encuentra en el positivo.

  if (A >= umb){

    X = X - 1;

    Y = Y + 1;

    // Si A pasa el umbral, X=-1 y Y=1

  }

  else if (B >= umb){

    X = X + 1;

    Y = Y + 1;

    // Si B pasa el umbral, X=1 y Y=1

  }

  else if (C >= umb){

    X = X - 1;

    Y = Y - 1;

    // Si C pasa el umbral, X=-1 y Y=-1

  }

  else if (A >= umb){

    X = X + 1;

    Y = Y - 1;

    // Si D pasa el umbral, X=1 y Y=-1

  }

  // Al final X y Y quedan con un valor entre -2 y 2. 0 si la fuente de luz no se encuentra en dicho eje, -1 o 1 si la fuente de luz es compartida por ambos ejes y -2 o 2 si se encuentra exclusivamente en dicho eje.

...

Descargar como (para miembros actualizados)  txt (4.1 Kb)   pdf (31.4 Kb)   docx (9.7 Kb)  
Leer 3 páginas más »
Disponible sólo en Clubensayos.com