Turnero digital con PIC


Este equipo es muy común en toda clase de lugar donde se atienda al público y se desee mantener un orden por medio de turnos. Primitivamente se utilizaba un clavo donde los empleados pinchaban el número a medida que iban llamando a la gente. En la actualidad la electrónica permitió hacer carteles luminosos donde se puede ver el número atendido y desde que puesto fue llamado. Los hay de formas y prestaciones muy variadas. Desde simples equipos electromecánicos que por medio de una aguja y un motor de relojería avanza sobre un disco numerado hasta modernas pantallas inteligentes donde no solo se ve el número actual y el puesto que lo llamo sino que, además, va pasando información y datos variados de interés para el público. El modelo que estamos proyectando pretende ser un equipo de buenas prestaciones y costo accesible. Por medio de dos displays de siete segmentos indica el turno actual y con un tercer display (que bien podría ser de otro color) indica el puesto que llamó a ese número. Si bien es común ver equipos de este tipo con controles remoto por RF (similares a los empleados en alarmas de autos) esto encarecería mucho el producto final por lo que optamos por hacer un circuito cableado de tres hilos mas masa. De esta forma, y combinando los hilos a activar, logramos disponer de hasta siete pulsadores (o puestos) de llamada. El mismo PICmicro se encarga de generar los caracteres sobre el display por lo que no se necesitó de un decodificador BCD a Display. También se emplea la memoria EEPROM interna del chip para memorizar el último número atendido y así permitir que de noche el equipo pueda ser desconectado y, al conectarlo a la mañana siguiente, "recuerde" el último turno atendido. Se dispuso un pulsador que permite avanzar de a diez turnos al mismo tiempo, logrando así un ajuste rápido inicial.

El circuito:
Como se ve, el circuito es extremadamente simple. El puerto B (casi en su totalidad) se emplea para accionar los displays. Aquí cabe hacer una aclaración. Si se desean usar displays de gran tamaño o segmentos formados por barras de LED's deberá agregarse un amplificador de corriente a la salida del PICmicro y antes de las resistencias. Un integrado ULN2803A es mas que suficiente para el requerimiento de corriente de la mayoría de los displays gigantes disponibles. Para mayor potencia de luz habrá que utilizar transistores darlington o similares.
Volviendo al circuito tres transistores se encargan de encender cíclicamente los displays produciendo el multiplexaje de las líneas de control y permitiendo así con solo 10 líneas manejar 21 segmentos independientes. Adicionalmente la línea 7 del puerto B (pin 13) se utilizó como entrada de avance rápido. Esta entrada solo funciona al momento de inicializado el sistema, una vez que algún puesto es presionado el sistema de avance rápido queda desactivado. EL pulsador de reset (marcado con 'R') permite inicializar el microcontrolador haciendo que los displays muestren el último turno atendido pero quedando el indicador de puesto en - lo que significa que se puede avanzar de a 10 turnos con el pulsador de avance rápido. La forma de controlar este sistema es poniendo a masa una o varias entradas. Si ninguna entrada es puesta a masa el equipo queda en reposo a la espera de una pulsación. La siguiente tabla muestra la configuración binaria de las entradas y el puesto que activan.

E2 E1 E0

PUESTO

0 0 0 En reposo
0 0 1 Puesto 1
0 1 0 Puesto 2
0 1 1 Puesto 3
1 0 0 Puesto 4
1 0 1 Puesto 5
1 1 0 Puesto 6
1 1 1 Puesto 7

En la tabla un '0' equivale a la línea sin conexión mientras que un '1' la representa puesta a masa. En el circuito las resistencias de 1K sirven para fijar estados lógicos altos (Pull-Up), las de 2K7 limitan la corriente de base de los transistores que comandan los displays y, por último, las de 100 ohms limitan la corriente de los LED's que forman los displays. El capacitor de 100nF debe estar lo mas próximo posible al microcontrolador y sirve para filtrar el rizado de la alimentación. El cristal y sus capacitores hacen las veces de oscilador para el clock del micro.

