| #include <Keypad.h>
char pulsacion;
int numero;
int pulsacion1;
const byte Filas = 4;
const byte columnas = 3;
byte Pins_Filas[Filas] = {17, 16, 15, 14};
byte Pins_Columnas[columnas] = {13, 12, 11};//Pines 5 = 16, 6 = 15, 7 = 14, y 8 = 17 en caso de haber. 
char Teclas[Filas][columnas] = {
  {'1', '2', '3'},
  {'4', '5', '6'},
  {'7', '8', '9'},
  {'*', '0', '#'}
};
Keypad Teclado1 = Keypad(makeKeymap(Teclas), Pins_Filas, Pins_Columnas, Filas, columnas);
int disparo = 9;
int eco1 = 10;//Izquierda
int eco2 = 8;//Derecha
unsigned long contador = 0;
float distancia1;
float distancia2;
float lee_distancia(char pin)
  {
  float calculo;
  digitalWrite(disparo, HIGH);
  delay(1);
  digitalWrite(disparo, LOW);
  contador = pulseIn(pin, HIGH);
  calculo = (float) contador * 0.0343 / 2.0;
  return (calculo);
}
int alarma = 2;
int conteo = 0;
int boton = A4;
int reset = 0;
int i;
int cant;
int x, y;
float tempC;
  double pinLM35 = A5;
  int indice;
void setup() {
  pinMode(eco1, INPUT);
  pinMode(eco2, INPUT);
  pinMode(disparo, OUTPUT);
  digitalWrite(disparo, LOW);
  pinMode (eco1, INPUT);
  pinMode (eco2, INPUT);
  
  pinMode (reset, INPUT);
  pinMode (alarma, OUTPUT);
  pinMode (alarma, LOW);
  
  Serial.begin(9600);
  Serial.println();
  Serial.println("		| PROYECTO |");//Se puede cambiar el nombre
  Serial.println();
  delay(1000);    
}
void loop() {   
  
  while (x == 0){
  Serial.print("Ingrese la ");
  Serial.print("cantidad limite de alumnos:");
  delay(1000);
    y = 0; 
    while (y == 0){
    for (i = 7; i < 9; i++) {
    char pulsacion;
    pulsacion = Teclado1.waitForKey(); 
    Serial.print(pulsacion);            
      switch (pulsacion) {            
        case '1': pulsacion1 = 1;
          break;
        case '2': pulsacion1 = 2;
          break;
        case '3': pulsacion1 = 3;
          break;
        case '4': pulsacion1 = 4;
          break;
        case '5': pulsacion1 = 5;
          break;
        case '6': pulsacion1 = 6;
          break;
        case '7': pulsacion1 = 7;
          break;
        case '8': pulsacion1 = 8;
          break;
        case '9': pulsacion1 = 9;
          break;
        case '0': pulsacion1 = 0;
      }
      switch (i) {
        case 7: cant = pulsacion1 * 10;  
          break;
        case 8: cant = cant + pulsacion1;
          break;
       
      }
    delay(500);
    }
      if (cant < 41){
        Serial.println();
        y = 1;
      }else{
        Serial.println();
        Serial.println();
        Serial.println("		ERROR");
        Serial.println("	 Rango maximo: 0 - 40 ");
        Serial.println();
        Serial.print("Ingrese la ");
        Serial.print("cantidad limite de alumnos:");
       y = 0; 
      }
    }//Final del while
    
    x = 1;
   if (x == 1) break; 
  }
  
  reset = analogRead(boton);
  
  if (reset > 0){
   conteo = 0; 
  }
  if (conteo > cant){
  pinMode(alarma, HIGH);
    Serial.print("* Limite de alumnos superado, ");
    Serial.println("favor de retirar al ultimo alumno *");
  }else{
  pinMode(alarma, LOW);
  }
  
  distancia1 = lee_distancia(eco1);  
  delay(50);
  
  distancia2 = lee_distancia(eco2);  
  delay(50);
    
   if (distancia1 <= 100 && distancia1 >= 0){
    conteo = conteo + 1;
     delay(1000);
  }
  if (distancia2 <= 100 && distancia2 >= 0){
    conteo = conteo - 1;
     delay(1000);
  } 
  
  if (conteo <= 0) conteo = 0;  
  
  Serial.print("Alumnos:");
  Serial.print(conteo);
  Serial.print("/");
  Serial.print(cant);
  Serial.print("	|  ");
  delay(1000);
  
  tempC = analogRead(pinLM35);  
  tempC = ((tempC * 1750) / 1200)/14;
  Serial.println("Temperatura:" + String(tempC) + " 'C");
  delay(500);
  
  if (tempC < 36.1 || tempC > 37.2){
    pinMode(alarma, HIGH);
    delay(200);
    pinMode(alarma, LOW);
    delay(200);
    pinMode(alarma, HIGH);
    delay(200);
    pinMode(alarma, LOW);
    delay(200);
    pinMode(alarma, HIGH);
    delay(200);
    pinMode(alarma, LOW);
    delay(200);
    Serial.println();
    Serial.println(" Temperatura fuera del rango de tolerancia ");
    Serial.println();
  }
    
}//Fin del loop
//////////////////////////////NOTAS//////////////////////////
 /*
 */
 |