#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//////////////////////////
/*
*/
|