#include ///entradas const int buttonPinFire = 2; /////sensor de choque const int en = 4 ; ///// boton activar espada const int sim = 6 ; //// sensor de movimiento ///// salidas a los transistores const int tercero = 10; const int cuarto = 11; const int quinto = 12; ////// variables int mo = 0; int mov2 = 0; int comando = 0; int choque = 0; int estado = 0; int sword = 0; void setup(){ /// configuración Serial.begin(9600); pinMode(tercero, OUTPUT);//// declaración de pin como salida pinMode(cuarto, OUTPUT); pinMode(quinto, OUTPUT); sword = 0; /// declaración de variable pinMode(buttonPinFire, INPUT); /// declaración de pin como entrada pinMode(sim, INPUT); pinMode(en, INPUT); ///// configuracion modulo de audio respecto al nivel de sonido Serial.write(0x7E); Serial.write(0x03); Serial.write(0xA7); Serial.write(0x1A); // volume max es el 1F Serial.write(0x7E); ///// // start sound, este sonido aparece al encender el sistema Serial.write(0x7E); Serial.write(0x04); Serial.write(0xA0); // A0 for SD card Serial.write((byte)0x00); Serial.write(0x05); // numero del orden de lista Serial.write(0x7E); delay(300); } void loop(){ //// vuelta a configurar el nivel audio Serial.write(0x7E); Serial.write(0x03); Serial.write(0xA7); Serial.write(0x1C); // volume max 1F Serial.write(0x7E); estado = digitalRead(en); //// la variable estado tendrá el mismo valor que tenga la entrada en, la cual es el pulsador que enciende /apaga el sable if (estado == HIGH) { if (sword == 0) { /// sección encendido espada delay (10); ////reproducción audio encendido Serial.write(0x7E); Serial.write(0x04); Serial.write(0xA0); // A0 for SD card Serial.write((byte)0x00); Serial.write(0x06); // track number Serial.write(0x7E); sword = 1; delay(550); digitalWrite(tercero, HIGH); delay (550); digitalWrite(cuarto, HIGH); digitalWrite(quinto, HIGH); delay(700); goto tab; } else { /// sección apagar espada delay(10); ////reproducción audio apagado Serial.write(0x7E); Serial.write(0x04); Serial.write(0xA0); // A0 for SD card Serial.write((byte)0x00); Serial.write(0x01); // track number Serial.write(0x7E); sword = 0; delay(1100); digitalWrite(quinto, LOW); delay (50); digitalWrite(cuarto, LOW); digitalWrite(tercero, LOW); delay(1300); } } else{ ////espada encendida------------------------------------------------------------------------------------- if (sword == 1) { tab: delay (150); Serial.write(0x7E); Serial.write(0x04); Serial.write(0xA0); // A0 for SD card Serial.write((byte)0x00); Serial.write(0x02); // track number Serial.write(0x7E); while(estado == LOW){ delay (5); //////Sección detección movimiento comando = digitalRead(sim); if (comando == HIGH) { delay (15); comando = digitalRead(sim); if (comando == LOW) { if ( mov2 ==1){ Serial.write(0x7E); Serial.write(0x04); Serial.write(0xA0); // A0 for SD card Serial.write((byte)0x00); Serial.write(0x03); // track number Serial.write(0x7E); mov2 = 0; delay (600); goto tab; } else{ Serial.write(0x7E); Serial.write(0x04); Serial.write(0xA0); // A0 for SD card Serial.write((byte)0x00); Serial.write(0x04); // track number Serial.write(0x7E); mov2 = 1; delay (600); goto tab; } } } if (comando == LOW) { delay (5); comando = digitalRead(sim); if (comando == HIGH) { if ( mov2 ==1){ Serial.write(0x7E); Serial.write(0x04); Serial.write(0xA0); // A0 for SD card Serial.write((byte)0x00); Serial.write(0x03); // track number Serial.write(0x7E); mov2 = 0; delay (600); goto tab; } else{ Serial.write(0x7E); Serial.write(0x04); Serial.write(0xA0); // A0 for SD card Serial.write((byte)0x00); Serial.write(0x04); // track number Serial.write(0x7E); mov2 = 1; delay (600); goto tab; } } } ///////////////sección choque delay (5); choque = digitalRead(buttonPinFire);///////caso de choque if (choque == HIGH) { Serial.write(0x7E); Serial.write(0x04); Serial.write(0xA0); // A0 for SD card Serial.write((byte)0x00); Serial.write(0x05); // track number Serial.write(0x7E); delay (600); goto tab; }//////////////////////////////////////// delay (15); estado = digitalRead(en); // --------------------------------------------------------------------------------------------------------------- } } else { delay(300); } } delay(100); }