MAESTRO-LANTESTER

#include <LiquidCrystal.h>
//libreria del lcd 16x2

//pines del LCD 16x2

LiquidCrystal  lcd(7, 6, 5, 4, 3, 2);

/*
    FUNCIONES BASICAS DEL LCD 16X2:

   - POSICION DE ESCRITURA
    lcd.setCursor(columna,fila);

   - ESCRIBIR
    lcd.print(dato);

   - LIMPIAR PANTALLA
    lcd.clear();
*/
//pines de LECTURA
int extremoa[] = {37, 35, 33, 31, 29, 27, 25, 23};
//pines del rj45 extremo "b"
int falla[] = {36, 34, 32, 30, 28, 26, 24, 22};
//pines de falla
int extremob[] = {53, 51, 49, 47, 45, 43, 41, 39};
//pines del rj45 extremo "a"000
int lectura[] = {44, 46, 42, 48, 40, 50, 38, 52};

int almacen1[] = {0, 0, 0, 0, 0, 0, 0, 0};
int almacen2[] = {1, 2, 3, 4, 5, 6, 7, 8};
//tipo b       = (3, 6, 1, 4, 5, 2, 7, 8)

char eter[]={1,2,3,'X','X',6,'X','X'};//cable de internet

void setup() {
  //Dimension del lcd
  lcd.begin(16, 2);
  lcd.setCursor(3, 0);
  lcd.print("LAN TESTER");
  delay(1000);
  lcd.clear();
  pinMode(extremoa[0], OUTPUT); pinMode(extremoa[1], OUTPUT);
  pinMode(extremoa[2], OUTPUT); pinMode(extremoa[3], OUTPUT);
  pinMode(extremoa[4], OUTPUT); pinMode(extremoa[5], OUTPUT);
  pinMode(extremoa[6], OUTPUT); pinMode(extremoa[7], OUTPUT);

  pinMode(extremob[0], OUTPUT); pinMode(extremob[1], OUTPUT);
  pinMode(extremob[2], OUTPUT); pinMode(extremob[3], OUTPUT);
  pinMode(extremob[4], OUTPUT); pinMode(extremob[5], OUTPUT);
  pinMode(extremob[6], OUTPUT); pinMode(extremob[7], OUTPUT);

  pinMode(falla[0], OUTPUT); pinMode(falla[1], OUTPUT);
  pinMode(falla[2], OUTPUT); pinMode(falla[3], OUTPUT);
  pinMode(falla[4], OUTPUT); pinMode(falla[5], OUTPUT);
  pinMode(falla[6], OUTPUT); pinMode(falla[7], OUTPUT);

  pinMode(lectura[0], INPUT); pinMode(lectura[1], INPUT);
  pinMode(lectura[2], INPUT); pinMode(lectura[3], INPUT);
  pinMode(lectura[4], INPUT); pinMode(lectura[5], INPUT);
  pinMode(lectura[6], INPUT); pinMode(lectura[7], INPUT);

  pinMode(A15, INPUT);
  pinMode(A9, INPUT);
  pinMode(A2, INPUT);
}
int internet=0;
int conect = 0;
int conect1 = 0;
int conect2 = 0;
int estado = 0;
int funcion = 0;
int pin = 1;
int tipo = 0;
int tipob = 0;
int extra = 0;
int comienzo = 0;
void loop() {
  conect1 = digitalRead(A15);
  conect2 = digitalRead(A2);
  if (conect2 == 1) {
    conect = 2;
  }
  if (conect1 == 1) {
    conect = 1;
  }
  /* if (conect1 == 0 && conect2 == 0) {
    /*  conect = 0;
    /* }*/
  switch (conect) {
    case (2): {
        estado = 3;

        break;
      }
    case (1): {
        estado = 1;

        break;
      }
    case (0): {
        estado = 0;
        lcd.setCursor(2, 0);
        lcd.print("CONECTE EL");
        lcd.setCursor(2, 1);
        lcd.print("EXTREMO 'A'");
        delay(15);
        lcd.clear();
        break;
      }
  }
  if (estado == 1 ) {
    for (int i = 0; i < 8; i++) {
      if (digitalRead(lectura[i]) == 1) {
        comienzo++;
      }
    }
    if (comienzo > 0) {
      estado = 2;
      comienzo = 0;
    }
    else {
      lcd.setCursor(2, 0);
      lcd.print("CONECTE EL");
      lcd.setCursor(2, 1);
      lcd.print("EXTREMO 'B'");
      delay(15);
      lcd.clear();
      conect1 = digitalRead(A15);
      if (conect1 == 1) {

      }
      else{
        estado = 0;
        conect = 0;
        }
    }
  }
  if (estado == 2) {
    for (int j = 0; j < 8; j++) {
      digitalWrite(extremob[j], HIGH);
      lcd.setCursor(j, 0);
      lcd.print(pin);
      for (int i = 0; i < 8; i++) {
        if (digitalRead(lectura[i]) == 1) {
          almacen1[i] = pin;
        }
      }
      delay(300);
      pin ++;
    }
    pin = 1;
    for (int i = 0; i < 8; i++) {
      if (almacen1[i] > 0) {
        lcd.setCursor(i, 1);
        lcd.print(almacen1[i]);
        digitalWrite(extremoa[almacen1[i] - 1], HIGH);
      }
      else {
        if (almacen1[i] == 0) {
          lcd.setCursor(i, 1);
          lcd.print("X");
          digitalWrite(falla[i], HIGH);
        }
      }
    }
    for (int i = 0; i < 8; i++) {
      if (almacen1[i] == almacen2[i]) {
        tipo ++;
      }
    }
    if (tipo < 5) {
      if (almacen1[0] == almacen2[2]) {
        tipob ++;
      }
      if (almacen1[1] == almacen2[5]) {
        tipob ++;
      }
      if (almacen1[2] == almacen2[0]) {
        tipob ++;
      }
      if (almacen1[5] == almacen2[1]) {
        tipob ++;
      }
    }
    if (tipob > 4) {
      lcd.setCursor(10, 0);
      lcd.print("CABLE");
      lcd.setCursor(9, 1);
      lcd.print("CRUZADO"); 
    }
    else {
      if (tipo > 4) {
        lcd.setCursor(10, 0);
        lcd.print("CABLE");
        lcd.setCursor(9, 1);
        lcd.print("DIRECTO");

      }
      else {
          for (int i = 0; i < 8; i++) {
      if (almacen1[i] == eter[i]) {
        internet ++;
      }
    }
        if(internet>3){
          lcd.setCursor(10, 0);
        lcd.print("CABLE");
        lcd.setCursor(8, 1);
        lcd.print("INTERNET");
          }
        else{
        lcd.setCursor(10, 0);
        lcd.print("DAnO");
        lcd.setCursor(9, 1);
        lcd.print("EXTREMO");
        }
      }
      
    }
    delay(8000);
    internet=0;
    conect = 0;
    for (int i = 0; i < 8; i++) {
      //pines del rj45 extremo "b"
      digitalWrite(extremob[i], LOW);
      //pines del rj45 extremo "a"
      digitalWrite(extremoa[i], LOW);
      //pines de falla
      digitalWrite(falla[i], LOW);
      //pines del almacen
      almacen1[i] = 0;
    }


  }
  if (estado == 3) {
    double largo;
    for (int i = 0; i < 1024; i++) {
      largo += analogRead(A9);
    }
    largo = largo / 1024;
    largo = 1023 - (largo);
    largo = (largo / 7) / 2;
    largo = largo * 3;
    lcd.setCursor(1, 0);
    lcd.print("LARGO DE CABLE");
    lcd.setCursor(1, 1);
    lcd.print(largo);
    lcd.setCursor(10, 1);
    lcd.print("METROS");
    delay(300);
    conect = 0;
  }
  tipo = 0;
  tipob = 0;
  lcd.clear();
  estado = 0;
}

No hay comentarios.:

Publicar un comentario