#include<IRremote.h>
#include<Servo.h>
Servo moteur ;
int mGauche = 5;
int mGHA = 6;
int mGHR = 7;
int mDroit = 10;
int mDRA = 9 ;
int mDRR = 8 ;
int ir = 12;
unsigned long data;
IRrecv receiver(ir);//
decode_results resultats;
int ledV = 2;
int ledR = 11;
int ledJD = 4;
int ledJG = 1;
int x = 0;
int g = 0;
void setup ()
{
moteur.attach(3);
moteur.write(90);
receiver.enableIRIn();
pinMode(mGauche, OUTPUT);
pinMode(mDroit, OUTPUT);
pinMode(mGHA, OUTPUT);
pinMode(mGHR, OUTPUT);
pinMode(mDRA, OUTPUT);
pinMode(mDRR, OUTPUT);
pinMode(ledR, OUTPUT);
pinMode(ledV, OUTPUT);
pinMode(ledJD, OUTPUT);
pinMode(ledJG, OUTPUT);
initLed();
}
void loop ()
{
for (g ; g < 180; g++)
{
moteur.write(g);
delay(10);
}
for (g; g > 0; g--)
{
moteur.write(g);
delay(10);
}
if (receiver.decode(&resultats))
{
data = resultats.value;
receiver.resume();
delay(150);
switch (data)
{
case 16736925 :
go ();
break;
case 16754775 :
back ();
break;
case 16761405 :
right ();
break;
case 16720605 :
left ();
break;
case 16712445 :
stop ();
break;
case 16728765 :
selfRotationLeft ();
break ;
case 16732845 :
selfRotationRight ();
break ;
}
}
}
void stop ()
{
initLed();
digitalWrite(mGauche, LOW);
digitalWrite(mDroit, LOW);
digitalWrite(mDRA, LOW);
digitalWrite(mDRR, LOW);
digitalWrite(mGHA, LOW);
digitalWrite(mGHR, LOW);
for (int y = 0; y < 5; y++)
{
clignLedTotal();
delay(100);
}
}
void go ()
{
initLed();
digitalWrite(mGauche, HIGH);
digitalWrite(mDroit, HIGH);
digitalWrite(mDRA, HIGH);
digitalWrite(mDRR, LOW);
digitalWrite(mGHA, HIGH);
digitalWrite(mGHR, LOW);
x = 1;
if (x = 1)
{
digitalWrite(ledV, HIGH);
}
}
void back ()
{
initLed();
digitalWrite(mGauche, HIGH);
digitalWrite(mDroit, HIGH);
digitalWrite(mDRA, LOW);
digitalWrite(mDRR, HIGH);
digitalWrite(mGHA, LOW);
digitalWrite(mGHR, HIGH);
x = 2;
if (x = 2)
{
digitalWrite(ledR, HIGH);
delay(100);
digitalWrite(ledR, LOW);
}
}
void left()
{
initLed();
digitalWrite(mGauche, LOW);
digitalWrite(mDroit, HIGH);
digitalWrite(mDRA, HIGH);
digitalWrite(mDRR, LOW);
digitalWrite(mGHA, LOW);
digitalWrite(mGHR, LOW);
x = 3;
if (x = 3)
{
digitalWrite(ledJG, HIGH);
}
}
void backLeft()
{
initLed();
digitalWrite(mGauche, LOW);
digitalWrite(mDroit, HIGH);
digitalWrite(mDRA, LOW);
digitalWrite(mDRR, HIGH);
digitalWrite(mGHA, LOW);
digitalWrite(mGHR, LOW);
x = 4;
if (x = 4)
{
digitalWrite(ledJG, HIGH);
digitalWrite(ledR, HIGH);
}
}
void right ()
{
initLed();
digitalWrite(mGauche, HIGH);
digitalWrite(mDroit, LOW);
digitalWrite(mDRA, LOW);
digitalWrite(mDRR, LOW);
digitalWrite(mGHA, HIGH);
digitalWrite(mGHR, LOW);
x = 5;
if (x = 5)
{
digitalWrite(ledJD, HIGH);
}
}
void backRight ()
{
initLed();
digitalWrite(mGauche, HIGH);
digitalWrite(mDroit, LOW);
digitalWrite(mDRA, LOW);
digitalWrite(mDRR, LOW);
digitalWrite(mGHA, LOW);
digitalWrite(mGHR, HIGH);
x = 6;
if (x = 6)
{
digitalWrite(ledR, HIGH);
digitalWrite(ledJD, HIGH);
}
}
void selfRotationLeft()
{
initLed();
digitalWrite(mGauche, HIGH);
digitalWrite(mDroit, HIGH);
digitalWrite(mDRA, HIGH);
digitalWrite(mDRR, LOW);
digitalWrite(mGHA, LOW);
digitalWrite(mGHR, HIGH);
x = 7;
if (x = 7)
{
clignLedTotal();
}
}
void selfRotationRight ()
{
initLed();
digitalWrite(mGauche, HIGH);
digitalWrite(mDroit, HIGH);
digitalWrite(mDRA, LOW);
digitalWrite(mDRR, HIGH);
digitalWrite(mGHA, HIGH);
digitalWrite(mGHR, LOW);
x = 8;
if (x = 8)
{
clignLedTotal();
}
}
void initLed()
{
x = 0;
digitalWrite(ledV, LOW);
digitalWrite(ledJG, LOW);
digitalWrite(ledJD, LOW);
digitalWrite(ledR, LOW);
}
void clignLedTotal()
{
digitalWrite(ledV, HIGH);
digitalWrite(ledJG, HIGH);
digitalWrite(ledJD, HIGH);
digitalWrite(ledR, HIGH);
delay(100);
digitalWrite(ledV, LOW);
digitalWrite(ledJG, LOW);
digitalWrite(ledJD, LOW);
digitalWrite(ledR, LOW);
}
Donc voilà , c'est mon code est les lignes qui m'intéressent pour ce sujet sont dans le setup, donc je répète, j'aimerais faire tourner constamment mon servo moteur de 0 à 180° et inversement tout en pouvant recevoir à tout moment, sans délai, les instructions de la télécommande infrarouge , or ici avec ce code il y a encore un temps d'attente, c'est à dire que les 2 instructions ne s'exécutent pas en parallèles, or c'est ce que je voudrais faire
Merci d'avance