la petite video
[youtube]
http://youtu.be/WnFcPltTNHQ[/youtube]
 
http://youtu.be/WnFcPltTNHQ
et j'avais oublié le sketch arduino (programmation) :
#include <Wire.h>
#include <Servo.h>
int valeurLue;
int resultat;
float tension;
Servo servogrue;
void setup()
{
  Serial.begin(9600);
  Wire.begin();
    
    
    
  servogrue.attach (9);
  
  pinMode(4, OUTPUT); pinMode(6, INPUT);     // Left IR LED & Receiver
  pinMode(5, OUTPUT); pinMode(7, INPUT);      // Right IR LED & Receiver
  tone(3, 3000, 1000);                       // Play tone for 1 second
  delay(1000);   // Delay to finish tone
  
  pinMode(11,OUTPUT);
  pinMode(12,OUTPUT);
  pinMode(13,OUTPUT);
  
}
void loop()                                  // Main loop auto-repeats
{
  
  int irLeft = irDetect(4, 6, 38000);       // Check for object on left
  int irRight = irDetect(5, 7, 38000);       // Check for object on right
  
  Serial.print("valeur lue (0/1023) = ");
  delay(100);
  valeurLue = analogRead(0);
  tension = (valeurLue * 5.0) / 1024;
  resultat = 1/((1/274.15)+log((50000/(5-tension)-10000)/47000)/4300)-273.15;
  Serial.print(valeurLue);
  Serial.print(" temp = ");
  Serial.print(resultat);
  Serial.print(" C ");
  Serial.println();
  delay(100);
  
  Serial.println(irLeft);
  Serial.print("  ");
  Serial.println(irRight); 
  
  delay(50);        
  if((irLeft == 1) && (irRight == 1))        // If both sides detect
  {
    Stop();
     
  }
   if (irRight == 0)                       // If only left side detects
  {
     Ouvrirdoux();
     delay(50); 
     Ouvrir();
     delay(900);
     Ouvrirdoux();
     delay(800);
     Stop();
     
  }
   if (irLeft == 0)                      // If only right side detects
  {
     Fermerdoux();
     delay(50);
     Fermer();
     delay(950);
     Stop();
     Fermerdoux();
     delay(800);
     Stop();
    
  }
   if ((irLeft == 0) && (irRight == 0))        // If both sides detect
  {
    
        Stop();
        digitalWrite(11,255);
      digitalWrite(12,HIGH);
      digitalWrite(13,LOW);
        delay(10000);
        
  }
 
    if (valeurLue > 730)
    {
     
      digitalWrite(11,255);
      digitalWrite(12,HIGH);
      digitalWrite(13,LOW);
         
    }
    else
    {
      digitalWrite(12,LOW);
      digitalWrite(13,LOW);    
    }
}
int irDetect(int irLedPin, int irReceiverPin, long frequency)
{
  tone(irLedPin, frequency, 

;              // IRLED 38 kHz for at least 1 ms
  delay(1);                                  // Wait 1 ms
  int ir = digitalRead(irReceiverPin);       // IR receiver -> ir variable
  delay(1);                                  // Down time before recheck
  return ir;                                 // Return 1 no detect, 0 detect
} 
void Ouvrir()
{
 servogrue.writeMicroseconds(1300); 
}
void Ouvrirdoux ()
{
 servogrue.writeMicroseconds(1450); 
}
void Fermer()
{
 servogrue.writeMicroseconds(1700); 
}
void Fermerdoux()
{
 servogrue.writeMicroseconds(1550); 
}
void Stop()
{
 servogrue.writeMicroseconds(1500); 
}