SIMULADOR DE PENALTIS
DATOS
Alumno: Alberto Martín Mateos
Asignatura: Innovación Docente de la Especialidad de Tecnología
Máster: Máster Universitario en Profesor de Educación Secundaria Obligatoria y Bachillerato, Formación Profesional y Enseñanza de Idiomas
Centro: Universidad de Salamanca
Curso: 2021/2022
CONTEXTO
El simulador de penaltis es un proyecto elaborado con Arduino que podría incluirse en la asignatura de Control y Robótica de 3ºESO. Comentar que este proyecto trabaja la ODS de innovación al utilizar nuevas tecnologías y aplicar la robótica a los fundamentos de electrónica explicados en asignaturas de cursos anteriores.
Para su elaboración, se han utilizado diferentes elementos que se explican en el vídeo ilustrativo junto con la explicación de su funcionamiento.
ESQUEMA DEL CIRCUITO
A continuación, se muestra el diseño elaborado con Thinkercad y el código utilizado para su implementación. Hay que comentar que los Josticks en esta plataforma se simulan con dos potenciómetros que van a ser los ejes X e Y.
MATERIALES UTILIZADOS
- Placa Arduino Uno
- Protoboard
- LED verde
- LED Rojo
- 2 resistencias de 220Ω
- 1Zumbador pasivo
- 2 Josticks
- Pantalla LCD
- Potenciómetro controlador de pantalla LCD
- Cables para el circuito
- Cable puerto USB
IMÁGENES DEL CIRUITO
Por último, se muestran unas imágenes del circuito.
CÓDIGO DE LA APLICACIÓN
//Simulador de penaltis
//Alberto Martín Mateos
//Incluir libreria de la pantalla LCD
#include <LiquidCrystal.h>
// Inicializar la libreria con los números de los pins correspondientes
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
const int buzzer = 2 // Variable para definir el pin digital de salida del buzzer activo
const int X_pin_j1 = A0; // Variable para definir el pin analogico conectado a la salida de direccion X del J1
const int Y_pin_j1 = A1; // Variable para definir el pin analogico conectado a la salida de direccion y del J1
const int X_pin_j2 = A2; // Variable para definir el pin analogico conectado a la salida de direccion X del J2
const int Y_pin_j2 = A3; // Variable para definir el pin analogico conectado a la salida de direccion Y del J2
int value_Y_pin_j1=0;// Variable para guardar el valor de la coordenada Y del jostick J1
int value_Y_pin_j2=0;// Variable para guardar el valor de la coordenada Y del jostick J2
void setup() {
pinMode(3, OUTPUT);//Inicializar un LED como pin de salida
pinMode(4, OUTPUT); //Inicializar un LED como pin de salida
pinMode(buzzer,OUTPUT);//Inicializar el buzzer como pin de salidai
pinMode(SW_pin_j1, INPUT); // Inicializar el Switch del J1 como entrada
pinMode(SW_pin_j2, INPUT); // Inicializar el Switch del J2 como entrada
lcd.begin(16, 2); //Configurar el numero de columnas y filas de la pantalla LCD
lcd.print("Tanda de penaltis"); // Imprimir el mensaje en la pantalla LCD
Serial.begin(9600);
}
void loop() {
lcd.setCursor(0, 1); //Se selecciona la segunda linea de la pantalla LCD
lcd.print("Dispare!");
delay(2000);
value_Y_pin_j1 =analogRead(Y_pin_j1); //Recoge el valor de la dirección Y del jostick J1
value_Y_pin_j2 =analogRead(Y_pin_j2); //Recoge el valor de la dirección Y del jostick J2
lcd.setCursor(0, 1);//Se selecciona la segunda linea de la pantalla LCD
//Comprobación de la posición de los dos josticks. En caso de que la dirección sea la misma, se para el penalti.
//Si no tienen la misma dirección los dos josticks, será gol
if(value_Y_pin_j1 <400 && value_Y_pin_j2 <400){
lcd.print("Parada!!");
}
else if(value_Y_pin_j1 <1300 && value_Y_pin_j1 >600 && value_Y_pin_j2 <1300 && value_Y_pin_j2 >600){
lcd.print("Parada!!");
}
else if(value_Y_pin_j1 <570 && value_Y_pin_j1 >450 && value_Y_pin_j2 <570&& value_Y_pin_j2 >450){
lcd.print("Parada!!");
}
else{
lcd.print("Gool!!!!");
int var = 0;
//Cuando se marca gol, suena 30 veces el buzzer y se encienden y apagan los LEDS
while(var < 30){
digitalWrite(3, HIGH); // Encender el LED Verde del pin 3
digitalWrite(4, HIGH); // Encendder el LED Rojo del pin 4
digitalWrite(buzzer,HIGH); // Encender el Buzzer
delay(50);
digitalWrite(3, LOW); // Apagar el LED Verde del pin 3
digitalWrite(4, LOW); // Apagar el LED Rojo del pin 4
digitalWrite(buzzer,LOW); // Apagar el buzzer
delay(50);
var++;
}
}
}
No hay comentarios:
Publicar un comentario