Paso 12: Código de control eje x
El eje X se mueve en dos direcciones.Código del eje x:
#include < Servo.h >
#include < Wire.h >
Servo XA;
Servo XB;
int dir = 0;
oldDir int = 0;
Cosas de IR
#include < IRremote.h >
int RECV_PIN = 11;
Irrecv(RECV_PIN) de IRrecv;
resultados de la decode_results;
Acción de cadena;
String oldAction;
//
tiempo largo sin firmar;
timeIR largo sin firmar;
timeDiff largo sin firmar;
void setup() {}
Wire.Begin();
Serial.Begin(9600);
irrecv.enableIRIn(); Iniciar el receptor IR
}
void loop() {}
leer botones IR y de fijar la acción / /
Si (irrecv.decode (y resultados)) {}
largo x = results.value;
Serial.println (results.value, hexagonal); para descifrar los botones
Serial.println(x);
timeIR = millis(); tiempo récord de push botón
{Switch(x)}
caso 351005205:
acción = "arriba";
DIR = 5;
rotura;
caso 350988375:
acción = "abajo";
DIR = 6;
rotura;
caso 350963895:
acción = "flecha izquierda";
DIR = 1;
rotura;
caso 350976645:
acción = "flecha derecha";
DIR = 2;
rotura;
caso 350952165:
acción = "ok/mute";
DIR = 3;
rotura;
caso 350986335:
acción = "B2";
DIR = 4;
rotura;
caso 4294967295:
rotura;
}
irrecv.resume(); Recibir el siguiente valor
}
timeDiff = millis() - timeIR;
Si ((timeDiff > 200) & & dir! = 0) {//if ningún botón
DIR = 0;
Acción = 'none';
}
Si (acción! = oldAction) {}
Si (acción == "arriba flecha") {}
XA.attach(9);
XA.write(0);
XB.attach(10);
XB.write(180);
Serial.println ("X desaparece");
Delay(100);
}
Si (acción == "abajo flecha") {}
XA.attach(9);
XA.write(180);
XB.attach(10);
XB.write(0);
Serial.println ("X volver");
Delay(100);
}
Si ((acción == 'none') & & (oldDir == 5 || oldDir == 6)) {}
XA.detach();
XB.detach();
Serial.println ("parada eje x");
}
enviar comandos
Wire.beginTransmission(9);
Wire.Send(dir);
Wire.endTransmission();
Serial.println ("envío dir");
Serial.Print(dir);
Serial.Print("");
Serial.println(Action);
}
oldDir = dir;
oldAction = acción;
Delay(100);
}