Puntos de dos dígitos



UNIDAD EDUCATIVA PARTICULAR “POLITÉCNICO”
2do AÑO   - 2° AÑO DE BACHILLERATO “A”
TAREA # 1 –PUNTOS DE DOS DIGITOS
Nombre: Geanela Gliser Borbor Espinales                       Fecha: 30/09/17

  Puntos de dos dígitos

Las actividades que se han realizado durante todas estas semanas es agregarle un display de 7 segmentos al juego el snake donde nos demoramos dos clases en poner configuracion de arduino y conectar bien los pines del display al arduino, tuvimos dificultades porque en un indicio no sabiamos que pines le pertenecia a cada segmente y teniamos que agregar mas cantidad de numeros es decir mayores a 9 entonces, la unica opcion era que identifiquemos cual le pertenece a cada linea que se encendia con el numero de pines que se encuentra en el arduino. Esto me aporto a buscar una solucion al encontrar los pines al que pertenece cadaletra del abecdario, ademas tuvimos que cambiar un display porque se nos quemo en el primer intento de conectarlo por no ubicar correctamente la resistencia, estaba sobrepuesta, generando dificultades por otra parte los protoboards que se estan usando se encuentran muy usados y los huecos donde se ubican los cables y todo eso se encuentran desgastados y algunos han dejado de funcionar por eso se debe comprobar si funciona y seguir moviendo los puntos.


+

 

El código que se hizo fue:

boolean comido = false;
long comidaX;
long comidaY;

int ladoy = A0;
int ladox = A1;

int valor1;
int valor2;

int posX = 5;
int posY = 13;

int direccion = 0;
int punto = 12;
int

long time;

void setup() {
  //PINES DEL 2 AL 19 COMO SALIDA 
  for (int j = 2; j <= 17; j++)
    pinMode(j, OUTPUT);

  //APAGO LOS PINES LOS POSITIVOS LES MANDO LOW Y LOS NEGATIVOS LES MANDO HIGH
  for (int j = 10; j <= 17; j++) {
    pinMode(j, OUTPUT);
    digitalWrite(j, HIGH);
  }

/*display 1   */
  pinMode(18, OUTPUT);  //5
  pinMode(19, OUTPUT);//6
  pinMode(22, OUTPUT);//7
  pinMode(25, OUTPUT);//8
  pinMode(24, OUTPUT);//9
  pinMode(20, OUTPUT);//10
  pinMode(21, OUTPUT);//11

  for (int i = 18; i <= 25; i++) {
    digitalWrite(i,1);
  }

/*display 2   */
  pinMode(26, OUTPUT);  //5
  pinMode(27, OUTPUT);//6
  pinMode(28, OUTPUT);//7
  pinMode(29, OUTPUT);//8
  pinMode(30, OUTPUT);//9
  pinMode(31, OUTPUT);//10
  pinMode(32, OUTPUT);//11

  for (int i = 26; i <= 32; i++) {
    digitalWrite(i,1);
  }


  //digitalWrite(posX, HIGH);
  //digitalWrite(posY, LOW);
  randomSeed(analogRead(A3));
  direccion = 0;
  posX = 5;
  posY = 13;
  time = 0;
  generarComida();
}
void display (int a, int b, int c, int d, int e, int f, int g) {
  digitalWrite(18,a);   //5
  digitalWrite(19,b);   //6
  digitalWrite(20,c); //7
  digitalWrite(21,d);//8
  digitalWrite(22,e);//9
  digitalWrite(24,f);//10
  digitalWrite(25,g);//11
}
void displayDos (int a, int b, int c, int d, int e, int f, int g) {
  digitalWrite(28,a);   //5
  digitalWrite(32,b);   //6
  digitalWrite(26,c); //7
  digitalWrite(27,d);//8
  digitalWrite(30,e);//9
  digitalWrite(31,f);//10
  digitalWrite(29,g);//11
}
void loop() {
  digitalWrite(posX, HIGH);
  digitalWrite(posY, LOW);
  digitalWrite(posX, LOW);
  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 (1,1,1,1,1,1,0);//0 
         displayDos (0,0,0,0,0,0,0);//0
             break;
      case 1:
        display (0,1,1,0,0,0,0);//1
        displayDos (0,0,0,0,0,0,0);//0
       
        break;
      case 2:
        display (1,1,0,1,1,0,1);//2
         displayDos (0,0,0,0,0,0,0);//0
                break;
      case 3:
        display (1,1,1,1,0,0,1);//3
        displayDos (0,0,0,0,0,0,0);//0
       
        break;
      case 4:
        display (0,1,1,0,0,1,1);//4
         displayDos (0,0,0,0,0,0,0);//0
       
        break;
       case 5:
         display (1,0,1,1,0,1,1);//5
         displayDos (1,1,1,1,1,1,1);//0
        
        break;
        case 6:
         display (1,0,1,1,1,1,1);//6
         displayDos (0,0,0,0,0,0,0);//0
        
        break;
        case 7:
         display (1,1,1,0,0,0,0);//7
         displayDos (0,0,0,0,0,0,0);//0
        
        break;
        case 8:
         display (1,1,1,1,1,1,1);//8
         displayDos (0,0,0,0,0,0,0);//0
        
        break;
        case 9:
         display (1,1,1,0,0,1,1);//9
         displayDos (0,0,0,0,0,0,0);//0
        
        break;
        case 10:
          display (0,1,1,0,0,0,0);//1
          displayDos (1,1,1,1,1,1,0);//0

        break;
        case 11:
          display (0,1,1,0,0,0,0);//1
          displayDos (1,1,1,1,1,1,1);//1

           break;
        case 12:
          display (0,1,1,0,0,0,0);//1
          displayDos (0,0,1,0,0,0,0);//1

         case 13:
          display (0,1,1,0,0,0,0);//1
          displayDos (1,1,0,1,1,0,1);//2


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



En conclusion, para poder conectar todos los materiales que se requieren trabajar se debe verificar que todos funcionen correctamente y esten en buen estado poara que de esta manera no obtengan inconvenientes al encender o en mucho de los casos no lo reconocen del todo y se tiene que estar moviendo el proyecto mas de lo que se debe provocando en un futuro que los cables se aflojen de otras funciones y el proyecto se dañe, por otra parte, el display me ha aportado a que yo adquiera conocimientos sobre como uno puede poner un orden a cada pin que se asigne por ende facilitar el trabajo, los codigos fueron un poco complejos pero con la ayuda de la maestra se pudo mejorar la configuracion y ver los errores que estabamos hacinedo, de esta doema corregir, ademas de no volver a cometer lo mismo mas de una vez.

Comentarios

Entradas populares de este blog

Trabajo individual # 3

Trabajo individual # 3