int preto_d_min = 1023;
int preto_e_min = 1023;
int preto_d = 0;
int preto_e = 0;
int x = 0;
int botao;
int t = 45; //regulagem que varia de 0 a 90 - controla o quanto vira
int margem = 0; //regulagem que varia de 0 a 1023
#include <Servo.h>
Servo motor_d; // create servo object to control a servo
Servo motor_e; // twelve servo objects can be created on most boards
// controle dos motores
int frente_d = 12;
int frente_e = 118;
int re_d = 118;
int re_e = 12;
int pare = 90;
void setup() {
// put your setup code here, to run once:
pinMode (A4, INPUT);
pinMode (A5, INPUT);
pinMode (A0, INPUT);
pinMode (13, OUTPUT);
//controle de motores
motor_d.attach(4); // attaches the servo on pin 9 to the servo object
motor_e.attach(5);
motor_d.write (90);
motor_e.write (90);
Serial.begin (9600);
botao = analogRead (A0);
Serial.println (botao);
while(botao>200){
digitalWrite (13, HIGH);
delay (300);
digitalWrite (13, LOW);
delay (300);
botao = analogRead (A0);
}
for (x=10; x>0; x--){
digitalWrite (13, HIGH);
delay (100);
preto_d = analogRead (A1);
preto_e = analogRead (A2);
if (preto_d<preto_d_min){
preto_d_min=preto_d;
}
if (preto_e<preto_e_min){
preto_e_min=preto_e;
}
Serial.println (x);
}
digitalWrite (13, LOW);
Serial.print ("direito= ");
Serial.print (preto_d_min);
Serial.print ("\t");
Serial.print (" esquerdo= ");
Serial.println (preto_e_min);
for (int y=0; y<10; y++){
digitalWrite (13, HIGH);
delay (100);
digitalWrite (13, LOW);
delay (100);
}
delay (3000);
}
void loop() {
// put your main code here, to run repeatedly:
int sensor_d = analogRead (A1);
int sensor_e = analogRead (A2);
Serial.print ("direito= ");
Serial.print (sensor_d);
Serial.print ("\t");
Serial.print (" esquerdo= ");
Serial.println (sensor_e);
//siga em frente
if(sensor_d<preto_d_min-margem&&sensor_e<preto_e_min-margem){
motor_d.write(frente_d);
motor_e.write(frente_e);
}
//vire a direita
if(sensor_d>preto_d_min-margem&&sensor_e<preto_e_min-margem){
motor_d.write(re_d);
motor_e.write(frente_e);
delay(t);
}
//vire a esquerda
if(sensor_d<preto_d_min-margem&&sensor_e>preto_e_min-margem){
motor_d.write(frente_d);
motor_e.write(re_e);
delay(t);
}
//cruzamento
if(sensor_d>preto_d_min-margem&&sensor_e>preto_e_min-margem){
motor_d.write(pare);
motor_e.write(pare);
}
}// fim do loop
Nenhum comentário:
Postar um comentário