const int photo1 = 2;   
const int photo2 = 3;
const int photo3 = 4;
const int photo4 = 5;
const int photo5 = 6;
const int photo6 = 7;
const int photo7 = 0;
const int photo8 = 1;
const int motgauche = 9; 
const int motdroit = 10;


// initialisation de l'interruption
void pciSetup(byte pin)
{
    *digitalPinToPCMSK(pin) |= bit (digitalPinToPCMSKbit(pin)); 
    PCIFR  |= bit (digitalPinToPCICRbit(pin));
    PCICR  |= bit (digitalPinToPCICRbit(pin));
}

// Programme d'interruption du port C
ISR (PCINT2_vect) 
 {

    while(digitalRead(photo1) == LOW)
    {
      digitalWrite(motgauche,HIGH);
      digitalWrite(motdroit,HIGH);
    }

    while(digitalRead(photo2) == LOW)
    {
      digitalWrite(motgauche,LOW);
      digitalWrite(motdroit,HIGH);
    }
    
    while(digitalRead(photo3) == LOW)
    {
      digitalWrite(motgauche,LOW);
      digitalWrite(motdroit,HIGH);
    }
    
    while(digitalRead(photo4) == LOW)
    {
      digitalWrite(motgauche,LOW);
      digitalWrite(motdroit,HIGH);
    }
    
    while(digitalRead(photo5) == LOW)
    {
      digitalWrite(motgauche,HIGH);
      digitalWrite(motdroit,LOW);
    }


    while(digitalRead(photo6) == LOW)
    {
      digitalWrite(motgauche,HIGH);
      digitalWrite(motdroit,LOW);
    }
    
    while(digitalRead(photo7) == LOW)
    {
      digitalWrite(motgauche,HIGH);
      digitalWrite(motdroit,LOW);
    }
    
    while(digitalRead(photo8) == LOW)
    {
      digitalWrite(motgauche,HIGH);
      digitalWrite(motdroit,LOW);
    }

 } 
 
 
void setup() 
{
  pinMode(motgauche, OUTPUT);   
  pinMode(motdroit, OUTPUT);  
  digitalWrite(photo1, HIGH); //pull up  
  digitalWrite(photo2, HIGH); //pull up 
  digitalWrite(photo3, HIGH); //pull up 
  digitalWrite(photo4, HIGH); //pull up  
  digitalWrite(photo5, HIGH); //pull up
  digitalWrite(photo6, HIGH); //pull up 
  digitalWrite(photo7, HIGH); //pull up
  digitalWrite(photo8, HIGH); //pull up
  
  pciSetup(photo1);
  pciSetup(photo2);
  pciSetup(photo3);
  pciSetup(photo4);
  pciSetup(photo5);
  pciSetup(photo6);
  pciSetup(photo7);
  pciSetup(photo8);
}

void loop()
{
  digitalWrite(motgauche,LOW);
  digitalWrite(motdroit,LOW);
}