buenas les comento mi problemilla...
tengo armado al Arduino deminueve un controlado de un jostick de una Xbox360, que necesito que ejecute unos comando, haga una temporizacion y vuelva a ejecutar unos comandos...
Si divido el programas en partes seria basicamente
Inicia, temporiza, termina,
/*
Contol de xbox360
Por xeleneo.com.ar
*/
// set pin numbers:
const int Coin = 2;
const int Time1 = 10;
const int Time2 = 11;
const int ledPin = 13;
const int BotonA = 6;
const int Xbox = 5;
const int BotonUp = 3;
const int Trafo = 4;
// variables will change:
int CoinState = 0; // variable for reading the pushbutton status
int Contador = 0; //
boolean run = false;
int Time1State = 0;
int Time2State = 0;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(BotonA, OUTPUT);
pinMode(Xbox, OUTPUT);
pinMode(BotonUp, OUTPUT);
pinMode(Trafo, OUTPUT);
pinMode(Coin, INPUT);
pinMode(Time1, INPUT);
pinMode(Time2, INPUT);
}
void loop(){
CoinState = digitalRead(Coin); // Leer estado del Coin
Time1State = digitalRead(Time1);
Time2State = digitalRead(Time2);
if (CoinState == HIGH) {
if (Time1State == HIGH){
Contador = Contador + 300;
Serial.print("Time1 \n");
} else{
if (Time2State == HIGH){
Contador = Contador + 400;
Serial.print("Time2 \n");
} else{
Contador = Contador + 500;
Serial.print("Time3 \n");
}// end Time3
}
//Arriba();
digitalWrite(ledPin, HIGH);
digitalWrite(BotonA, HIGH);
delay(50);
digitalWrite(BotonA, LOW);
digitalWrite(Trafo, HIGH);
Serial.print("Coin \n");
run = true;
}
if (run == true) {
if (Contador > 1 ){
Contador = Contador -- ;
Serial.print("\n Contador: ");
Serial.print(Contador);
delay (100);
} else {
Serial.print("\nSecuancia apagado \n");
run = false;
SecuenciaApagado();
delay(100);
Serial.print("\nApaga Trafo \n");
digitalWrite(Trafo, LOW);
digitalWrite(ledPin, LOW);
} // Fin contador
} //Fin del run
}//Fin del LOOP
int SecuenciaApagado(){
digitalWrite(ledPin, LOW);
digitalWrite(Xbox, HIGH);
delay(50);
digitalWrite(Xbox, LOW);
delay(1000);
digitalWrite(BotonA, HIGH);
delay(50);
digitalWrite(BotonA, LOW);
delay(1000);
Arriba();
delay(1000);
digitalWrite(BotonA, HIGH);
delay(500);
digitalWrite(BotonA, LOW);
}
int Arriba(){
digitalWrite(BotonUp, HIGH);
delay(50);
digitalWrite(BotonUp, LOW);
}
Pasa que cuando corre el prog en el arduino, la funcion de Ariba() no da respuesta, originalmente estaba en la misma funcion de SecuenciaApagado() y tampoco respondia en ese punto,
Los circuitos por separado funcionan bien, de hecho si saco la funcion y la pongo al principio del prog funciona correctamente, pero no donde la necesito.
Alguna idea? :o