Created
August 3, 2017 03:39
-
-
Save davidae1704/56dcdec238f0caba226c8ca3c32101c5 to your computer and use it in GitHub Desktop.
programa para arduino con función de interfaz para proyecto de concurso de preguntas
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*En el siguiente código se establecerá un protocolo de comunicación seríal entre nuestro Arduino | |
* y una PC para intercambio de información con respecto a las funciones y tareas que Arduino desempeñará | |
* detectar cual boton, de entre 3 botones, ha sido presionado primero e informarle a la PC sobre dicho | |
* dato para saber que concursante responderá primero | |
*/ | |
// se declaran las variables a usar | |
int jugador1=3; | |
int jugador2=4; | |
int jugador3=5; | |
int jugador4=6; | |
int estado1=0; | |
int estado2=0; | |
int estado3=0; | |
int estado4=0; | |
boolean g1; | |
boolean g2; | |
boolean g3; | |
boolean g4; | |
char confirmacion; | |
int reset=0; | |
void setup() { | |
// sección para configurar pines a usar en nuestro arduino y habilitar la comunicación serial | |
pinMode(jugador1, INPUT); | |
pinMode(jugador2, INPUT); | |
pinMode(jugador3, INPUT); | |
pinMode(jugador4, INPUT); | |
pinMode(13, OUTPUT); | |
pinMode(7, INPUT); | |
//iniciamos nuestro puerto serial | |
Serial.begin(9600); | |
//los 9600 es la velocidad en baudios a la que se comunicará nuestro arduino con la computadora | |
while(!Serial){ | |
//espera a que se conecte el puerto serial a la PC | |
} | |
} | |
void loop() { | |
// código principal donde se establecerán las funciones que realizará nuestro arduino | |
//Se realiza lectura de entradas a usar | |
estado1=digitalRead(jugador1); | |
estado2=digitalRead(jugador2); | |
estado3=digitalRead(jugador3); | |
estado4=digitalRead(jugador4); | |
//rutina de comprobación | |
if(estado1 == HIGH){ | |
digitalWrite(13, HIGH); | |
delay(500);// retardo de medio segundo para evitar que las pulsaciones de los demás jugadores sean percibidas | |
digitalWrite(13, LOW); | |
Serial.println('a');// envío de parámetro de respuesta de jugador 1 | |
//bucle de espera por confirmación para jugador 1 | |
do{ | |
delay(50);//retardo de 50 milisegundos luego de enviado parámetro de respuesta para jugador 1 | |
//verifica boton de reset | |
reset=digitalRead(7); | |
if(reset == HIGH){ | |
confirmacion = 'p'; | |
//envía señal de reset a la PC | |
Serial.println('r'); | |
} | |
else{ | |
//lee del puerto la confirmación para el jugador 1 | |
confirmacion = Serial.read(); | |
} | |
}while(confirmacion != 'p'); | |
//al recibir confirmación por parte de la PC la variable "confirmacion" es borrada | |
confirmacion = ' '; | |
} | |
else if(estado2 == HIGH){ | |
digitalWrite(13, HIGH); | |
delay(500);// retardo de medio segundo para evitar que las pulsaciones de los demás jugadores sean percibidas | |
digitalWrite(13, LOW); | |
Serial.println('b');// envío de parámetro de respuesta de jugador 2 | |
do{ | |
delay(50);//retardo de 50 milisegundos luego de enviado parámetro de respuesta para jugador 2 | |
//verifica boton de reset | |
reset=digitalRead(7); | |
if(reset == HIGH){ | |
confirmacion = 'p'; | |
//envía señal de reset a la PC | |
Serial.println('r'); | |
} | |
else{ | |
//lee del puerto la confirmación para el jugador 2 | |
confirmacion = Serial.read(); | |
} | |
}while(confirmacion != 'p'); | |
//al recibir confirmación por parte de la PC la variable "confirmacion" es borrada | |
confirmacion = ' '; | |
} | |
else if(estado3 == HIGH){ | |
digitalWrite(13, HIGH); | |
delay(500);// retardo de medio segundo para evitar que las pulsaciones de los demás jugadores sean percibidas | |
digitalWrite(13, LOW); | |
Serial.println('c');// envío de parámetro de respuesta de jugador 3 | |
do{ | |
delay(50);//retardo de 50 milisegundos luego de enviado parámetro de respuesta para jugador 3 | |
//verifica boton de reset | |
reset=digitalRead(7); | |
if(reset == HIGH){ | |
confirmacion = 'p'; | |
//envía señal de reset a la PC | |
Serial.println('r'); | |
} | |
else{ | |
//lee del puerto la confirmación para el jugador 3 | |
confirmacion = Serial.read(); | |
} | |
}while(confirmacion != 'p'); | |
//al recibir confirmación por parte de la PC la variable "confirmacion" es borrada | |
confirmacion = ' '; | |
} | |
else if(estado4 == HIGH){ | |
digitalWrite(13, HIGH); | |
delay(500);// retardo de medio segundo para evitar que las pulsaciones de los demás jugadores sean percibidas | |
digitalWrite(13, LOW); | |
Serial.println('d');// envío de parámetro de respuesta de jugador 4 | |
do{ | |
delay(50);//retardo de 50 milisegundos luego de enviado parámetro de respuesta para jugador 4 | |
//verifica boton de reset | |
reset = digitalRead(7); | |
if(reset == HIGH){ | |
confirmacion = 'p'; | |
//envía señal de reset a la PC | |
Serial.println('r'); | |
} | |
else{ | |
//lee del puerto la confirmación para el jugador 4 | |
confirmacion = Serial.read(); | |
} | |
}while(confirmacion != 'p'); | |
//al recibir confirmación por parte de la PC la variable "confirmacion" es borrada | |
confirmacion = ' '; | |
} | |
else{ | |
delay(10);// retardo de 10 milisegundos como espera en caso de no estar recibiendo nada por parte de los botones ni de la PC | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment