Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

04/08/2011 #1

Avatar de seaarg

Aporte : Turnero de digitos ilimitados + PCB
Estimados,

Aqui queria hacer un pequeño aporte.

Estoy haciendo un turnero (ya hice varios pero este es nuevo diseño) y se me ocurrio ir subiendo de a poco lo que vaya haciendo para que le resuelva el problema a cualquiera que lo necesite.

La idea es hacer un turnero de dos digitos, pero como estos se pueden poner en cascada, se puede hacer de cualquier cantidad de digitos. Tambien lo diseñe para evitar lo mas posible el cablerio y ahorrar pines del micro.

Caracteristicas:
- Escalable a todos los digitos que se deseen
- Pocos pines del micro
- No hay necesidad de refresco del display (el 4094 hace de latch)
- Control remoto, posiblemente por infrarrojos donde se pueda usar un control universal bien barato.
- Posibilidad de apagarlo desde el control y que quede en stand-by (o guardar en eeprom el ultimo valor de turno)
- Posibilidad de medir el tiempo promedio por turno en minutos, para mostrarlo en un 3r digito quiza mas chico. ("Faltan aprox. X minutos para el siguiente turno")

Aca adjunto el PCB (PCB Wizard) de 1 digito hecho con leds de alto brillo, de 10x15cm aproximadamente. El diseño contempla el digito en estilo "italica" que aumenta la legibilidad del mismo. Son 12 leds por segmento.

El mismo esta calculado para 14v de voltaje con leds verdes alto brillo. Si quieren adaptarlo usen esta calculadora. http://led.linear1.org/led.wiz

Mas adelante ire agregando la placa del micro (la idea es usar uno de 8 pines) y la fuente switching para elevar de una bateria de gel 6v 4amps a los 14v que requiere. (opcional, en mi caso lo quiero porque me pidieron que en lo posible se pueda usar desenchufado).

Tengan paciencia, ire subiendo a medida que el tiempo limitado me lo permita. Es bienvenido cualquier aporte / idea.

Materiales para 1 digito, version 14 volts:
- 12x7 = 84 leds alto brillo del color deseado.
- 1 ULN2003
- 1 4094
- 21 resistencias 100 ohms 1/4w

Para otros colores de leds, u otro voltaje de entrada, deberan revisar con la calculadora de mas arriba que resistencias poner o como arreglar las series. Asi como esta son 14v 12ma cada 4 leds.

Funcionamiento (basico... a leer los datasheets):
Supongamos que queremos 2 digitos, el micro se conecta a data, clock y strobe del digito "master" (que puede ser digamos, decenas) y la salida Q~ (pin 10) se conecta al data del siguiente digito.

Luego, se envian con el micro los datos, manejando strobe (para apagar los digitos durante la transmision) data, clock en secuencia para completar los 16 bits que componen los dos digitos.

Importante: Los pines del 4094 no estan ordenados en secuencia logica para facilidad de diseño del PCB. El micro tendra que tener una tabla de decodificacion para convertir el decimal del digito a los 1 y 0 correspondientes a cada segmento. (Es muy sencillo eso, ya lo veremos mas adelante).

El micro va a estar la mayoria del tiempo esperando comando, ya que no tiene que refrescar la pantalla como en el manejo multiplexado.

Eso es todo por el momento, espero que le sirva a alguien. Me vendria bien si alguien tiene ya resuelto el tema del control remoto por infrarrojos, quiza usando los receptores de 3 patas (vcc, gnd y señal)
08/08/2011 #2

Avatar de seaarg

Adjunto una revision del turnero.

En este le agregue dentro del area del digito, el microcontrolador PIC12F629 (el que tenia a mano de los chiquitos) el sensor IR, el regulador de tension y la salida a parlante.

Queda de tal forma que el diseño de placa es uno solo, tanto para la placa master como los digitos esclavos. Simplemente en el master se pone el micro y asociados, y en los esclavos no.

Por supuesto, faltan los esquematicos, esto a medida que voy diseñando voy agregando simplemente. Cuando sea el definitivo pondre los esquematicos aunque esta facil de seguir el pcb si se bajan los datasheet de los componentes.

La parte de arriba (donde esta el micro) tiene un peine de 8 pines. Estos se conectan por medio de un cable plano a los 8 pines de la parte de abajo del digito (4094). La alimentacion del micro se podria tomar de los mismos 14v de los leds, pero me parece mucho para el pobre 78L05 asi que la fuentecita se hara cargo de eso. (por eso puse la alimentacion del regulador separada)

Para conectar un esclavo, leer el primer post. Se conecta la salida Q~ del digito master al data de su esclavo (y asi sucesivamente). Clock, Strobe y OE se conectan en paralelo entre los digitos.

Los sensores IR varian el pinout por lo tanto cada uno tendra que ver el datasheet y adaptar.

Espero que les sirva y vamos a ver si va todo ok cuando termine la placa
09/08/2011 #3

Avatar de seaarg

Gracias rash.

Para el tema audio, por ahora puse solo un transistor para generar tonos de onda cuadrada. Alguien conoce una forma sencilla de generar audio con el pic que sea un poco mas agradable? (ahora haria un "piiiiiii" en vez de un "ding dong")

