Problema programación barrido de servo con lectura

Saludos, soy un principiante en esto de Arduino y tengo bastantes dudas y problemas.
Un problema que me ha surgido es este:
Estoy programando un robot que detecte obstáculos, con un sensor IR sharp pegado a un servo. La idea es que el servo gire dando barridos y el sensor lea la distancia.
He conseguido hacer que el sensor lea y que el servo gire( tampoco hay que ser un manitas jeje) pero al ensamblarlo, juntar los dos programas no consigo lo que quiero

El único resultado que he conseguido es que dé un barrido hasta los 140º del extremo (lo he limitado a 140º) lea la distancia, dé el barrido para el lado contrario y lea la distancia.

Yo lo que quiero es que a medida que va girando el servo, dando el barrido, el sensor vaya tomando lectura. Ya sea grado a grado, cada 3 grados, no importa.

Les dejo los dos programas que quiero unir. De momento solo quiero conseguir solucionar el problema que planteo

el del sensor

#include <DistanceGP2Y0A21YK.h>

DistanceGP2Y0A21YK Dist;
int distance;

void setup()
{
  Serial.begin(9600);
  Dist.begin(A5);
}

void loop()
{
  distance = Dist.getDistanceCentimeter();
  Serial.print("\nDistance in centimers: ");
  Serial.print(distance);  
  delay(500); //make it readable
}

el del servo

#include <Servo.h> 
 
Servo myservo;  // create servo object to control a servo 
                // a maximum of eight servo objects can be created 
 
int pos = 0;    // variable to store the servo position 
 
void setup() 
{ 
  myservo.attach(3);  // attaches the servo on pin 9 to the servo object 
} 
 
 
void loop() 
{ 
  for(pos = 0; pos < 140; pos += 1)  // goes from 0 degrees to 180 degrees 
  {                                  // in steps of 1 degree 
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 
  } 
  for(pos = 140; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees 
  {                                
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 
  } 
}

Gracias de antemano

Tendras que hacer una pausa para medir ¿no?

Algo asi como: 1.- quiero medir cada grado 2.- muevo el motor un grado y paro 3.- mido distancia 4.- continuo movimiento hasta siguiente grado y vuelta a empezar midiendo distancia. 5.- si he llegado a 140 lo hago a la inversa.

Esto lo traduces al lenguage arduino y listo.

Gracias, eso pensé, pero el problema es si hay que poner cada acción (para medir) hasta los 140 o se puede hacer un bucle? Ya he dicho que me cuesta :grin: y no sé como se podría hacer un bucle así

Si miras el código del servo, verás que el (los) bucles ya los tienes y se llaman pos. Lo único que queda es meter el código de lectura de distancia DENTRO de esos bucles, y donde escribes por serial pos, puedes escribir también la distancia. Lo único que te quedaría es buscar un valor para el delay suficiente para que ambos dispositivos se estabilicen tras cada paso. Puedes empezar por el 500 e ir bajando.

Eso haré, gracias!!! :D