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