Se me acerca el dia del niño asi que hay que apurarse

Para la caja / gabinete, viene muy bien una caja de llaves termicas. Es lo bastante grande para albergar la bateria (sobra espacio) y tiene el frente de plastico transparente esfumado.

Para quien no quiera gastar en una caja de termicas, yo lo solucione una vez con un pedazo de acrilico (portaretratos de fotos use) aplicandole lamina para polarizado de autos. Quedo mas o menos bien.
20/08/2011 #4

Avatar de seaarg

Lo prometido es deuda,

Aca esta el turnero completo, esquematicos, pcb y firmware del pic. Tambien adjunto fotos del ensamblado.

El gabinete quedo bien con una caja de llaves termicas, tiene el plastico semitransparente perfecto para el mismo.

Para el control remoto, lean el LEAME.txt que esta en el archivo. Tambien incluyo datasheets de los integrados (menos el pic, que era muy grande) y archivos PDF para quien no tiene los programas necesarios para abrir.

El firmware esta hecho en CCS C. Incluyo el archivo .hex y la lista de codigo assembler generada por el compilador.

El speaker genera un ding-dong pero en onda cuadrada, no es demasiado amigable. Se puede trabajar con un filtro pasa bajos hecho con una resistencia y un capacitor y sacar sonido PCM por el mismo. Buscar temas sobre sonido con pic, hay muy buenos programas para convertir un WAV a datos disponibles para el pic. Sino tambien se puede sacar la plaquetita con el integrado de sonido de algun timbre inalambrico y conectarla a este proyecto (cambiando un poquito la programacion claro).

Sobre el control remoto: Aclaro que es un universal programado como TV Phillips codigo 056 en mi caso. Si van a usar otro necesitan osciloscopio para determinar el codigo y cambiar la programacion del pic. Al igual que si necesitan agregar botones del control. Con los que programe me es mas que suficiente en mi caso.

Otra cosa interesante es que este firmware guarda el ultimo turno en la eeprom, pero tiene un algoritmo para usar 1 celda de eeprom distinta cada vez (secuencialmente) cosa de que dure muchos años.

El calculo es: El datasheet dice que la eeprom puede grabarse hasta 1.000.000 de veces. Tomemos 100.000 como el peor caso, entonces:

100.000 x 128 celdas = 12.800.000 turnos / 300 turnos por dia = 42000 turnos / 365 dias = 116 años de duracion de eeprom.
Archivos Adjuntos
Tipo de Archivo: zip turnero_completo.zip (875,5 KB (Kilobytes), 494 visitas)
Tipo de Archivo: zip fotos ensamblado.zip (1,54 MB (Megabytes), 299 visitas)
20/08/2011 #5

Avatar de seaarg

De nada muchachos, esperemos que les sirva, cualquier duda pregunten.

Por el tema de los leds, en mi caso los compre a china por ebay. Tardan 1 mes en venir pero salen muy baratitos.

De un lote de 200 leds solo unos 10 vineron "fallados", o sea, andan pero brillan menos. Les recomiendo testear 1 a 1 con una bateria de 12v y una resistencia de 10k para elegir los que brillen igual.

Un turnero de estas caracteristicas sale aprox. $ 600. Si alguien consigue gabinetes "profesionales" se puede hacer un negocito con esto. (Por mi parte, tienen todo mi permiso para sacarle plata si pueden jeje)

No le puse timer aun para no tener que hacer un digito mas (no me entra en el gabinete) pero si se quiere temporizar el promedio por turno no hay mas que hacer una interrupcion y acumular los segundos. Habria que modificar la rutina de envio de datos para que en vez de 2 digitos envie 3... no es dificil para nada, cualquier cosa pregunten.
02/05/2013 #6


Hola amigo
Hola seaarg gracias por el aporte muy bueno, desearia saber si me puedes ayudar con un turnero mas sencillo pero con un pic haber noc un 16f628A o un 16f877A, necesito ver o entender como hacer un turnero con display 7 segmentos pero
que tenga 3 displays, uno que diga la el numero del puesto donde sera atendido eg 6 y los otros 2 el turno que la persona tiene.
eso la verdad no entiendo muy bien como hacer el turnero el programa que uso es '"mikroC PRO for PIC" recien estoy incursionando en esto de microcontroladores y ps todavia me es dificil entender la logica de antemano muchas gracias
05/05/2013 #7

Avatar de seaarg

Hola azael,

Subi aqui lo que tengas hecho hasta el momento y entre todos te ayudamos. Este turnero te sirve como base para hacer el tuyo, le podes adicionar el 3r digito de puesto.

No se si tu idea es hacerlo con control remoto inalambrico. Si no fuera asi, simplemente pones un boton en cada puesto, que vaya a un pin del pic cada uno, entonces de esa forma ya sabes que puesto tenes que mostrar en el display. Es cuestion de modificar el codigo nomas porque el hardware es el mismo, a excepcion de poner un pic con mas pines como el 628A que sugeris.

