Control de Puente H

Buenas tardes.
Me encuentro atascado en el control del chip L293NE (Figura adjunta).
Este chip puede controlar 2 motores aunque solo estoy usando uno entre los pines 3 y 6 en la figura.
Es un mini motor DC alimentado por solo 3,3 voltios de la misma placa (Arduino Mega 2560). Para
controlarlo empleo los pines 10 y 11 de la placa Arduino
Empleo el siguiente codigo:

// Librerias Magnetometro HMC5883L
int IN3=11; // Pin 10 Arduino -->  Pin 2 L293NE
int IN4=10; // Pin 11 Arduino -->  Pin 7 L293NE
void setup() {
  // Parametros trabajo HMC5883L
  pinMode(IN3,OUTPUT);
  pinMode(IN4,OUTPUT);
}
void loop() {
  //  Calculo del Norte magnetico "X"
  //  Almaceno una lectura cualquiera "Y" del magnetometro 
  int variacion = A - B; // Resto variaciones de "X" sobre el valor 
                         // guardado de "Y" con resultado (+) ó (-).
  if variacion > 2 // Si la variacion supera 2 grados giro en un sentido
  {
    digitalWrite(IN3, HIGH);
    digitalWrite(IN4, LOW);
  }
  //  Cuando variacion sea mas negativa de -2 girar al contrario
  //  En este supuesto el motor no responde ¿Codigo erroneo?...
  if variacion < -2
  {
    digitalWrite(IN3, LOW); 
    digitalWrite(IN4, HIGH);
  }
}

En los comentarios del codigo anterior explico los calculos y la solucion (seguramente erronea) para controlar el L293NE.
Agradecería algun consejo de cómo manejar las variaciones de signo negativo que creo que no estan bien argumentadas.
Gracias de antemano

L293NE.jpg

Hola pacheco, agotaste la instancia de buscar referencias en Google que te ayuden?
ejemplo Google: arduino L293
Mira este instructable

Buenas tardes surbyte. Muchas gracias por las sugerencias. Efectivamente levo unos 2 dias mirando cuantos instructables he podido.
Lo complicado para mi, es simplificarlos para adaptar el codigo, NO a un potenciometro, ni interruptores, ni otros componentes de hardware externos. El problema lo tengo en la forma de que el motor gire en un sentido si la variacion de un valor (grados en este caso), es positiva o negativa Esto es: que si guardo un valor de 120º, y giro el magnetometro en sentido del reloj (variacion positiva… +1, +2, +3 … etc., el motor gire en un sentido… y si giro en sentido contra-reloj (variacion negativa -1. -2, -3, etc., el motor gire en sentido contrario).
En los “if´s” es donde creo que estoy liado. No tengo mucha experiencia en programacion y me pierdo en los operadores > y < aplicados a valores negativos.
O dicho de otro modo: Si me planteo que el motor esté parado entre +2 y -2, ¿como hago para que gire a derechas(o izquierdas) si el valor fuese de +3 (o -3)…?
Sigo trabajando el sketch variando los operadores de comparacion pero solo consigo que gire si los valores exceden el limite en positivo o en negativo… pero que lo haga en ambos casos no lo consigo.
Reitero mi agradecimiento por la sugerencia.

Bueno disculpa, leí mal tu problema. Dejame ver bien tu código y te daré mi consejo.

en principio ambos códigos if estan mal planteados
es asi

   if (variacion > 2) // Si la variacion supera 2 grados giro en un sentido
  {
    digitalWrite(IN3, HIGH);
    digitalWrite(IN4, LOW);
  }
  //  Cuando variacion sea mas negativa de -2 girar al contrario
  //  En este supuesto el motor no responde ¿Codigo erroneo?...
  if (variacion < -2)
  {
    digitalWrite(IN3, LOW); 
    digitalWrite(IN4, HIGH);
  }