sexta-feira, 13 de maio de 2016

Seguidor de linha com calibração

#include <Servo.h>
int x = 0;
int preto_d_min=1023;
int preto_e_min=1023;
// torna o sensor mais sensível
int margem= 25;
int sensor_d;
int sensor_e;
// controle dos motores: aqui tem q colocar o resultado do teste de motores
Servo motor_d;
Servo motor_e;
int frente_d = 45;
int re_d= 135;
int frente_d = 135;
int re_d= 45;
int virar = 150;
int t= 15;

void led(){
digitalWrite (13, HIGH);
delay (500);
digitalWrite (13, LOW);
delay (500);
digitalWrite (13, HIGH);
delay (500);
digitalWrite (13, LOW);
delay (500);
digitalWrite (13, HIGH);
delay (500);
digitalWrite (13, LOW);
delay (500);
}
void loop( ){
pinMode (13, OUTPUT);
led();
// aqui se realiza a calibração
for (x=0; x<10; x++){
delay (50);
sensor_d = analogRead (A6);
sensor_e = analogRead (A5);
if (sensor_d<preto_d_min){
preto_d_min = sensor_d;
}
if (sensor_e<preto_e_min){
preto_e_min = sensor_e;
}
}// fim do for
led();
motor_d.attach (4);
motor_e.attach (5);
led();
}//fim do setup
void loop( ){
sensor_d = analogRead (A6);
sensor_e = analogRead (A5);
if (sensor_d<preto_d_min+margem&&sensor_e<preto_e_min){
motor_d.write (frente_d);
motor_e.write (frente_e);
delay (t);
}
if (sensor_d>preto_d_min+margem&&sensor_e<preto_e_min){
motor_d.write (re_d);
motor_e.write (frente_e);
delay (virar);
}
if (sensor_d<preto_d_min+margem&&sensor_e>preto_e_min){
motor_d.write (frente_d);
motor_e.write (re_e);
delay (virar);
}
if (sensor_d>preto_d_min+margem&&sensor_e>preto_e_min){
motor_d.write (90);
motor_e.write (90);
delay (100);
}
}//fim do loop


Nenhum comentário:

Postar um comentário