Curso de Arduino y Robótica para automatizar tus inventos
Analiza el siguiente programa y conecta dos pulsadores, un led rojo y un led verde a la placa arduino.
Pasa el programa a la placa y observa su funcionamiento.
Se trata de un juego.
Responde a las siguientes preguntas:
¿ Que led está enciendido al iniciar el juego?
¿ Cuándo se apaga este led y se enciende el otro?
¿ Quién gana el juego ?
¿ Cómo sabemos quien gana ?
Posteriormente modificalo para que el tiempo de espera sea un valor aleatorio entre 3 y 6 segundos
/////////////////////////////////////// ////// BLOQUE DE DECLARACIÓN ////////// /////////////////////////////////////// // #defines de la shell que estemos utilizando #define D0 11 #define D1 10 #define D2 9 #define D3 6 #define D4 5 #define D5 3 // #defines genéricos #define APAGADO 0 #define ENCENDIDO 1 #define SALIDA 1 // #defines de los pines usados #define PIN_LED_ROJO D1 #define PIN_LED_VERDE D2 #define PIN_PULSADOR_J1 D3 #define PIN_PULSADOR_J2 D4 ///////////////////////////////////////// ////// BLOQUE DE INICIALIZACIÓN ///////// ///////////////////////////////////////// void setup() { pinMode(PIN_LED_ROJO , SALIDA); pinMode(PIN_LED_VERDE , SALIDA); // aqui puedes usar randomSeed(analogRead(A2)); } // fin de void setup() //////////////////////////////////////// ////// BLOQUE DE PROGRAMA ////////////// //////////////////////////////////////// void loop() { // Enciende los dos leds digitalWrite(PIN_LED_ROJO , ENCENDIDO); digitalWrite(PIN_LED_VERDE , ENCENDIDO); // Espera un tiempo aleatorio int tiempo = 3000; delay(tiempo); // Apaga los dos leds digitalWrite(PIN_LED_ROJO , APAGADO); digitalWrite(PIN_LED_VERDE , APAGADO); // Comienza un bucle de espera hasta que el pulsador sea presionado int valor_pulsado_j1 = 0; int valor_pulsado_j2 = 0; while (valor_pulsado_j1 == 0 && valor_pulsado_j2 == 0 ) { valor_pulsado_j1 = digitalRead(PIN_PULSADOR_J1 ); valor_pulsado_j2 = digitalRead(PIN_PULSADOR_J2 ); delay(50); } // fin del bucle while // Discrimina cual es el jugador que ha pulsado // en caso contrario se enciende el led verde if (valor_pulsado_j1 == ENCENDIDO) { digitalWrite(PIN_LED_ROJO , ENCENDIDO); digitalWrite(PIN_LED_VERDE , APAGADO); } else { digitalWrite(PIN_LED_ROJO , APAGADO); digitalWrite(PIN_LED_VERDE , ENCENDIDO); } // espera 5 segundos para comenzar una nueva partida. delay(5000); } // fin de void loop()
Copyright © 2015 - Todos los derechos reservados - Arduino Inventor
Plantilla : OS Templates