Problemas entradas analogicas y sensores IR Sharp

Hola,…

Construyo un pequeño vehiculo que se encargue de escanear el terreno con un sensor ultrasonico, y luego elegir el camino mas despejado o el que de un tiempo de ping mas largo, ademas al mismo le instale dos sensores infrarrojos sharp GP2Y0A21YK para que si se presenta algun obstaculo ya sea a la derecha o a la izquierda, el mismo gire al lado contrario precisamente en las lecturas analogicas de estos sensores tengo el problema.

Actualmente llevo:
Tengo montado todo, el chasis, para la traccion utiliza dos motores DC que vienen con su caja reductora, los controlo con un modulo l298N, el cual tiene control para dos motores, dos pines digitales y un PWM para cada motor.

Un servomotor donde ira montado un sensor ultrasonico(lo tendre dentro de dos dias),

El arduino lo alimento con un pack de baterias AA x 4 = 6V, el modulo de los motores lo alimento con un pack de pilas recargables de 7.2V, para que me funcionara el control, tuve que unir ambos negativos, osea los negativos de cada pack de baterias.

Positivo y negativo para lo sensores IR y el servomotor los tomo del +5v y el GND del Arduino respectivamente, ahora, la descripcion de mi problema:

Si conecto ambos sensores IR y veo en el monitor serial las lecturas, nunca se estabilizan, al colocar mi mano a una distancia aproximada de 25cm las lectuar de las entradas analogicas(tapando solo un sensor) varian de [aproximados, siempre varian] 4 a 339 para el sensor que estoy interceptando, y de 22 a 74 para el sensor que esta libre. Esto no me sucede cuando intento con un solo sensor, si desconecto la entrada analogica de uno de los sensores, el otro que si esta conectado me da lecturas estables, solo varian en una cifra de unidad, la prueba la hice con ambos sensores y ambos funcionan bien siempre y cuando la salida analogica del otro no este conectada.

¿Alguien que se haya enfrentado a un problema como este? ¿Que tecnicas me recomendarian para mitigar este problema?

Saludos…

PD. Adjunto lo que hasta ahora llevo del codigo fuente

RoboDuino.ino (3.39 KB)

Al final la solucion al problema me la tuve que plantear, luego de pruebas y leer un poco, me cree mis propios sensores IR, super sencillos, con un alcance de 32cm aun a 0 cm no llegan a los 1023 en la medicion analogica.

Prototipo

Esquema

Algoritmo para que funcionen

int lecturaInfrarroja(int lecturas, int pinDigital, int pinAnalogo){
  distanciaIR=0;
  for(int x=0;x<lecturas;x++){
    digitalWrite(pinDigital,LOW);     //Apaga los emisores IR para leer la IR ambiente
    delay(1);                             // Retardo minimo necesario para tomar lecturas
    IrAmbiente = analogRead(pinAnalogo);  // Guardar la luz IR ambiental
    digitalWrite(pinDigital,HIGH);        //Enciende los emisores IR para leer la luz que reflejan los objetos
    delay(1);                        
    IrReflejo = analogRead(pinAnalogo);   // Guardar IR que refleja de los obstaculos
    valoresIR[x] = IrAmbiente-IrReflejo;  // Calcula los cambios IR y luego los guarda para poder promediarlos
  }

  for(int x=0;x<lecturas;x++){            // Se calcula el promedio
    distanciaIR+=valoresIR[x];
  }
  return(distanciaIR/lecturas);           // Valor que tomara la variable que llame a la funcion
} //Fin funcion de lectura IR

Por si alguien se topa con el mismo problema =)

Gracias por exponer tu solución. Así se enriquece mucho el foro.