En la clase del día viernes 8 de
septiembre, llevamos a cabo la continuación del proyecto quimestral del examen
del primer quimestre. En esta jornada, volvimos a revisar el proyecto ya que anteriormente
habíamos dejado pasar el hecho de que tenía pequeños errores en el display de 7
segmentos y los arreglamos a través de
la respectiva programación en el programa de Arduino final que nos había dado
la profesora anterior. Nuestra siguiente tarea fue añadir otro display de 7
segmentos al proyecto, lo empezamos desde el pin 28, al percatarnos que en el Arduino
mega los pines de 3v y 5v ya estaban ocupados en el joystick y en el display de
7 segmentos. Hicimos la misma conexión al igual que con el anterior, sin
embargo, nos percatamos de que no funcionaba correctamente y le indicamos a la
miss que no nos había salido la práctica de este día y ella nos indicó que no
había problema ya que en la siguiente clase continuaríamos.
Considero que debo adquirir mayor
práctica y agilidad en la manipulación del dislpay de 7 segmentos ya que no
entiendo correctamente o en su totalidad el funcionamiento o programación de
este.
Esta práctica aprendí que la
cantidad de display de 7 segmentos puede ser colocado en el protoboard es más
de uno y que puedo lograr que marque el número de comidas que la serpiente del
juego ingiere. Además, puedo lograr que otro display también marque el número
de vidas que la serpiente va perdiendo.
Código utilizado:
digitalWrite(posY, HIGH);
digitalWrite(comidaX, HIGH);
digitalWrite(comidaY, LOW);
digitalWrite(comidaX, LOW);
digitalWrite(comidaY, HIGH);
if(millis() >= time+150){
valor1 = analogRead(ladox);
valor2 = analogRead(ladoy);
time = millis();
if (valor1 > 700) {
direccion = 0;
} else {
if (valor1 < 400)
direccion = 1;
}
if (valor2 > 700) {
direccion = 2;
} else {
if (valor2 < 400)
direccion = 3;
}
if (direccion == 0) {
if (posX == 9)
posX = 2;
else
posX++;//posX = posX + 1;
} else {
if (direccion == 1) {
if (posX == 2)
posX = 9;
else
posX--;//posX = posX - 1;
}
}
if (direccion == 2) {
if (posY == 17)
posY = 10;
else
posY++;
} else {
if (direccion == 3) {
if (posY == 10)
posY = 17;
else
posY--;
}
}
if (comido == true) {
punto++;
generarComida();
}
//prendo el led comida
//digitalWrite(comidaX, HIGH);
//digitalWrite(comidaY, LOW);
switch (punto) {
case 0:
display (0,0,0,0,0,0,1);//0
break;
case 1:
display (1,0,0,1,1,1,1);//1
break;
case 2:
display (0,0,1,0,0,1,0);//2
break;
case 3:
display (0,0,0,0,1,1,0);//3
break;
case 4:
display (1,0,0,1,1,0,0);//4
break;
case 5:
display (0,1,0,0,1,0,0);//5
break;
case 6:
display (0,1,0,0,0,0,0);//6
break;
case 7:
display (0,0,0,1,1,1,1);//7
break;
case 8:
display (0,0,0,0,0,0,0);//8
break;
case 9:
display (0,0,0,1,1,0,0);//9
break;
}
if (posX == comidaX && posY == comidaY) {
comido = true;
}
}
}
void generarComida() {
do {
comidaX = random(2, 9);
} while (comidaX == posX);
do {
comidaY = random(10, 17);
} while (comidaY == posY);
comido = false;
}