Alternativas de Displays:
Nosotros probamos el equipo (y lo seguimos haciendo mientras dure el desarrollo de este proyecto) sobre displays de tamaño común (como los empleados en radio relojes). La disposición es la de abajo:

Pero también se pueden utilizar los del tipo Jumbo que, si bien son costosos, tienen un tamaño adecuado para estos equipos. Otra alternativa mucho mas económica es hacer los segmentos del display con diodos LED soldados uno junto al otro o sobre un circuito impreso universal. Esta técnica es muy común y queda tal como se ve a continuación...

En ambos casos a la izquierda, el número solo indica el puesto que efectuó la llamada mientras que los dos dígitos a la derecha corresponden al número de turno solicitado.

Funcionamiento:
Cuando se alimenta el equipo o se produce el reset del mismo el dígito de puesto se carga con un guión indicando que aún ningún puesto efectuó una llamada y los dos dígitos de turno muestran el último turno atendido antes de la desconexión o reset; tal como se muestra abajo...

En el caso de ser la primera vez que se ejecuta el programa sobre el microcontrolador el turno será el 00 (esto se debe a que el programa verifica que la memoria de turnos este entre 00 y 99 y de no estar dentro de ese rango inicializa la misma cargando el turno 00). El guión en el indicador de puesto es signo de que aún no se ha pulsado ningún botón y se esta a tiempo de hacer un ajuste rápido. Esto consiste en avanzar de a 10 turnos por pulsación gracias al botón dispuesto para tal fin en la pata 13 del micro. Cada vez que se pulse uno de los puestos o cuando se avanza de a diez turnos con el interruptor de avance rápido el turno queda almacenado en la memoria EEPROM del chip haciendo posible "recordarlo" al momento de volver a encender el equipo. Una vez que se presiona el pulsador de alguno de los puestos de atención el guión desaparece y es reemplazado por el número de dicho puesto, al mismo tiempo que la función de avance rápido queda desactivada. Para activar nuevamente esa función será necesario reiniciar o apagar y volver a encender el turnero. 

Los pulsadores de llamada:
Se pensó en un sistema simple de implementar y muy accesible. Con solo tres diodos de propósito general y tres jumpers o puentes de configuración basta para elaborar la lógica de control. Adicionalmente un pulsador y un gabinete adecuado es todo lo que hace falta. El esquema muestra el circuito eléctrico del pulsador de puesto...

Guiándose con la tabla de arriba se puede apreciar como se deben colocar los jumpers para configurar cada puesto. En la tabla un '0' representa aquí un puente abierto o jumper quitado mientras que un '1' representa un puente cerrado o un jumper colocado. Dado que el sistema contempla pull-up's de buena corriente (diez veces mas de la cotidiana en estos circuitos) no es necesario emplear cable blindado o mallado puesto que el circuito es suficientemente inmune a interferencias que puedan provocar disparos erráticos.

El firmware:
Como todo desarrollo microcontrolado éste requiere de un programa o firmware para cargar en el chip. La primera revisión del mismo sólo contemplaba la cuenta de turnos atendidos y el puesto desde el cual se hizo la última llamada. El mismo esta disponible en sus versiones ASM y HEX. Luego, la revisión 2 implemento la posibilidad de avanzar de a diez unidades los turnos para un ajuste inicial rápido, también disponibles en ASM y HEX. La última y mas reciente versión, la número 3, contempla el uso de la memoria no volátil del micro para "recordar" cual fue el último turno atendido incluso después de quitada la alimentación. Los siguientes links permiten bajar la versión ASM o la HEX.

Que falta...
Las siguientes actualizaciones de este proyecto implican la implementación de la campanilla electrónica que generará la llamada acústica acorde a la pulsación de los puestos, posiblemente se haga con diodos o compuestas desde las entradas. También se espera un cambio en el software el cual hará aparecer la palabra "HOLA" al arranque del equipo en los dos dígitos del turno, tal como se ve en la animación de abajo...

Una vez concluido el proyecto será movido al área de circuitos del sitio.

Autor: Pablo Canello