Te quedas en un loop sensando los pines del micro que corresponen a los puestos. Cuando 1 de ellos se activa, aumentas el numero de turno y pones en una variable que puesto corresponde. Luego envias los datos a los 3 digitos de la forma que explico en el 1r post aqui.

Si lo queres hacer con controles remotos infrarrojos, tambien se puede solamente que tendrias que investigar con osciloscopio la señal de los mismos y detectar distintos botones para los puestos.

Con este modelo de turnero tenes todos los digitos que quieras, simplemente se conectan en cascada y para un digito envias 8 bits, para 2, 16 bits, para 3, 24 bits y asi sucesivamente.
05/05/2013 #8


Estimado companeros
hola compañeros
bueno la verdad estoy haciendo con botones en cada puesto
esto de contador no entiendo muy bien estaba buscando algo de información y pues creo que estoy fracasando jajaja :P bueno estoy trabajando con mikro pic mmmm
no se si usar la forma del multiplexado o bueno estoy usando cada puerto del pic para cada display,
o bueno esa idea tengo, no cual sea mejor, adjuntare lo que tengo, espero me puedan ayudar mmmm y la verdad seearg lo que publicaste de los loop no entendí muy bien soy nuevo en esto pero muchas gracias a todos por su pronta ayuda.
Archivos Adjuntos
Tipo de Archivo: rar turnero ayuda.rar (29,9 KB (Kilobytes), 88 visitas)
06/05/2013 #9

Avatar de seaarg

Holal azael.

Vi tu diseño. Personalmente me parece mucho micro y mucho cableado para hacer esto pero si queres hacerlo de esa forma estaria bien. Mikro C no uso asi que ahi no te puedo ayudar.

Lo que propongo en mis primeros posts tampoco es multiplexado sino que usa un 4094 para manejar los datos. Mira el datasheet de ese integrado y te vas a dar cuenta. En este caso es un conversor serial-paralelo.

Una observacion de tu diseño: porque usar uln2803 si con el uln2003 te alcanza, es mas barato, y tenes menos cables y pines? a menos que estes queriendo usar el punto decimal en los displays que no creo.

Ok, publica tus dudas especificas que tengas aqui e intentare ayudarte.
16/12/2014 #10

Avatar de PabloGatell

Hola Seearg! Te comento que arme tu proyecto y funciona en lineas generales muy bien, el unico problema que he encontrado es que al presionar CINCO veces el boton power del control remoto el turnero se reinicia mostrando las cifras del 11 al 99 y haciendo el sonido de cambio de turno. Es decir, al iniciar por primera vez empieza en 01, al cambiar cinco veces de turno, posicionandome en 06 se reinicia y vuelve a empezar. Este problema no es necesariamente de la posicion del turno, podes estar en el 65 que al cambiar cinco veces se vuelve a reiniciar. Ha experimentado algo similar?
17/12/2014 #11

Avatar de seaarg

Hola Pablo,

No, no me ha pasado nunca eso. Si me decis que reinicia mostrando la secuencia de test, es porque el PIC se reseteo. Las causas pueden ser muchas.

- La fuente esta en voltaje adecuado y estable?
- Al pic le llegan 5 volts estables?
- Los capacitores estan bien?

Y por ultimo, la temporizacion del pic depende del reloj interno RC. Este puede variar segun cada pic.

Si tenes otro pic para probar, hacelo. Sino, podes editar el archivo main.h y cambiar

#FUSES WDT

por

#FUSES NOWDT

Para deshabilitar el watchdog timer, que hace que reinicie el pic cuando hay algun problema. Si con esto se soluciona la reiniciada hay 2 cosas para ver:

1- Si anda todo bien, OK, se puede dejar asi o volver a poner el fuse del WDT pero intercalando algunos restart_wdt() en los loops del codigo. (no tiene mucho sentido).
2- Si deja de reiniciarse, pero se cuelga, entonces hay que ver que no este pasando algo en las rutinas de control remoto que se quede en un bucle.

Si que es raro que sea casualmente siempre 5 numeros. Podrias tambien verificar con un tester la fuente y en el momento exacto que se reinicia ver si no aumento el consumo considerablemente (pensando en un corto en algun digito).

Te fijaste si en el momento de la reiniciada corresponde a algun numero en particular en alguno de los digitos? No sea cosa que tengas un corto o alto consumo en algun segmento.
20/12/2014 #12

Avatar de PabloGatell

Gracias por responder Seearg, revisare bien el tema de la alimentación. He tenido problemas en proyectos anteriores con el wdt y los reinicios inesperados así que ya me pondré sobre eso.
El CR que estoy utilizando en un systemlink 4, es un mando universal con códigos pre-cargados. Como no tengo idea que código usar utilizo la función de auto búsqueda y en cuanto veo que el turnero responde confirmo y lo dejo ahi.
22/12/2014 #13

Avatar de seaarg

PabloGatell dijo: Ver Mensaje
Como no tengo idea que código usar utilizo la función de auto búsqueda y en cuanto veo que el turnero responde confirmo y lo dejo ahi.
En uno de los primeros posts:
"Sobre el control remoto: Aclaro que es un universal programado como TV Phillips codigo 056 en mi caso"

Aunque lo que haces tambien esta bien.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.