quinta-feira, 19 de maio de 2016

Teste Akira com calibração para mínimo

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