joystick + rele

Olá. Sou iniciante em arduino e estou fazendo um protótipo com um joystick e uma placa com 4 reles.
Já desenvolvi 4 funções, mas estou apanhando em uma.
Qdo o valor do eixo x estiver em zero (ou próximo dele, < que 100, por exemplo) eu quero q ele ligue o rele. Num segundo toque (novamente qdo o eixo x for igual a zero), preciso q ele desligue e assim sucessivamente. Já tente várias formas, mas não obtive o resultado desejado.
Meu código está assim:
int X_axis = A0;
int Y_axis = A1;
int Z_axis = 2; //pressionar botão
int x = 0;
int y = 0;
int z = 0;
int var1 = 1000;
int var2 = 1000;
int var3 = 1000;
int var4 = 1000;
int w = 0;

void setup()
{
Serial.begin(9600);
pinMode(X_axis, INPUT);
pinMode(Y_axis, INPUT);
pinMode(Z_axis, INPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(7,OUTPUT);

digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(7, HIGH);

}
void loop()
{
x = analogRead(X_axis);
y = analogRead(Y_axis);
z = digitalRead(Z_axis);
w = analogRead(w);

{

if (x < 10 && var3 == 1000)

{
var3 = 0;
var4 = 1;
} // end if

if (var3 == 0)
{
digitalWrite(10,LOW);
}
// delay (2000);

if (x < 10 && var3 == 0 && var4 == 1)

{
var4 = 0;
var3 = 1000;
}

if (var4 == 0)
{
digitalWrite(10,HIGH);
}
}
Da forma acima, o rele armar, mas desarma em seguida.
Agradeço quem puder me dar uma luz.

Basicamente tens de perceber quando é que o valor de x vai acima do valor que pretendes.

unsigned char latch = 0; 

if (x < 10 && previous_x >= 10) { //valor abaixo de 10. 

   if (latch == 0) {
      latch = 1; 
      digitalWrite(10, LOW); 
   } else {
      latch = 0; 
      digitalWrite(10, HIGH);
   }
}
previous_x = x;

Vê se funciona.