Programme détecteur de proximité

Bonjour, j’ai réalisé un programme qui fait vibrer des vibreurs en fonction du temps pour lequel une onde sonore est envoyé puis reçu par un capteur sonore.
Mais quand je test le programme, mes capteurs ne détectent rien (ils retournent 0)
Pouvez-vous me dire où est le problème?
La fonction qui retourne le temps est getDuration

#define VIB_1 32
#define VIB_2 33
#define VIB_3 34

/* LES VALEURS CI DESSOUS SONT LES DELAIS ENTRE LES VIBRATIONS (PROCHE, MOYEN, LOIN) */
#define PROCHE 0
#define MOYEN 500
#define LOIN 1000

const int tabSize = 8;
int duration[tabSize];
int trig[tabSize];
int echo[tabSize] = {A0, A1, A2, A3, A4, A5, A6, A7};

/*  
 *   Fonction qui récupère la distance (proche, moyen, loin, hors de portée)
 *   Entrées: pin du Trigger; pin du capteur
 *   Sorties: distance (0 : hors de portée; 1 : loin; 2 : moyen; 3 : proche)
*/
int getDuration(int trigPin, int echoPin)
{
  int pulse = 0;
  digitalWrite(trigPin, HIGH);
  delay(1);
  digitalWrite(trigPin, LOW);
  pulse = pulseIn(echoPin, HIGH, 360);
  Serial.print("Ecart "); Serial.print(trigPin);Serial.print(" = ");Serial.println(pulse);
  if (pulse > 360)
  {
    return 0;
  }
  else if (pulse > 240)
  {
    return 1;
  }
  else if (pulse > 120)
  {
    return 2;
  }
  else
  {
    return 3;
  }
}
/* ----------------------------------------------------------------------------------------------- */

void setup() {
  // Intialisation du tableau des sorties TRIG (de 22 à 29)
  for (int j = 0; j < 8; j++)
  {
    trig[j] = j+22;
    pinMode(j+22, OUTPUT);
  }
  Serial.begin(9600);
  pinMode(VIB_1, OUTPUT);
  pinMode(VIB_2, OUTPUT);
  pinMode(VIB_3, OUTPUT);
  pinMode(A0, INPUT);
  pinMode(A1, INPUT);
  pinMode(A2, INPUT);
  pinMode(A3, INPUT);
  pinMode(A4, INPUT);
  pinMode(A5, INPUT);
  pinMode(A6, INPUT);
  pinMode(A7, INPUT);
  pinMode(22, OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:
  /* On obtient la durée de l'echo */
  for (int i = 0; i < 8; i++)
  {
    duration[i] = getDuration(trig[i], echo[i]);
  }
  /* On fait vibrer les capteurs en conséquence */
  /* Vibreur 1 */
  if (duration[0] > 0 || duration[1] > 0)
  {
    if (duration[0] == 3 || duration[1] == 3)
    {
      do {
        digitalWrite(VIB_1, HIGH);
        delay(PROCHE);
        digitalWrite(VIB_1, LOW);
        Serial.println("Ca vibre bocou VIB 1");
      } while ((duration[0] = getDuration(trig[0], echo[0])) != 3 || (duration[1] = getDuration(trig[1], echo[1])) != 3);
    }
    else if (duration[0] == 2 || duration[1] == 2)
    {
      do {
        digitalWrite(VIB_1, HIGH);
        delay(MOYEN);
        digitalWrite(VIB_1, LOW);
        Serial.println("Ca vibre un peu VIB 1");
      } while ((duration[0] = getDuration(trig[0], echo[0])) != 2 || (duration[1] = getDuration(trig[1], echo[1])) != 2);
    }
    else if (duration[0] == 1 || duration[1] == 1)
    {
      do {
        digitalWrite(VIB_1, HIGH);
        delay(LOIN);
        digitalWrite(VIB_1, LOW);
        Serial.println("Ca vibre pa tro VIB 1");
      } while ((duration[0] = getDuration(trig[0], echo[0])) != 1 || (duration[1] = getDuration(trig[1], echo[1])) != 1);
    }
  }

  /* Vibreur 2 */
  if (duration[2] > 0 || duration[5] > 0 || duration[6] > 0 || duration[7] > 0)
  {
    if (duration[2] == 3 || duration[5] == 3 || duration[6] == 3 || duration[7] == 3)
    {
      do {
        digitalWrite(VIB_2, HIGH);
        delay(PROCHE);
        digitalWrite(VIB_2, LOW);
        Serial.println("Ca vibre bocou VIB 2");
      } while ((duration[2] = getDuration(trig[2], echo[2])) != 3 || (duration[5] = getDuration(trig[5], echo[5])) != 3 || (duration[6] = getDuration(trig[6], echo[6])) != 3 || (duration[7] = getDuration(trig[7], echo[7])) != 3);
    }
    else if (duration[2] == 2 || duration[5] == 2 || duration[6] == 2 || duration[7] == 2)
    {
      do {
        digitalWrite(VIB_2, HIGH);
        delay(MOYEN);
        digitalWrite(VIB_2, LOW);
        Serial.println("Ca vibre un peu VIB 2");
      } while ((duration[2] = getDuration(trig[2], echo[2])) != 2 || (duration[5] = getDuration(trig[5], echo[5])) != 2 || (duration[6] = getDuration(trig[6], echo[6])) != 2 || (duration[7] = getDuration(trig[7], echo[7])) != 2);
    }
    else if (duration[2] == 1 || duration[5] == 1 || duration[6] == 1 || duration[7] == 1)
    {
      do {
        digitalWrite(VIB_2, HIGH);
        delay(LOIN);
        digitalWrite(VIB_1, LOW);
        Serial.println("Ca vibre pa tro VIB 3");
      } while ((duration[2] = getDuration(trig[2], echo[2])) != 1 || (duration[5] = getDuration(trig[5], echo[5])) != 1 || (duration[6] = getDuration(trig[6], echo[6])) != 1 || (duration[7] = getDuration(trig[7], echo[7])) != 1);
    }
  }
  /* Vibreur 3 */
  if (duration[3] > 0 || duration[4] > 0)
  {
    if (duration[3] == 3 || duration[4] == 3)
    {
      do {
        digitalWrite(VIB_3, HIGH);
        delay(PROCHE);
        digitalWrite(VIB_3, LOW);
        Serial.println("Ca vibre bocou VIB 3");
      } while ((duration[3] = getDuration(trig[3], echo[3])) != 3 || (duration[4] = getDuration(trig[4], echo[4])) != 3);
    }
    else if (duration[3] == 2 || duration[4] == 2)
    {
      do {
        digitalWrite(VIB_3, HIGH);
        delay(MOYEN);
        digitalWrite(VIB_3, LOW);
        Serial.println("Ca vibre un peu VIB 3");
      } while ((duration[3] = getDuration(trig[3], echo[3])) != 2 || (duration[4] = getDuration(trig[4], echo[4])) != 2);
    }
    else if (duration[3] == 1 || duration[4] == 1)
    {
      do {
        digitalWrite(VIB_3, HIGH);
        delay(LOIN);
        digitalWrite(VIB_3, LOW);
        Serial.println("Ca vibre pa tro VIB 3");
      } while ((duration[3] = getDuration(trig[3], echo[3])) != 1 || (duration[4] = getDuration(trig[4], echo[4])) != 1);
    }
  }
}

Merci

Expliquez le câblage