Etape 12 : Code de contrôle axe x
L’axe des X se déplace dans les deux directions.Code de l’axe des abscisses :
#include < Servo.h >
#include < Wire.h >
Servo XA ;
Servo XB ;
dir int = 0 ;
int Ancien_répertoire = 0 ;
Trucs de IR
#include < IRremote.h >
int RECV_PIN = 11 ;
IRrecv irrecv(RECV_PIN) ;
résultats de la decode_results ;
Action de la chaîne ;
Chaîne oldAction ;
//
unsigned long temps ;
unsigned long timeIR ;
unsigned long timeDiff ;
void setup() {}
Wire.Begin() ;
Serial.Begin(9600) ;
irrecv.enableIRIn() ; Démarrer le récepteur IR
}
void loop() {}
lire les boutons IR et définissez l’action / /
Si (irrecv.decode (et résultats)) {}
long x = results.value ;
Serial.println (results.value, HEX) ; pour le décodage des boutons
Serial.println(x) ;
timeIR = millis() ; temps record de push button
{Switch(x)}
affaire 351005205 :
action = « flèche » ;
dir = 5 ;
rupture ;
affaire 350988375 :
action = « flèche vers le bas » ;
dir = 6 ;
rupture ;
affaire 350963895 :
action = « flèche gauche » ;
dir = 1 ;
rupture ;
affaire 350976645 :
action = « flèche droite » ;
dir = 2 ;
rupture ;
affaire 350952165 :
action = « ok/mute » ;
dir = 3 ;
rupture ;
affaire 350986335 :
action = « B2 » ;
dir = 4 ;
rupture ;
cas 4294967295 :
rupture ;
}
irrecv.Resume() ; Recevoir la valeur suivante
}
timeDiff = millis() - timeIR ;
Si ((timeDiff > 200) & & dir! = 0) {//if aucun bouton
dir = 0 ;
action = « none » ;
}
Si (action! = oldAction) {}
Si (action == « flèche ») {}
XA.attach(9) ;
XA.write(0) ;
XB.attach(10) ;
XB.write(180) ;
Serial.println ("X go away") ;
Delay(100) ;
}
Si (action == « flèche vers le bas ») {}
XA.attach(9) ;
XA.write(180) ;
XB.attach(10) ;
XB.write(0) ;
Serial.println ("X come back") ;
Delay(100) ;
}
Si ((action == « none ») & & (Ancien_répertoire == 5 || Ancien_répertoire == 6)) {}
XA.detach() ;
XB.detach() ;
Serial.println (« arrêt axe x ») ;
}
Envoyer des commandes
Wire.beginTransmission(9) ;
Wire.Send(dir) ;
Wire.endTransmission() ;
Serial.println ("envoi dir") ;
Serial.Print(dir) ;
Serial.Print("") ;
Serial.println(action) ;
}
Ancien_répertoire = dir ;
oldAction = action ;
Delay(100) ;
}