En este keypad podremos mostrar la información de debug desde los sensores, etc...
Esta es la libreria .
Este keykad tiene un conjunto de botones que permiten manejar el menú con facilidad llamando a la función : waitButton de ejemplo en el script:
int waitButton()
{
int buttonPressed;
waitReleaseButton;
lcd.blink();
while((buttonPressed=lcd.button())==KEYPAD_NONE)
{
}
delay(50);
lcd.noBlink();
return buttonPressed;
}
// esta función hay que llamarla justo después de procesar un botón para que
// no realice la misma acción hasta que se suelte y se vuelva a pulsar el botón
void waitReleaseButton()
{
delay(50);
while(lcd.button()!=KEYPAD_NONE)
{
}
delay(50);
}
Ejemplo:
buttonPressed=waitButton();
while(!(buttonPressed==KEYPAD_SELECT || buttonPressed==KEYPAD_UP || buttonPressed==KEYPAD_DOWN));
lcd.setCursor(0,1);
lcd.write(buttonPressed==KEYPAD_SELECT?1:' ');
lcd.write(' ');
lcd.write(buttonPressed==KEYPAD_UP?2:' ');
lcd.write(' ');
lcd.write(buttonPressed==KEYPAD_DOWN?3:' ');
delay(100);
waitReleaseButton();
if (buttonPressed==KEYPAD_UP)
{......Lo que se quiera hacer
Para imprimir en el lcd están las funciones:
lcd.print("Is it ");
lcd.setCursor(0,1);
El shield tiene duplicadas los pin digitales y analógicos. A un pin con PWM irá el serio para abrir y cerrar la barrera y los sensores de la presencia en la puerta de entrada y salida irán a uno analógico
El programa inicialmente debe mostrar en pantalla el estado del parking (puede mostrarse de la forma que se quiera o alternar valores)
P1--> ko p2-->PDTE
Vehículos :2
Significa que hay un coche aparcado y hay otro que acaba de entrar
P1--> ok p2-->ko
Vehículos :2
Significa que hay un coche aparcado y hay otro que acaba de salir de la plaza y aún no ha salido del parking
Cada plaza tendrá dos leds, indicando (por ahora) ocupado o libre. Deberá tener una función de calibración inicial que en condiciones de luz y con distintas posiciones del coche calcule los valores de offset y determine cuando hay vehículo y cuando esta vacío.
0- Calibrado de sensores, dependiendo de una entrada (botón, o jumper ) calibrar los sensores. Debe medir la luz en vacío, con un coche largo, corto, alto y bajo. Para elllo irá mostrando con impulsos el estado de la calibración (un impulso de los dos , para el primer caso, se pone a verde fijo cuando termina bien, si hay cualquier problema se pone a rojo y repite pasado 5 segundos. dos impulsos para el segundo caso , etc...
1-Modelar cada plaza con un arduino que determina en una salida digital (un led verde y uno rojo) si la plaza está ocupada , reservada o libre en base a los sensores de la plaza. La señal se debe tomar con técnicas de eliminación de ruido , probando varias de ellas y los parametros más indicados (media movil ,estadistica, etc...). Inicialmente se realizará con lógica CRISP (if valorSensor1 > 999 y valorSensor 2 < then.....)
No hay comentarios:
Publicar un comentario