viernes, 15 de septiembre de 2017

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;
}

No hay comentarios.:

Publicar un comentario