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);
}