Hola amigos del foro, os comento estoy liado con un pequeño proyecto.Es un robot esquiva objetos ,estoy con la parte cuando encuentra un objeto y tiene que girar para decidir donde ir .De primeras lo quería hacer sin modulo extra controlando el giro por tiempo, activado los motores así el robot girará de 0 a 90 grados y de ay a -90 que sera el lado opuesto.Pero no da buenos resultados ya que cuando queda poca batería el giro no es completo.Tengo un adlx y quiero usarlo como medidor de angulo. e encontrado un codigo en internet y lo e probado pero los valores no creo q sean los correctos.Os lo dejo
#define xPin A2
#define yPin A1
#define zPin A0
#define st 2
int minVal = 0;
int maxVal = 1028;
double x,y,z;
void setup() {
pinMode(st,OUTPUT);
digitalWrite(st,LOW);
Serial.begin(9600);
}
void loop() {
int xRoad = analogRead(xPin);
int yRoad = analogRead(yPin);
int zRoad = analogRead(zPin);
int xAng = map(xRoad,minVal,maxVal,-100,100);
int yAng = map(yRoad,minVal,maxVal,-100,100);
int zAng = map(zRoad,minVal,maxVal,-100,100);
y = RAD_TO_DEG*(atan2(-yAng,-zAng)+PI);
x = RAD_TO_DEG*(atan2(-xAng,-zAng)+PI);
z = RAD_TO_DEG*(atan2(-yAng,-xAng)+PI);
Serial.print("x: ");
Serial.print(x);
Serial.print(" y: ");
Serial.print(y);
Serial.print(" z: ");
Serial.println(z);
}
Me gustaria que me ayudarais a crear un programa para obtener el ángulo y que el robot funcionara asta llegar a su sitio.
Gracias y un saludo.