Ayuda Con Modulo RF 433

Hola Foro, buenas tardes, tengo una inquietud. Estoy armando un estacionamiento automatizado con arduino que tenga un sensor por cada plaza de estacionamiento. La idea es que un arduino cuente los lugares libres estando conectado a los sensores y ese dato lo envíe a otro arduino por radio frecuencia. Hice casi todo, solo tengo un problema, cuando no hay lugares disponibles, es decir, que la variable libres valga 0 el arduino receptor se cuelga, pero corroboro con el arduino emisor y la variable muestra 0 en el serial, o sea que supongo que el problema está en el receptor. Me podrían aconsejar un poco? Gracias, adjunto los códigos.

#include <RCSwitch.h>
RCSwitch myRF = RCSwitch();
int cantidad = 0;
int sensor1 = 4;
int sensor2 = 5;
int sensor3 = 6;
int sensor4 = 7;
int libres;
int nolibres = 0;

void setup() {
  pinMode (sensor1, INPUT);
  pinMode (sensor2, INPUT);
  pinMode (sensor3, INPUT);
  pinMode (sensor4, INPUT);
  Serial.begin (9600);
  myRF.enableTransmit(2);
}

void loop() {
  cantidad = 0;
  int s1;
  int s2;
  int s3;
  int s4;
  int s1a = HIGH;
  int s2a = HIGH;
  int s3a = HIGH;
  int s4a = HIGH;
  const int cant2 = 0;
  s1 = digitalRead (sensor1);
  s2 = digitalRead (sensor2);
  s3 = digitalRead (sensor3);
  s4 = digitalRead (sensor4);
  if ((s1 == LOW) && (s1a == HIGH)) {
    cantidad ++;
  }
  s1a = s1;
  if ((s1 == HIGH) && (cantidad != cant2) && (s1a == LOW)) {
    cantidad --;
  }
  s1a = s1;
  if ((s1 == HIGH) && (cantidad == cant2) && (s1a == LOW)) {
  }
  s1a = s1;
  if ((s2 == LOW) && (s2a == HIGH)) {
    cantidad ++;
  }
  s2a = s2;
  if ((s2 == HIGH) && (cantidad == cant2) && (s2a == LOW)) {
  }
  s2a = s2;
  if ((s2 == HIGH) && (cantidad != cant2) && (s2a == LOW)) {
    cantidad --;
  }
  s2a = s2;
  if ((s3 == LOW) && (s3a == HIGH)) {
    cantidad ++;
  }
  s3a = s3;
  if ((s3 == HIGH) && (cantidad != cant2) && (s3a == LOW)) {
    cantidad --;
  }
  s3a = s3;
  if ((s3 == HIGH) && (cantidad == cant2) && (s3a == LOW)) {
  }
  s3a = s3;
  if ((s4 == LOW) && (s4a == HIGH)) {
    cantidad++;
  }
  s4a = s4;
  if ((s4 == HIGH) && (cantidad == cant2) && (s4a == LOW)) {
  }
  s4a = s4;
  if ((s4 == HIGH) && (cantidad != cant2) && (s4a == LOW)) {
    cantidad--;
  }
  s4a = s4;
  Serial.println ("cantidad");
  Serial.println (cantidad);
  delay (1000);
  libres = (4 - cantidad);
  Serial.println("libres");
  Serial.println (libres);
  myRF.send(libres, 10);
  delay (1000);
}

ese primero es el del emisor y el siguiente es el del receptor:

#include <RCSwitch.h>
RCSwitch myRF = RCSwitch();
int datob;
int libres;

void setup() {
  Serial.begin(9600);
  myRF.enableReceive(0);
}

void loop() {
  if (myRF.available())
  {
    datob = myRF.getReceivedBitlength();
    if (datob == 10) {
      libres = myRF.getReceivedValue();
      Serial.println(libres);
    }
    myRF.resetAvailable();
    delay(500);
  }
}

Lee el privado