Está en la página 1de 173

A

Probador de continuidad
Probador de continuidad

Este valioso instrumento permite saber si un circuito conduce o no corriente y si lo hace apropiadamente.
Errneamente se detecta la continuidad de un circuito con un simple Led o zumbador en serie con lo que se
desea probar y el resultado es incierto debido a que una resistencia de hasta 50 no afecta en absoluto ni el
brillo del Led ni el sonido del zumbador. Aparte, al ser una serie directa se est cargando con corriente y
tensin el circuito en verificacin.
Este circuito funciona alrededor de dos amplificadores operacionales. El primero est configurado como
comparador de voltaje, que abre o cierra segn la resistencia conectada entre las puntas de prueba. El
segundo hace las veces de amplificador de corriente permitiendo mover el zumbador y el diodo Led.
Las resistencias y el preset conectados a las entradas del primer amplificador operacional forman un divisor
de voltaje calibrado. El preset debe ser del tipo multivueltas de alrededor de 10 k, pero este valor no es
crtico.

CALIBRACIN:

La nica pieza ajustable es el preset, el cual se toca una sola vez. Para ponerlo a punto hay que disponer de
dos resistencias. Una de 1 y otra de 1.5 , ambas del 1% de tolerancia o menos.

1.

Con las puntas de prueba en vaco encender el probador.

2.

el Led y el zumbador se encienden girar el preset hasta que se apaguen. Si no se encienden omitir
este paso y seguir con el siguiente.

3.

Conectar la resistencia de 1 a las puntas de prueba firmemente y, si el Led y el zumbador no se


encienden, girar el preset hasta que lo hagan.

4.

Quitar la resistencia de 1 y colocar la de 1.5 en las puntas. Si el Led y el zumbador de encienden


girar lentamente el preset hasta que se apaguen.

5.

Repetir los pasos de arriba cuantas veces sea necesario hasta que el Led y el zumbador se
enciendan slo al conectar la resistencia de 1 . Con las puntas en vaco o con la resistencia de 1.5
el Led y zumbador deben permanecer apagados.

Alimentacin:

V max: simple 9V DC

I max: 0.1A

Dado electrnico
Un dado electrnico es un proyecto de primer clsico para los que recibieron interesado en la electrnica. A
timer, counter and a few LEDs makes a circuit that can also add a new twist to some old boring board
games. Un temporizador, contador y unos pocos LEDs hace un circuito que tambin puede agregar un nuevo
giro a algunos juegos de mesa vieja y aburrida. When the switch is pressed, a 555 timer in astable mode
pulses a BCD counter which lights up a series of LEDs wired to mimic a dice. Cuando se pulsa el interruptor,
un temporizador 555 en modo astable pulsos de un contador BCD que se ilumina una serie de LEDs con
cable para imitar un dado. Two AND gates are used to reset the count back to one whenever the BCD output
is seven. Dos puertas se utilizan para restablecer la cuenta hasta el uno cada vez que la salida BCD es de
siete. Thus, the circuit is not truly random but the natural bounce present in a pushbutton and the normal
human ability to operate much slower then the oscillator make the output of the circuit seem random. As, el
circuito no es verdaderamente aleatoria, pero el presente rebote natural en el teclado y la capacidad humana
normal para funcionar mucho ms lento que el oscilador de hacer la salida del circuito parecen aleatorios.

1.

2.

3.

Pushing and holding S1 causes the LEDs to rapidly cycle. Si se mantiene pulsada
causas S1 los LEDs a la rpida ciclo. Releasing the button locks the pattern and
shows a number from 1 to 6. Al soltar el botn bloquea el patrn y muestra un
nmero del 1 al 6.
When building the circuit, make sure to position the LEDs as shown on the
schematic. Al construir el circuito, asegrese de que la posicin de los LED como se
muestra en el esquema. Otherwise the pattern of the dice will look weird. De lo
contrario el patrn de los dados se ver raro.
Two circuits can of course be both powered by one switch to make a dual dice. Dos
circuitos pueden, por supuesto, ambos impulsados por un interruptor para hacer un
dado doble.

4. Encender/desvanecer gradualmente un led


5.

Este circuito debe encender gradualmente un led desde cero hasta su brillo mximo para luego irlo
atenuando tambien gradualmente hasta apagarlo y repetir el ciclo , en realidad es parte de la solucin a
un problema planteado por uno de los lectores del blog , la idea bsica es simple , lo ideal seria generar
ondas triangulares lineales , esto se conseguira cargando y descargando un condensador por una fuente
constante de corriente , esto dara una carga lineal .
En el circuito mostrado usamos un sencillo astable o generador de onda cuadrada cargando y descargando
un condensador , los diodos definen dos caminos : uno para la carga mediante la resistencia
correspondiente , y el otro direcciona la descarga a travez de su resistencia , de no haber esto la carga
seria gradual pero la descarga se bloqueara por el diodo de carga quedandose cargado el condensador , el
resultado es una onda cuasi triangular , ( en realidad es exponencial en los circuitos RC ), para alimentar
el led ponemos un seguidor con opam que tiene una muy alta impedancia de entrada que no carga al
condensador , con esto el led oscila segn la velocidad del tren de ondas cuadradas ; los valores estn an
para correguir , con los mostrados en el diagrama tendriamos una velocidad muy alta para apreciar los
cambios , reemplazando el condensador de 2.2 uF por uno de 100 uF se tendria un tiempo de ON de ms
o menos 7.3 seg y un tiempo de OFF o descarga de casi 7 segundos , claro que se puede obtener duty
cicle de 50% usando diodos en las resistencias R1 y R2 pero esto es solo un circuito aproximado , lo arm

en protoboard y se observa el efecto en el led.

6.
7.

Aunque es un circuito an en experimentacin los pines corresponden a un astable con el timer 555 y
un seguidor de voltaje o buffer con el 741 u opam equivalente la conexin de los pines de cada
integrado sera la siguiente

8.

Brillo variable a un led con el 555 y un condensador

Colocando un condensador de gran capacidad en paralelo con un led a la salida de un astable con el timer 555 el
condensador en su proceso de carga y descarga casi triangular ir restando voltaje al diodo led de manera que este
oscilara en forma de rampas triangulares atenuando e incrementando su brillo.

Interruptor por tacto usando Flip Flop CD4011

Se presenta un circuito simple de interruptor por tacto usando el CD4011 que tiene en su interior 4 compuertas
NAND. El las puertas del IC CD4011 estn conectadas como Flip Flop tipo R-S o interruptor.
Los pines 9, 13 del IC trabajan como contactos de SET y RESET .
El circuito es CMOS y requiere muy poca intensidad de corriente para controlar sus entradas. Puesto que los pines 9
y 13 estn conectados con el terminal positivo va los resistores R1 y R2, las puertas de entrada lgica del flip flop (
entradas S y R ) estarn en su estado alto.
Cuando tocamos con un dedo a travs de los puntos A, B (haciendo puente) la entrada respectica del IC ser
cerrada hacia tierra y la salida es puesta a baja. Esto activa el transistor Q1 y el relay consigue ser activado.
Cuando tocamos a travs de los puntos C, D el flip flop cambia otra vez y hace que el transistor sea APAGADO. Esto
hace el relay sea APAGADO.
As tocando con los puntos de contacto A, B y C, D la aplicacin conectada a travs del relay se puede cambiar de
ON a Off como se desee.
En realidad en el circuito solo se muestran los contactos de salida y entrada para saber lo que ocurre dentro
observemos un circuito semejante donde se han intercambiado algunas puertas

Emisin recepcin en infrarrojos


Cuando deseamos hacer una conexin inalambrica entre dos dispositivos lo mas cercano a implementar , a
pesar de su corto alcance , es por emisin infrarroja , tambien lo usamos en robotica para detectar objetos
cercanos y hacer que el carrito desvie su trayectoria para no colisionar , lo mismo se usa para hacer salir un
carrito robot de un laberinto , con ayuda de un PIC y un buen programa para controlar las ruedas ,el siguiente
circuito es lo mas elemental para experimentar con estos dispositivos, los podemos obtener de un mouse de
PC en desuso , en Google podemos encontrar mucha informacin de como desarmarlos e identificarlos.
El emisor infrarrojo mas simple es el led infrarrojo alimentado a 5 voltios o menos ( mnimo 3 voltios) y su
resistencia limitadora que determina su brillo , intensidad y por tanto su alcance , se debe considerar que a

diferencia de un puntero laser de luz paralela y estrecha , el infrarrojo se abre con determinado ngulo ,
siendo un led infrarrojo tpico el que tiene una abertura de haz de 15 grados , esto limita el rango , en este
circuito es dificil llegar al metro de alcance.
El receptor es un fotodiodo , en los mouses modernos se usan fototransistores apareados , traen 3 patas , la
de en medio es el emisor comun , las otras dos son los colectores , la base por supuesto es la que recibe la
luz infrarroja , es importante observar que el fotodiodo se polariza en inversa , su salida va a un opam
conexionado como seguidor de tensin , si los ponemos alineados y cercanos al encender el led transmisor se
enciende el led en el receptor , si interrumpimos el haz con un objeto opaco o con la mano se apaga.
Describiendo los componentes:
LED infrarrojo :Este componente puede tener la apariencia de un LED normal, la diferencia radica en que la
luz emitida por el no es visible para el ojo humano, nicamente puede ser percibida por otros dispositivos
electrnicos como una cmara digital.La mxima corriente permita por el LED infrarrojo es 150mA (0.15A)esto
hay que considerar para poner la resistencia limitadora

Fotodiodo : Es un semiconductor que tiene la propiedad de cambiar la corriente que


circula a travs de l, de acuerdo a la cantidad de luz que incida su rea fotosensible. Una variante especial
de los fotodiodos es el fotodiodo infrarrojo, el cual posee un filtro que le permite aceptar nicamente seales
luminosas de este tipo.

Importante : La luz del led infrarrojo no es visible para el ojo humano , para saber si
est encendido o no lo est se debe observar con una camara web , camara digital o la camara de un telefono
celular , se observar un punto luminoso de un color medio violeta , electricamente se puede encontrar anodo
y catodo usando un multimetro normal. El seguidor opam se agrega con el fin de evitar que caiga el voltaje en
la salida de los sensores cuando se agrega algn otro circuito esto debido a su altisima resistencia de entrada.
Sus aplicaciones son : Barrera infrarroja con un alcance de 13 cm en sistemas de seguridad , en ascensores
Tipo Rflex 8 cm de alcance : Registradoras de Transmilenio
Procesos de embotellado
Auto rflex 4 cm de alcance : Secadores de manos , lavamanos .carros seguidores de lnea.

Sin embargo para evitar influencia


de la luz ambiente , para codificar , para conseguir mayor eficiencia del led transmisor y ahorrar baterias se
prefiere transmitir en switching es decir por pulsos , con esto se consigue alimentando con pulsos altos y

cortos mayor brillo y mas alcance que en un sistema continuo.


Encontramos estos principios de transmisin en los controles remotos de tv, asi como en el de muchos
electrodomesticos , podemos alimentar un simple amplificar de transistor en emisor comn que tenga el led
infrarrojo como carga de colector y hacer el switching con la salida de un astable 555 ,un circuito simple
cercano a los 38 Khs de los receptores infrarrojos integrados es el siguiente:

Si bien podemos transmitir a cualquier frecuencia , nuestro detector deber tener un un filtro digital
que acepte solo a esa seal y rechaze a las otras , esto se hacia antes con el PLL 567 complicando los
circuitos detectores , en vista de eso se dise un standart de frecuencia de transmisin a 37 khz
diseando un chip que tenga integrado el filtro de 37 khz , sin embargo el duty cicle de la portadora
debe ser de 50% , dificil de imlementar con un 555 en su configuracin clsica , de hecho un circuito
clsico en internet probado muchas veces es el siguiente:

Para recibir este haz pulsante se


usan foto receptores infrarrojos integrados , un dispositivo que en el mismo encapsulado reune el
receptor de luz infrarroja, una lente y toda la lgica necesaria para distinguir seales moduladas a una
determinada frecuencia , es decir un filtro de frecuencia digital.
Algunos de los conocidos son los receptores IS1U60 de Sharp que mostramos en la figura , que se
activan cuando reciben una luz infrarroja modulada a una frecuencia de 38 Khz. (el haz infrarrojo
se apaga y enciende 38000 veces por segundo). Esto los hace compatibles con un gran numero de
mandos a distancia de electrodomsticos.

Disparando un monostable 555 con el control remoto


de la TV
Para controlar dispositivos a distancia tales como activar una alarma en caso de emergencia o para
prender/apagar las luces del dormitorio desde la cama necesitamos un control remoto por radio o por luz ,
hemos hecho experimentos con el puntero laser pero tambien podemos intentar detectar el haz infrarrojo de
37 Khz ( modulado ) de los controles remotos de tv , DVD , etc . Estos pulsos podrian ser discriminados si
llegan a un fototransistor por un filtro digital que seleccione esta frecuencia , sin embargo como hemos
hablado en los post anteriores es ms sencillo usar un detector infrarrojo integrado de los usados en los
receptores de tv , estos traen su propio filtro , su propio circuito integrado y su alimentacin en un chip de 3

pines , uno para la alimentacin (4.5 V) uno para tierra y otro para la salida de la modulacin , es decir los
pulsos de control que van encima de la portadora de 38 Khz.
El siguiente circuito usa uno de estos sensores rescatados de un televisor usado y puede disparar un timer
555 para activar una alarma a distancia ( boton de pnico desde la cama) o en un negocio , tambien si a la
salida de estos pulsos del 555 ponemos un flip flop tipo T hecho con un 4013 tendremos un interuptor on /off ,
es decir : un pulso prende y el siguiente apaga, todo desde un control remoto de tv generico.

Un sensor infrarrojo IC TSOP 1738 se utiliza para recibir la seal. Cuando no hay infrarrojo sobre este sensor
su salida est en alta.Esto hace que el transistor Q1 est en OFF.Cuando una seal infrarroja de 38 KHz
desde el control remoto de tv llega al sensor su salida se va a bajo ,esto hace que el Q1 se vaya a tierra
generando un pulso de bajada que dispara el 555.
Con los valores mostrados el timer produce una salida alta de 4 Sec ,multiplicando la resistencia o
condensador de tiempo por 10 se tendrn 40 segundos , con el pulso corto podemos usarlo para cambiar de
estado un FF tipo T para apagar o prender alguna luz mediante un relay o triac aislado por un
optoacoplador,el uso mas sencillo es alimentar una luz o alarma el tiempo programado.
Los datos del sensor infrarrojo estan aqu:

Introduccin

Nuevamente estamos al borde del fin de ao, y debemos comenzar a pensar en las fiestas que se avecinan.
En la mayora de los hogares, al menos en occidente, se tiene la costumbre de adornar un rbol
(generalmente un pino) con luces y elementos de colores vivos al pie del que un gordo Pap Noel dejar sus
regalos.
Dado que uControl es un sitio dedicado a la electrnica no tenemos una habilidad especial para la decoracin,
pero si podemos armar algo para poner el toque electrnico en estas fiestas.
Tabla de contenidos
[esconder]

1 Introduccin

2 Descripcin del proyecto

3 El circuito

4 El PCB

5 El software

6 Montaje

7 Videos

8 Articulos relacionados

9 Autor

[editar]

Descripcin del proyecto

En este caso, hemos diseado un sencillo pero efectivo rbol de navidad que, gracias a un PIC12F629 y unos
cuantos LEDs, servir para adornar nuestra casa. En mi caso, pienso alimentarlo con una pila y colocarlo en
la puerta de casa.

Una vista del modelo terminado.


Intentamos disear un circuito simple pero vistoso, que los lectores puedan montar para alegrar un poco su
casa. Sabemos de sobra que uno puede comprar uno de estos "pinos electrnicos" (generalmente made in
China) por mucho menos dinero de lo que seguramente costarn los componentes de nuestro invento. Pero
seguramente la satisfaccin de poder mostrar algo hecho por nosotros mismos har que valga la pena el
tiempo y dinero invertido.

[editar]

El circuito

Dado que nos interesa que la mayor cantidad posible de lectores puedan montar este interesante proyecto,
hemos mantenido el circuito lo ms simple posible. El corazn del proyecto es un PIC12F629, de ocho pines y
costo sumamente mdico, que se encarga de controlar cuatro transistores BC548B, los cuales a su vez
gestionan la alimentacin de cada uno de los grupos de LEDs.
Tambin hemos previsto un pulsador que el lector podr programar para que el rbol modifique de alguna
manera la secuencia de encendido de los LEDs cuando es pulsado.

Circuito del Arbol de Navidad con LEDs


(Click para ampliar)
Antes de seguir, tenemos que aclarar que si bien en el circuito de arriba se ven 10 LEDs por cada canal, nada
impide poner menos (o ms, siempre comprobando que la corriente demandada no exceda la que puede
manejar el transistor que usemos). De hecho, el PCB que proponemos ms abajo solo utiliza 14 LEDs en total
(6 por canal). Como puede verse, el circuito es muy sencillo y fcil de comprender.
[editar]

El PCB

Dibujar este PCB demando unas cuantas horas de trabajo. Queriamos que fuese sencillo de construir, por eso
descartamos desde el vamos el empleo de una placa de dos caras, y eso hizo que tuviesemos que utilizar un
numero de puentes bastante elevado. Pero es un costo que debemos pagar para mantener simple el proceso
de fabricacin.

PCB listo para ser perforado.


El lector puede descargar el PCB en formato PDF, listo para imprimir, desde este link. Solo debe imprimirlo a
escala 1:1 con una impresora lser, y seguir los pasos del tutorial.

Diseo del PCB.


Es posible que las dos imagenes siguientes sean utiles a la hora de montar los componentes. Recuerda que
haciendo clic sobre ellas acceders a una ampliacin de las mismas:
[editar]

El software

Este pequeo programa, escrito en el BASIC del PIC SIMULATOR IDE, servir para probar que el montaje
nos ha quedado bien. Al final del articulo hay un video que muestra este programa funcionando.

Symbol
Symbol
Symbol
Symbol
Symbol

canal0 =
canal1 =
canal2 =
canal3 =
pulsador

GPIO.0
GPIO.1
GPIO.2
GPIO.4
= GPIO.5

AllDigital
TRISIO = %100000
Dim tiempo As Word
tiempo = 130

'GPIO: 0 = salidas

loop:
'Bucle
canal0
canal1
canal2
canal3
WaitMs

principal
= 1
= 0
= 0
= 1
tiempo

canal0
canal1
canal2
canal3
WaitMs

= 1
= 1
= 0
= 0
tiempo

canal0
canal1
canal2
canal3
WaitMs

= 0
= 1
= 1
= 0
tiempo

canal0
canal1
canal2
canal3
WaitMs

= 0
= 0
= 1
= 1
tiempo

Goto loop
Seria muy interesante que, tomando como base el programa de ejemplo propuesto, los lectores utilicen el foro
para proponer programas ms complejos e interesantes. Una buena idea seria implementar, por software, el
control del brillo de los LEDs mediante PWM, para que el encendido y apagado sea ms suave (alguien
aceptar el desafo?)

[editar]

Montaje

El montaje no requiere de ninguna tcnica en especial. Una vez que tengamos el PCB listo y agujereado,
procedemos a soldar los componentes. Podemos comenzar por los resistores y los LEDs. Al hacerlo, hay que
tener en cuenta que los LEDs deben tener la muesca que indica el ctodo hacia el lado correcto. Si no lo
hacemos asi, el proyecto no funcionar.
Ms tarde soldaremos el zcalo, el pulsador, los condensadores y el LM7805. En mi caso, decidi ponerlo del
lado de "atras" del PCB por que no me gustaba como quedaba del lado componentes.

Modelo terminado, lado de atrs.


Como puede verse en la foto, hemos soldado un pequeo trozo de PCB virgen para que sirva de "pie" a
nuestro arbolito.
[editar]

Videos

Introduccin

Coleccin de circuitos de E/S

Este documento se basa en un hilo del foro TodoPIC, en el que se propuso armar una especie de biblioteca
virtual de circuitos que generalmente usamos para resolver los problemas de entrada-salida de
nuestros proyectos.
Recomendamos SIEMPRE visitar el hilo original dentro del foro, ya que esta siendo permanentemente
actualizado, cosa que no sucede con este resumen.
Se ha consignado en cada caso el autor del circuito, usando como identificacin su nombre dentro del foro.
Tabla de contenidos
[esconder]

1 Introduccin

2 Activar un Rele

3 Manejo de lmparas y motores a 220v

4 RS-232 en 8 pines con DS275

5 Adaptacin de sensor LM35 a PIC16F877A

6 Adaptador de niveles de voltaje, 5-25 v a Vcc

7 RS-232 sin integrados, solo con componentes discretos

8 RS-232 con MAX232

9 RELE desde el PIC, con luz piloto

10 LED, enciende con "0" o con "1"

11 Fuente de alimentacin de 5V sencilla

12 Optoacoplador para aislar una Entrada o una Salida

13 LEDS en serie - Multiplexados para display

14 Salida con Optoacoplador y rele

15 CD4511

16 ON-OFF con el popular 555

17 Protector de Alimentacin

18 Driver para Motores CC

19 Beep .... Beep .... Beep !

20 Registro de desplazamiento para manejar 4x7segmentos (+ 2 puntos)

21 Adaptador de niveles 5V/3.3V bidireccional

22 Mini-Amplificador de Audio con LM386

23 Interfaz para medir temperatura con una termocupla y un PIC

24 Interfaz de celda de carga para usar con PIC

25 Circuito para obtener la seal de un led que posee el nodo a positivo

26 Circuito para comandar display de 7 segmentos

27 Usar LM35 en todo el rango de temperatura con fuente simple

28 Inversor con NE555

29 Autor

Activar un Rele
AUTOR: Aitopes
Circuito bsico que generalmente utilizo para activar un rele desde un pin del PIC.

Algunas aclaraciones: el diodo protege al transistor de la corriente devuelta por la bobina del rele. El transistor
puede ser reemplazado sin demasiados problemas por algn TUN.

Espacio de publicidad

Manejo de lmparas y motores a 220v


AUTOR: Xocas06
El circuito es de lo mas genrico. La seal del PIC llega, a travs de un resistor limitador,
al fototriac MOC3041 que dispone de un alto nivel de aislamiento y un detector de paso por cero en su interior.
La resistencia R2 limita la corriente que pasa por el fototriac para evitar que se dae y puede estar en el orden
de los 360 a 470 ohm.
Todas las resistencias usadas son de 1/2w exceptuando r1 que es de 1/4w. La eleccin del triac ira en funcin
de nuestras necesidades. En este caso se eligi un BTA08600 (8A/600v) porque su parte metlica esta
aislada (en muchos casos esta parte metlica esta conectada a uno de los nodos, con el consiguiente peligro
de descarga) porque soporta sin necesidad de radiador hasta 500w y porque esta indicado especialmente
para cargas altamente inductivas segn su hoja de datos. aunque podra ser perfectamente un bt136,137 etc.
Se recomiendo la lectura de la hoja de datos tanto del triac como del moc3041 antes de proceder. La
resistencia R4 y el condensador C1 no sern necesarios si la carga es resistiva (lmparas).

Se deben de tomar las precauciones que se corresponden con el manejo de una tensin de 220v.

RS-232 en 8 pines con DS275


AUTOR: Xocas06
Cuando pensamos en comunicar nuestro PIC va RS-232 a todos nos viene a la cabeza el famoso MAX-232
de Maxim. Es un chip con 16 pines y dos canales RS-232 de los cuales en muchos casos solo utilizamos uno.
Maxim dispone tambin del DS275 que puede servirnos en bastantes casos a nuestros propsitos, si nos
conformamos con un solo canal.
En tan solo 8 pines y sin necesidad de condensadores externos. Recomiendo una lectura de su hoja de datos.
Aqu un sencillo esquema que creo no requiere de ningn tipo de explicacin.

RS-232 en 8 pines con DS275.

Adaptacin de sensor LM35 a PIC16F877A


AUTOR: flacoclau
Aqu les comparto como adapt un LM35 a un PIC16F877A, y que me funciona de maravilla, est configurado
para un fondo de escala de 102,3C.
En la pata 5 (RA3) tenemos la Vref+ con un diodo de referencia de 2,5V que sera el fondo de escala, o sea el
valor 1023 en el conversor A/D, por lo tanto seran 2,5V/1023=2,44mV por cada paso del conversor, esto se
obtiene calibrando el preset de 1K (Yo uso un trimpot multivuelta) y midiendo con el tester en la pata 2
del LM35 para que en el display se lea lo mismo.
Si el LM35 entrega 1mV por cada dcima de grado (salvando la exactitud del bicho) tendra que amplificar la
tensin 2,44 veces aproximadamente.

Adaptacin de sensor LM35 a PIC16F877A.

Adaptador de niveles de voltaje, 5-25 v a Vcc


AUTOR: RedPIC
Aqu tenis un muy simple adaptador de niveles de tensin. Cualquier cosa entre 5 y 25 voltios que pongis
en la entrada tendris Vcc en la salida.

Adaptador de niveles de voltaje.

RS-232 sin integrados, solo con componentes discretos


AUTOR: Aitopes
Este es el esquema para utilizar conexiones RS-232 sin necesidad del MAX232 o similares. A veces, para
salir de un apuro, con unos pocos componentes discretos que seguro tenemos en un cajn podemos resolver
el problema.

RS-232 sin integrados.

RS-232 con MAX232


AUTOR: Aitopes

El mas popular de los esquemas de conversin TTL <-> RS-232:

RS-232 con MAX232.

RELE desde el PIC, con luz piloto


AUTOR: Aitopes
Esta es una variacin sobre el primer circuito del hilo, solo agrega un LED que indica visualmente si
el rele esta o no energizado.

RELE desde el PIC, con luz piloto.

LED, enciende con "0" o con "1"


AUTOR: Aitopes
El LED de arriba enciende cuando el pin del PIC esta en 0. En el segundo caso, cuando el pin esta en 1.

LED, enciende con "0" o con "1".

Fuente de alimentacin de 5V sencilla


AUTOR: RedPIC
Si este esquema, u otro similar, nada de lo que hagamos sirve para nada .

Fuente de alimentacin de 5V.

Optoacoplador para aislar una Entrada o una Salida


AUTOR: RedPIC
Una forma fcil de proteger un pin del PIC:

Optoacoplador para aislar una Entrada o una Salida.

LEDS en serie - Multiplexados para display


AUTOR: Aitopes
Bueno, el titulo de este esquema era medio complicado, pero la idea es la siguiente: Se trata de un display de
7 segmentos gigante, donde cada segmento de cada digito esta formado por varios LEDs en serie. Como son
varios dgitos, los tengo que multiplexar, y poder desde elPIC seleccionar que segmento de que digito voy a
encender.
La solucin que encontr es usar dos transistores, uno para la seleccin del digito, y otro para el segmento. El
nodo del primer LED de cada segmento de un digito estn unidos a un transistor (el de arriba), de forma de

poder seleccionarlo independientemente de los otros, y los ctodos del ultimo led de cada segmento (por
ejemplo el del medio de cada digito) unido a otro transistor que se encarga de seleccionar el segmento
adecuado. Es un lo la explicacin, pero el esquema se entiende mejor.

LEDS en serie Multiplexados para display.


El resistor limitador se puede calcular haciendo

R = (V - NLeds x VLed) / ILed.


Tener en cuenta la cada de tensin en el transistor. V debe ser por supuesto mayor a NLeds x VLed. El
transistor de arriba debe ser elegido para que soporte la corriente que circular por todos los LEDS
implicados. Un BC327 puede ser mejor que el sugerido.

Salida con Optoacoplador y rele


AUTOR: MarioGuillote
No hay mucho que decir sobre el.

Salida con Optoacoplador y rele.

CD4511
AUTOR: Aitopes
Este integrado nos permite controlar un display de 7 segmentos mediante cuatro pines del PIC. No es muy
complicado multiplexarlo para usar ms de un digito con solo un circuito integrado (y un pin adicional por
digito, para el multiplexado).

CD4511 y un display de 7 segmentos.

ON-OFF con el popular 555


AUTOR: MarioGuillote
Este circuito es muy til para el encendido/apagado de nuestros proyectos.
Segn cmo se conecte C1, arranca el circuito, si se conecta a GND arranca con un cero a la salida, por el
contrario, si se conecta a VCC el circuito arrancar con un uno a la salida. Pulsamos una vez el botn, ON ...
pulsamos otra vez, OFF. Sencillo y til.

ON-OFF con el popular NE555.


Esa salida la podemos conectar a cualquiera de los circuitos propuestos para rels u optotriacs y con eso
activar cargas importantes. Una funcin ON-OFF que nos puede ahorrar lneas de programa y terminales
del PIC.

Leer ms sobre el NE555.

Protector de Alimentacin
AUTOR: MarioGuillote
Muchos de los que nos dedicamos a esto de la electrnica, hacemos nuestros ensayos de los proyectos con
fuentes variables, generalmente entre 2 o 3 Volts y unos 18 Volts, construidas con un transformador de
algunos amperes, unos diodos que andaban por ah, un electrolticosper-gigante que no se usaba en
absolutamente nada y nos vino brbaro para nuestra fuente. El LM317, el/los 2N3055 o TIP35 , un par
decapacitores ms, (los ms puristas, el 723) y listo! Nuestra fuente de laboratorio!
Y lgicamente como todo proceso de existencia, alguna vez trabajando con un circuito de 5 Volts .......
PIFFFF ! , los transistores se ponen en corto por algn error de manipulacin nuestro y adis circuito.
Aqu les propongo un circuito que encontr hace muchos aos y es tan sencillo como eficiente.

Protector de Alimentacin.
El fusible de entrada se va a colocar de acuerdo al consumo del circuito a alimentar, como se calculan
siempre los fusibles, tema ya tratado en el foro. El zener debe ser de 1V ms que el circuito a alimentar y de
potencia 1W. El tiristor puede ser cualquiera, con un TIC226 anda perfecto, pero tambin depende de la
aplicacin a usar.
El funcionamiento habla por s solo, viendo el esquema:
1. Ante una inversin de polaridad se ceba el triac, funde el fusible y circuito salvado.
2. Ante una suba de tensin de alimentacin, por el zener circula una corriente inversa que ceba el triac
y funde el fusible.
3. No provoca cada de tensin en el circuito que se intercale.
Sencillo, barato, muy eficaz y lo mejor de todo ..... Es a prueba de genios como nosotros. Espero sea til.

Driver para Motores CC


AUTOR: MarioGuillote
En este ltimo tiempo he estado usando unos motores CC de casi 1 Amper (para que tengan una idea, un
poco ms grandes que los usados en los reproductores de cassete) y utilic este esquema que lo operaba
desde un PIC16F84A. Los motores deslizaban unas puertas pequeas de vidrio y la posicin de la mismas se
detectaban con switch's en las correderas usadas. Pocos componentes, til y fcil de construir. Este tipo de
circuito se usa en algunos equipos de audio para la bandeja de 3 CD (Open/Close):

Driver para Motores CC.

Beep .... Beep .... Beep !


AUTOR: MarioGuillote
El tpico pi-pi-pi-pi..... ("nerviosador") de activacin de algn sistema de alerta. R1 y C1 determinan
la frecuencia de activacin de los beep, mientras que R2 y C2 determinan el tono del mismo. Para BUZ1 he
usado con estridente xito los piezoelctricos (campanillas) de los telfonos de mesa. Cualquier tweeter
barato es til para esta aplicacin. Menos lneas de cdigo nunca vienen mal.

Cualquier tweeter barato es til.

Registro de desplazamiento para manejar 4x7segmentos (+


2 puntos)
AUTOR: Aitopes
El presente esquema esta pensado para controlar 4 displays LED de 7 seg. mediante unas pocas lneas de
control desde el PIC: Clock, Data, Reset y una para el apagado del display (puede ser til para evitar
parpadeos durante el refresco).
Hay que tener en cuenta que las entradas de datos del 74HC164N estn NEGADAS, por lo que se debe
escribir un "0" para que la salida correspondiente este activa. Tener en cuenta el estado del RESET.
El primer bit que se ingresa va siendo "empujado" hacia el "fondo" por los dems, por lo que si metemos 32
bits, el primero en entrar seria el que queda en la ultima posicin del registro. Si seguimos enviando mas bits,
se empiezan a "perder" por el "fondo". Se pueden conectar mas en cascada.

Registro de desplazamiento para manejar 4x7segmentos.

Aprende ms sobre Registros de desplazamientos

Adaptador de niveles 5V/3.3V bidireccional


AUTOR: Manofwar

Adaptador de niveles 5V/3.3V bidireccional.

Mini-Amplificador de Audio con LM386


AUTOR: MarioGuillote
Alimentando el circuito, como muestra la figura, con tensiones entre 5 y 12 Volts, obtendremos sobre un
pequeo parlante una potencia de audio de entre 300 y 800 mW. Ms que suficientes para algn speech
para los sonidos "DING DONG !" de los indicadores de turnos en los cajeros del banco, o para cualquier
aplicacin que requiera un poquito de sonido.

Mini-Amplificador de Audio con LM386.

Interfaz para medir temperatura con una termocupla y un


PIC
AUTOR: Charly29
Hola a todos, aqu les dejo un circuito que permite, por medio de una termocupla medir temperaturas de ms
de 1000C, el mismo posee compensacin de la unin fra para conservar la linealidad, el esquema es el
siguiente:

Interfaz para medir temperatura con una termocupla y un PIC.


Como se puede apreciar, a la entrada de la termocupla se la filtra fuertemente para evitar cualquier tipo de
interferencias.
Las 2 bobinas que estn sobre la misma se construyen sobre un nico ncleo toroidal de ferrita con un
dimetro de entre 10 y 15 mm, en el mismo y con doble alambre de 0.2mm de cobre esmaltado (de los usado
para bobinar transformadores y motores elctricos) se realizan entre 30 y 40 vueltas, al ser el alambre doble
una ves realizadas las 30 vueltas ya se tendr construidas ambas bobinas.
Entonces las 2 puntas pertenecientes al principio del bobinado se sueldan del lado de la termocupla, y las 2
pertenecientes al final se sueldan del lado del circuito.
Luego del filtrado la seal es amplificada por un OA tipo OP07 que es de bajo offset y alta ganancia, para
luego atacar la entrada del conversor A/D del PIC.
El LM35 (sensor de temperatura) debe ser instalado lo ms prximo posible de la unin donde los hilos de la
termocupla se conectan a la PCB, para unir la termocupla a la PCB es conveniente usar un conector ya que la
misma ser muy difcil de soldarla directamente, por lo tanto el sensor de temperatura debe estar lo ms cerca
posible de este conector.

La seal entregada por el LM35 es filtrada y amplificada por un OA del tipo LM358 para luego introducirla al
conversor del PIC
El circuito integrado LM336-2.5 es usado como tensin de referencia de 2.5V para los conversores, ya que si
usramos de referencia la tensin de alimentacin del propio PIC, las lecturas de temperatura podran tener
grandes errores.
Por ultimo queda aclarar que la compensacin de la unin en fro se realiza mediante software, como la
termocupla a temperatura ambiente entrega a su salida una tensin igual a 0V lo nico que hay que realizar
es la suma de la temperatura medida por la termocupla y la temperatura entregada por el sensor, de tal
manera que:

TC = Tcupla + Tsensor

Por lo tanto este circuito solo medir temperaturas iguales o mayores a la temperatura ambiente, siendo
imposible medir temperaturas inferiores a la ambiente.
Para calibrar el circuito se debe hacer lo siguiente:
1. Retirar la termocupla y en su lugar realizar un puente con un cable lo ms corto posible.
2. Ajustar el preset del LM358 hasta que la temperatura leda sea igual a la ambiente.
3. Retirar el puente y conectar la termocupla (prestar atencin que posee polaridad)
4. Usando un termmetro como referencia y ambos (termocupla y termmetro) sumergidos en agua
hirviendo ajustar el preset del OP07 hasta que el circuito indique la misma temperatura que el
termmetro.

Interfaz de celda de carga para usar con PIC


AUTOR: Charly29
Aqu les dejo un circuito que estoy usando para una celda de carga y funciona lindo:

Interfaz de celda de carga para usar con PIC.


El esquema hace uso de los OA tipo OP07, los mismos pueden ser reemplazados por los OP77 o los OP177,
pero no garantizo su correcto funcionamiento si son reemplazados por otro tipo de amplificador operacional.
La ganancia del circuito de entrada puede ser regulada entre 200 y 1000 aproximadamente, por lo tanto no
impide que se usen celdas con distintos coeficiente de salida.
Una ves puesto en funcionamiento el circuito hay que ajustar el preset del LM336-Z2.5 hasta que en el emisor
del transistor BC548 nos indique una tensin de 5V.
Luego sin peso sobre la celda se ajusta OFFSET hasta que el pin 7 del PIC12F675 se encuentre en cero
volts, para esto es muy conveniente usar un voltmetro en la escala de 200mV o menor.
Por ultimo con un peso conocido sobre la celda debe ajustarse el preset de GANANCIA hasta que sobre el pin
7 del PIC nos indique la tensin correcta para ese peso. Para saber la tensin segn el peso conocido se
realiza el siguiente clculo:

Vpin7 = ( peso colocado en Kg * 5 ) / carga admitida por la celda en Kg

Es muy importante el uso de resistores de 1% en las posiciones indicadas caso contrario se perder exactitud
en las lecturas.
Personalmente e usado dicho circuito con una celda de 50 Kg que posea un coeficiente de 2mV por cada volt
de alimentacin a la misma, y con el PIC indicado y dicha celda e conseguido mediciones muy buenas de
hasta 50 Kg con exactitudes de 50 gr.

Cmo funciona la parte que genera la referencia con el lm336,el amplificador operacional y el transistor?
El LM336-Z2.5 regulado adecuadamente entrega una referencia de 2.5V, que se introduce al pin12 del OA, a
la salida del mismo (pin14) tenemos un transistor conectado como seguidor de emisor el cual oficia de driver
para proporcionar una buena corriente a la regulacin ya que por medio de esta tambin alimentamos la celda
(pueden tener resistencias de 350 ohms) y usamos esta misma tensin como referencia para el A/D del PIC,
al usar la misma tensin para la celda y la referencia conseguimos que no haya errores en las lecturas por las
pequeas derivas trmicas de los componentes usados.
Desde el emisor del transistor y por medio de 2 resistencias de 10K se consigue un divisor de tensin que
divide a la mitad la tensin de dicho emisor y esta es la tensin que se introduce al pin 13 del OA para que el
mismo quede configurado como buffer o seguidor de tensin, en realidad a la ves de buffer el OA acta
tambin de multiplicador con una ganancia de 2.
Con esa tensin de 5V muy estable y regulada se consigue en el pin 7 del OA una tensin de referencia de 5V haciendo que el mismo actu como amplificador inversor de ganancia unitaria.
Y con esas dos tensiones (5V y -5V) se atacan las resistencias en los extremos del preset OFFSET, por lo
tanto esas resistencias estn alimentadas de 5V y -5V respectivamente, como las mismas poseen un valor de
100K y el preset 10K nos queda que:
Ej ramal positivo:
Resistencia de 100K + preset de 5K, el preset se divide su valor a la mitad ya que la otra mitad corresponde al
ramal negativo, por lo tanto

(5V / 105K) * 5K = 0.238095V

Por lo tanto tenemos una variacin de +/- 0.24V, lo que es lo mismo un variacin de pico a pico de 0.48V
aproximadamente.
El resto del circuito esta conformado de un clsico amplificador diferencial con ganancia unidad (al cual se le
regula el offset por medio del pin 8 del TL084) con sus respectivos amplificadores de entrada con ganancia de
200 a 1000 regulable por medio del preset y por un sencillo seguidor de tensin o buffer que es el encargado
de otorgar la baja impedancia que necesita el convertidor A/D del PIC. Los diodos 1N4148 conectados al pin 7
del PIC le ofrecen una proteccin por sub o sobre tensiones a la entrada del mismo.
El condensador de 0.1uF y la resistencia de 470 ohms ofician de filtro pasa bajos, para la seal que proviene
del pin 1 del OA, la misma funcin realizan el condensador y la resistencia conectados al pin 3 del TL084,
pero al ser la frecuencia de corte de este ultimo filtro muy baja tambin estamos conseguimos que la lectura
sea ms estable.
Los condensadores de 0.1uF y las resistencias de 1K presentes en cada entrada hacen la funcin del filtros
contra cualquier interferencia proveniente desde la celda, otorgando junto a la bobina y el amplificador
diferencial muy buena inmunidad bajo cualquier condicin de trabajo.

Circuito para obtener la seal de un led que posee el nodo


a positivo
AUTOR: Charly29
Este circuito que permite obtener la seal de un LED. Cuando un led de un equipo cualquiera esta conectado
a positivo y esta tensin es superior a los 5Vcc de la alimentacin del PIC podemos usar este sencillo circuito

que nos entregar un alto cada ves que el led este encendido, la seal obtenida se la puede introducir al PIC
para que este actu de la manera programada.

Circuito para obtener la seal de un led.

Circuito para comandar display de 7 segmentos


AUTOR: Charly29
Como se puede ver en el esquema, este circuito es apto para funcionar con cualquier tensin de alimentacin
hasta un mximo de 30Vcc, la intensidad mxima por cada segmento puede ser de hasta 300mA.

Circuito para obtener la seal de un led.


Las entradas son todas activas en alto, las 3 superiores pertenecen una a cada display y las 7 inferiores una a
cada segmento, por lo tanto para hacer un refresco adecuado de los display se debe hacer lo siguiente:
1. Colocar las seales en los pines de control de los segmentos.
2. Colocar en alto la seal de control del display que corresponda.
3. Esperar un tiempo adecuado.
4. Colocar en bajo la seal de todos los display.
5. Volver a comenzar con el siguiente display.

Usar LM35 en todo el rango de temperatura con fuente


simple
AUTOR: Charly29
El circuito que les propongo en esta ocasin hace uso del sensor de temperatura LM35, el mismo puede medir
temperatura desde -50C asta 150C, pero para medir todo el rango normalmente es necesario el uso de una
fuente simtrica.

LM35 en todo el rango de temperatura con fuente simple.


Bueno con la idea de simplificar la fuente de alimentacin cuando nuestra aplicacin debe ser de bajo costo,
con el circuito mostrado ms arriba obtenemos lo deseado.
Su implementacin es muy sencilla y para tal es necesario en uso de 2 entradas anlogas del PIC y la entrada
de tensin de referencia para el convertidor.
Las resistencia de 1K5 y 3K3 (deben ser de 1%) proveen la tensin de referencia y con tales valores ser de
aproximadamente 3.5Vcc Losdiodos 1N914 le otorgan al LM35 de una tensin de masa superior a la masa
real del circuito y esto es lo que nos permite medir temperaturas por debajo de 0C.
Por el motivo anterior y considerando que la tensin que el LM35 tomar como masa puede variar con la
temperatura es necesario conoces esa tensin para luego con los consiguientes clculos matemticos obtener
la temperatura real, para conoces esa tensin de "masa" se usa la entrada AN1.
La seal de salida del LM35 es introducida al PIC por medio de AN0, entonces a esta altura ya tenemos todas
las seales necesarias dentro del PIC, por lo que solo falta realizar los clculos.

Para los mismo se hace lo siguiente:

Si AN0 > AN1


(Valor de AN0) - (Valor de AN1) = (Valor Temp.)
Si AN0 < AN1
(Valor de AN1) - (Valor de AN0) = (Valor Temp.)
Una vez obtenido Valor Temp hacemos:

(Valor Temp.) * (344 / 1023) = Temp


10 bits
(Valor Temp.) * (344 / 255 ) = Temp
8 bits

----------> si usamos conversor de


----------> si usamos conversor de

donde:

344 = tensin de referencia * 100


Entonces ya tenemos la temperatura real, solo faltara saber si es por sobre o debajo de cero grado, para lo
cual analizamos nuevamente cual de los 2 valores de entrada era el mayor:

Si AN0 > AN1 la temperatura es por sobre cero grado centgrado o sea
+XXC
Si AN0 < AN1 la temperatura es por debajo de cero grados centgrados o
sea -XXC
Este circuito que obtener la seal de un LED. Cuando un led de un equipo cualquiera esta conectado a
positivo y esta tensin es superior a los 5Vcc de la alimentacin del PIC podemos usar este sencillo circuito
que nos entregar un alto cada ves que el led este encendido, la seal obtenida se la puede introducir al PIC
para que este acte de la manera programada.

Inversor con NE555


AUTOR: Arlequin
El circuito que se muestra a continuacin, nos da la posibilidad de obtener una inversin de tensin. El mismo
puede ser utilizado con unamplificador operacional o en cualquier circuito donde se necesite de una tensin
negativa, con un bajo consumo de corriente.

Inversor con NE555.


El corazn del circuito es el famoso NE555, donde por medio del mismo y en conjuncin con elementos

comunes se obtiene una configuracin sencilla y funcional. La tensin +VCC debe estar comprendida entre
+5V y +15V.

Introduccin

Control de velocidad de motores CC por PWM.

Este proyecto es un buen ejemplo de una aplicacin practica del circuito integradoNE555. Si quieres ver en
detalle en que consiste la modulacin por ancho de pulsos (PWM) puedes consultar este documento.
NOTA: Este proyecto forma parte de la Revista uControl Numero 1.
Tabla de contenidos
[esconder]

1 Introduccin

2 Introduccin

3 El circuito

4 Montaje y PCB

5 Motores de mas consumo

6 Autor

[editar]

Introduccin

El proyecto se basa en la posibilidad de utilizar este integrado como un multivibrador astable. En esta
configuracin, el circuito produce en su pin de salida OUTPUT (3) una onda cuadrada, con una amplitud igual
a la tensin de alimentacin.
La duracin de los periodos alto y bajo de la seal de salida pueden ser diferentes. El nombre de astable
proviene de la caracterstica de esta configuracin, en la que la salida no permanece fija en ninguno de los
dos estados lgicos, si no que flucta entre ambos en un tiempo que llamaremos T.
El periodo de tiempo T de la seal de salida es igual al la suma de los tiempos en estado alto Tm (por Mark
time en ingles) y bajo Ts (por Space time). En general, en lugar de utilizar el tiempo T como parmetro,

utilizaremos la frecuencia F de la seal de salida, igual a 1/T. Para conocer mas aspectos de estas
cuestiones, puedes hacer click aqu y leer nuestro articulo sobre este integrado.

[editar]

El circuito

Como de costumbre, el circuito es muy sencillo. Actuando sobre VR1 se modifica la tensin presente en el pin
2, cambiando el tiempo de disparo. El diodo D3 sirve para evitar que la corriente generada por el motor
cuando esta girando pero no alimentado destruya el transistor. Este montaje sirve perfectamente para
pequeos motores de corriente continua, de entre 6V y 12V, con un consumo no mayor a los 300mA o 350
mA. Para motores mas grandes, ver el circuito que esta ms abajo.

Este es el aspecto que tiene en el osciloscopio la salida del circuito integrado (pin 3) cuando la resistencia
variable VR1 tiene el valor mas alto. Los pulsos son tan cortos que el motor permanece detenido:

En el otro extremo, al llevar al potencimetro a su valor mnimo, los pulsos adquieren su ancho mximo
(100%), con lo que el motor gira a su mxima velocidad. Cualquier punto intermedio entre estos dos estados
es valido.

[editar]

Montaje y PCB

Para que el amado del circuito sea lo mas fcil posible, hemos dibujado un circuito impreso y tambin un par
de imgenes tiles para el montaje:

[editar]

Motores de mas consumo

He recibido algunos mails pidindome una etapa de potencia para este circuito, ya que no es til para motores
con un consumo mayor a los 200 o 300mA. El circuito de mas abajo es idntico al mostrado, pero se
reemplazo al transistor que se encarga de manejar el motor por uno de tecnologia Mosfet, capaz de manejar
picos de hasta 50A. Lo he probado con motores de 12Vcc/3A y funciona sin siquiera calentarse, a pesar de no
haberle puesto disipador de calor.

Para que el amado del circuito sea lo mas fcil posible, hemos dibujado un circuito impreso y tambin un par
de imgenes tiles para el montaje:

Introduccin

Dado electrnico con CD4017B y CD4093B

El primer proyecto de la Ludoteca uControl es un econmico dado digital, basado en componentes


discretos. Se trata del complemento idea para muchos juegos de mesa y se puede armar en un solo un par de
horas.
Tabla de contenidos

[esconder]

1 Introduccin

2 El proyecto

2.1 Descripcin del circuito

2.2 Modo de funcionamiento

2.3 Construccin

2.4 Lista de materiales

3 Articulos relacionados

4 Autor

[editar]

El proyecto

Se trata de un proyecto ideal para los que estn descubriendo el hobby de la electrnica, ya que su principio
de funcionamiento es muy sencillo, y la dificultad de construccin baja.
[editar]Descripcin

del circuito

El circuito se basa en un par de circuitos integrados de bajo costo (menos de un euro cada uno). El primero de
ellos es el CD4017B, un contador/divisor por 10, que tambin puede ser configurado para contar hasta
cualquier nmero menor que ese.
El segundo es otro circuito integrado de tecnologa CMOS, el CD4093B, que contiene cuatro compuertas
NAND (Schmitt Trigger). Con una de estas compuertas se configura un oscilador que generara los pulsos que
se encargara de contar el CD4017B.
El objetivo del circuito es generar un nmero al azar entre 1 y 6, y mostrar el resultado en un display
conformado por 7 diodos LED, uno por cada punto de los que encontramos en las caras de los dados
convencionales.

Este es el circuito de nuestro dado electrnico.

La forma ms simple de obtener un nmero aleatorio es generar un tren de pulsos de alta frecuencia, y
enviarlos a un circuitocontador/divisor por seis. Este tren de pulsos tiene una duracin que depende del
tiempo que el usuario presione el pulsador de disparo. Debido a que se generan varios miles de pulsos por
segundo, es humanamente imposible anticipar el resultado de la cuenta o buscar un valor determinado
modificando el tiempo que se presiona SW1.
Los pulsos se generan con el bloque funcional construido alrededor de la compuerta IC2a, el resistor R1 y
el condensador cermico C1, cuando el usuario presiona SW1. Estos pulsos se aplican a la entrada
de CLOCK del CD4017B, que por cada pulso recibido incrementa en uno el valor de la cuenta, poniendo en
alto la salida correspondiente. Cuando la cuenta llega a 6, el CD4017B se resetea a si mismo (la salida 7 esta
conectada al pin RESET) y comienza de nuevo a contar desde uno. Esto se repite miles de veces por
segundo, todo el tiempo que el jugador mantenga presionado SW1.
Las salidas del CD4017B son las encargadas de encender los LED que hacen las veces de display. Los
dems diodos, todos 1N4148, cumplen la funcin de permitir que en cada caso se iluminen
los LED apropiados.

[editar]Modo

de funcionamiento

Si analizamos detenidamente las caras de un dado, podemos ver que en realidad los seis valores posibles se
pueden conformar con cuatro grupos de LED, tal como se ve en una de las figuras siguientes.
El LED D18 ser el que ubicaremos en el centro del display (posicin A), losLED D16 y D17 forman el grupo
B, D14 y D15 el grupo C y D12 y D13 el grupo D. Los resistores R2 a R5 son las encargadas de limitar
lacorriente que circula por los LED, de forma que se iluminen todos con la misma intensidad.

Con solo cuatro grupos de LEDs podemos mostrar


los 6 valores posibles.
El circuito se alimenta a partir de una pila de 9V, que nos proporcionara muchas horas de diversin. No
obstante, y con el objetivo de preservar su vida til, se han utilizado las otras compuertas existentes en
el CD4093B para configurar un temporizador. Este se encarga de apagar el display despus de unos 10
segundos. Este tiempo se determina mediante el valor del condensador C2 y el resistor R6. El lector puede
experimentar con otros valores para estos componentes y modificar as el tiempo que permanece encendido
el dado.

[editar]Construccin
Respecto de la construccin, comenzaremos fabricando la placa de circuito impreso de la manera que ya
hemos explicado (ver "Como construir tus propios PCB"), para luego montar los componentes. La placa es de
doble faz, as que debemos ser cuidadosos al planchar cada una de ellas, de forma que los pads de uno y
otro lado coincidan. Los LED deben quedar ms altos que el resto de los componentes, para que se vean
fcilmente.

PCB, lado componentes. PCB, lado soldaduras.

Posicin de los componentes. Modelo terminado.

(Haz click sobre las imagenes de la galera para ampliarlas)


Puedes descargar el archivo PDF con el diseo del PCB, listo para imprimir y a escala desde aqui.

Si el lector lo prefiere, puede dotar al de una caja adecuada, dejando siete agujeros de 5mm para los LED. En
este caso, tambin se debera utilizar un pulsador diferente, ya que se montara en la caja en lugar ir soldado
directamente sobre el PCB.

Introduccin

Display LED de 4 digitos.

El presente proyecto nos proporcionar un display de cuatro dgitos de un tamao bastante mayor a los que
podemos comprar listos para usar.
Este diseo puede servir como base para algun proyecto ne necesite mostrar la hora o temperatura, o,
modificndolo, armar un display de mayor cantidad de digitos.

Tabla de contenidos
[esconder]

1 Introduccin

2 Introduccin

3 Un segmento

4 Dgitos

5 Multiplexado

6 El circuito

6.1 PCB

7 Fotos

8 Autor

[editar]

Introduccin

Seguramente ya sabrs a que nos referimos cuando mencionamos un display de 7 segmentos. Estos tiles
dispositivos de salida, constan de 7 LED cuasi-rectangulares, uno por tramo, dispuestos en forma de 8 y uno
redondo que es el punto decimal. Mediante el encendido de algunos de los tramos que forman el 8 se puede
representar cualquier digito del 0 al 9, e incluso algunos caracteres, como la A o la U, aunque no
siempre resultan muy legibles.
Uno de los problemas que presentan estos displays es su reducido tamao. En efecto, aunque tericamente
es posible encontrarlos tan grandes como 12 pulgadas de alto (unos 30 centmetros), su precio resulta
prohibitivo, sobre todo para el aficionado. Y los mas comunes, de 1 o 2 centmetros, muchas veces son
demasiado pequeos para leerlos desde un par de metros de distancia.

Display terminado.
La solucin a este problema es utilizar varios LED comunes, redondos o rectangulares, para armar los
segmentos, y construirnos nosotros mismos el display del tamao que queramos. A pesar de que
emplearemos una cantidad importante de LEDS, su costo individual es tan bajo que el importe total que
desembolsaremos ser mucho menor que si compramos un display grande.
A lo largo de este artculo explicaremos paso a paso como construir un display gigante de 4 dgitos, que
podremos conectar a un ordenador o microcontrolador para mostrar informacin en l.

Algunos de sus usos posibles son el empleo como un reloj digital, cronometro, termmetro, dispensador de
turnos, etc.
Como ya es costumbre, los alentaremos a que modifiquen este proyecto para construir un display que se
adapte exactamente a sus necesidades. Para que eso sea posible, les brindaremos toda la informacin
necesaria sobre su funcionamiento.
[editar]

Un segmento

La clula bsica de nuestro proyecto ser el segmento. Efectivamente, deberemos disear un segmento en
base a algunos LEDs(y otros componentes), y luego repetirlo 7 veces para formar un digito.
Como se puede ver en la figura de mas abajo , para encender un LED hace falta que lo atraviese una
corriente determinada en el sentido correcto. La intensidad de la corriente depende un poco de cada tipo de
led en particular, pero se suele tomar como correcto un valor de entre 10 y 20 mA. Nosotros tomaremos un
valor de 15mA, pero el lector podr rehacer sus clculos para otros valores.
El sentido de circulacin de esta corriente por dentro del LED debe ser desde el nodo hacia el ctodo para
que este se ilumine, por lo que el nodo se conectara al positivo de la fuente, y el ctodo al negativo.

La corriente debe atravesar el LED para encenderlo


La tensin necesaria en los pines del LED tambin varia de un modelo a otro, pero 2V es un valor bastante
adecuado para un LED rojo como el que usaremos aqu.
Generalmente, el valor de la fuente de alimentacin no es el correcto para el LED, por lo que se debe incluir
una resistencia limitadora en serie. El clculo se realiza mediante la formula que acompaa la figura, y para
una fuente de 12V, debe tener un valor de 666.66 ohms. Como las resistencias no se fabrican de todos los
valores posibles, deberemos utilizar el valor comercial ms cercano, en este caso, 680 ohms.

Ahora bien, todo lo explicado esta muy bien para encender un LED, pero nuestro segmento, para ser visible
debe constar de al menos 3 o 4 leds (o mas!). El nmero elegido de LEDs se conectaran en serie, el ctodo
de uno unido elctricamente al ctodo del siguiente, y as.
Esto significa que la corriente que los atravesara a todos ser la misma, y el voltaje aplicado deber ser mayor
que la tensin necesaria en cada uno (2V) por el nmero de LEDs.
En el segundo diagrama vemos tres leds conectados en serie, y la formula para calcular la resistencia
limitadora. En el caso de usar la misma fuente de alimentacin de 12V, la resistencia necesaria ser de 400
ohms. Nuevamente, al buscar en un catalogo vemos que el valor mas cercano disponible es de 390 ohms, y
es el que en la practica emplearemos.

Forma de conectar varios LEDs en serie.


Tenemos que ver que si en la formula introducimos un numero de LEDs elevado, puede darse el caso de que
el termino nLeds x VLedssea mayor que la tensin de alimentacin, con lo que el valor de R ser negativo, lo
que por supuesto es una incongruencia. Esto nos esta indicando que la tensin de la fuente de alimentacin
es insuficiente para encender tantos LEDS, y deberemos utilizar una de un voltaje mayor.
En nuestro display, cada segmento constara de tres LEDs.

[editar]

Dgitos

Una vez que tenemos la teora necesaria sobre como construir un segmento, debemos dar el siguiente paso
lgico: la construccin de undigito.

En realidad, un digito no es mas que repetir el esquema de un segmento 7 veces. Pero (lamentablemente
siempre hay un pero) si tenemos intenciones de controlar nuestro digito gigante desde la PC o desde un
microcontrolador, necesitaremos alguna etapa adicional, capaz de manejar el consumo de un numero elevado
de LEDs, y si fuera posible, sin requerir un pin de E/S de los pocos disponibles, para manejar cada segmento.

Un par de transistores permiten manejar varios LEDs.


El problema de manejar una corriente mas elevada de la que es capaz de brindar la PC o el microcontrolador
se soluciona fcilmente mediante el uso de un transistor.
Aunque muchos de los lectores de este articulo lo tienen seguramente muy claro, intentaremos explicar con
palabras sencillas y sin involucrar formulas complicadas como utilizar un transistor para excitar una serie de
LEDs.
Explicado en trminos simples, un transistor puede ser visto como un dispositivo de tres pines, donde la
corriente que se aplica a uno de ellos, denominado base, controla una corriente mayor entre sus otros dos
terminales, llamados emisor y colector. Esta es una gran simplificacin de lo que es un transistor, pero
es suficiente para entender lo que sigue.

Supongamos que el port paralelo de la PC, o el pin de salida de un microcontrolador solo puede entregar una
corriente de 5mA.
Esta corriente es a todas luces insuficiente para encender los LEDs, pero si para excitar un transistor que a su
vez le entregue a los LEDs los 15mA que necesita para brillar. Si no pusiramos el transistor, el puerto se
daara debido a que circulara por el una corriente 3 veces mayor a la que puede manejar.
El esquema de la izquierda muestra un segmento, controlado por dos transistores. T1 es un transistor PNP, y
T2 es un transistor NPN. Cuando la base de T1 esta puesta a masa (un un 0 lgico lgico) y la base de T2 a
un 1 los LEDs se encendern. Las resistencias conectadas a las bases de los transistores limitan la corriente
que deber entregar el puerto de nuestra PC, y R se calcula tal como lo explicamos antes.
Esto soluciona el primero de los problemas. Los lectores mas avispados se habrn dado cuenta que esto se
podra haber resuelto con solo un transistor. Pero para abordar el segundo problema, el no requerir un gran
numero de pines de control, necesitamos multiplexar los segmentos de los 4 dgitos, y ah necesitamos el
transistor extra.

[editar]

Multiplexado

Multiplexar significa bsicamente reutilizar unos pocos recursos disponibles para que a lo largo del tiempo
realicen diferentes funciones.
Una de las formas seria encender brevemente cada segmento, apagarlo, pasar al siguiente digito, encenderlo
brevemente, pasar al otro y as sucesivamente. Este es un sistema muy utilizado (y recomendado) pero que
para nosotros tiene un problema importante: requiere que estas tareas se lleven a cabo continuamente, y
cada unos pocos milisegundos, para que no se noten parpadeos o apagados indeseables de algunos
segmentos. Esto obligara a que nuestra PC este pendiente completamente del manejo del display, lo que es
poco practico.
Dado que los datos del display seguramente no van a cambiar con una frecuencia muy elevada, podemos
utilizar un registro de desplazamiento como el visto en otros artculos. La ventaja del registro de
desplazamiento es que una vez que introducimos un dato en el, este se mantiene hasta que necesitemos
cambiarlo, sin requerir la atencin de la computadora. Por ejemplo, en el caso de un reloj, si no tenemos
segundero, solo deberemos escribir la hora una vez por minuto.
No nos explayaremos demasiado sobre el funcionamiento del registro de desplazamiento aqu, que ya como
se trata de un circuito til y utilizado a menudo, le dedicaremos un articulo especial en este sitio. Solo
mencionaremos que gracias a su empleo, con cuatro lneas del puerto paralelo podremos controlar los 28
segmentos de los cuatro dgitos, y el par de LEDs que hay entre el segundo y tercer digito.
Las salidas tendrn las funciones siguientes: proveer pulsos de CLOCK, los datos en forma serial
(DATA), RESET para borrar todos los dgitos, y la ultima controla el encendido y apagado de todos los
segmentos para proceder a la escritura de los datos sin que aparezcan parpadeos.

[editar]

El circuito

En los diagramas podemos ver el esquema elctrico del display en si mismo, y del registro de
desplazamiento que ser nuestra placa de control, el vnculo entre el display y la PC o el microcontrolador.
Cada uno de ellos va montado en su propio circuito impreso, de manera que se puedan montar en un espacio
mas reducido, colocando una plaqueta detrs de la otra, unidas entre si por cables flexibles, y unidas

mediante los mismos separadores plsticos que se emplean para montar los motherboards en las
computadoras.
Como siempre, para construir los impresos utilizaremos la tcnica explicada aqu.
Al momento de soldar los leds, debemos tener cuidado con la orientacin de los semiconductores, ya que si
los colocamos al revs, el proyecto no funcionara. Si observan atentamente, los conectores de la placa
controladora se corresponden con los del display, y una vez que tengamos listas ambas, deberemos unir cada
punto con un cable, y luego doblar el mazo de conductores para poner una placa a espaldas de la otra. Se
deben practicar agujeros para unir ambas plaquetas, teniendo cuidado de que al agujerear no perforemos un
componente o cortemos una pista del circuito impreso. Las imgenes que ilustran la nota nos muestran como
debe quedar el modelo terminado.

El circuito elctrico del display es extenso pero sencillo.

Este es el circuito de nuestro registro de desplazamiento.


[editar]PCB

Circuito impreso correspondiente al display de LEDs.

Este es el circuito impreso que corresponde al registro de desplazamiento.

[editar]

Fotos

Aqu hemos puesto algunas fotos del display terminado.

Display montado sobre el registro de desplazamiento


Puede verse el conector de entrada de datos que debe conectarse al controlador, ya sea una PC o un
microcontrolador.

Los transistores se deben montar cortando sus pines para que queden a menor altura que los LEDs.

La mayor parte de los componentes de este montaje son diodos LED.


[editar]

Autor

Introduccin

Driver para motores paso a paso

Tabla de contenidos
[esconder]

1 Introduccin

2 Circuito bsico del driver

3 Funcionamiento del circuito

4 Circuitos integrados empleados

5 Notas sobre el circuito

6 Probando el controlador

7 Esquema de la placa de circuito impreso

8 Lista de componentes

9 Alejando el motor del driver

10 Usando motores de 6 terminales

11 Configuracin para pasos simples #1

12 Configuracin para pasos simples #2

13 Control externo utilizando transistores

14 Control externo mediante optoacopladores

15 Control automtico

16 Bajas velocidades de giro

17 Informacin adicional

18 Revista uControl

19 Autor

En este artculo veremos como construir un sencillo y razonablemente economico driver para motores paso a
paso del tipo unipolar. Dicho driver podr utilizarse con motores de baja potencia y no necesita de
un microcontrolador para funcionar. Puede ser un buen punto de partida para disear tu propio driver.
El circuito se basa en circuito integrado 74LS194 (un registro de desplazamiento bidireccional). Est diseado
para ofrecer las funciones bsicas de control, como Avance (Forward), Retroceso (Reverse), Parada (Stop) y
ajuste de la velocidad de giro en hasta 100 pasos por minuto.
No se trata de un proyecto complejo, y todas las partes empleadas pueden conseguirse con facilidad. El
mtodo elegido para alterar el sentido de giro es una llave, pero como vers, es muy facil cambiar esto para
que pueda ser controlado desde el puerto paralelo de un ordenador o desde un microcontrolador.
El control de la velocidad se realiza mediante un potencimetro, aunque tambin podra emplearse para ello
un dispositivo como los mencionados anteriormente.
NOTA: Debido a la falta de deteccin o correccin de errores y la potencia de salida limitada, este circuito no
debe ser utilizado para aplicaciones que requieren una gran precisin en el control o posicionamiento. El
driver est pensado para el aprendizaje y la utilizacin en pequeos robots de aficionados.
[editar]

Circuito bsico del driver

La figura siguiente nos muestra el circuito bsico empleado. En color azul puede verse la lnea de CLOCK.

[editar]

Funcionamiento del circuito

Un circuito integrado NE555 funcionando como oscilador estable proporciona los pulsos
de CLOCK necesarios y se envan al pin 11 del circuito integrado 74LS194.
Cada vez que CLOCK esta en alto (positivo) el estado de las salidas del 74LS194 (pines 12, 13, 14 y 15) son
rotadas. Puedes consultar el diagrama que aparece ms abajo para ver los detalles.
La direccin de esta rotacin se determina mediante la llave S2. Cuando S2 est en la posicin central (OFF),
el motor se detiene.
Cuando la base del transistor Q6 esta a nivel bajo, las salidas del 74LS194 cambian en el orden 12 - 15 - 14 13 - 12 , etc.
Cuando la base del transistor Q6 esta a nivel alto, las salidas del 74LS194 cambian en el orden 12 - 13 - 14 15 - 12 , etc.
Los pulsos existentes en las salidas del 74HC194 se envian al motor a travez de un circuito
integrado ULN2003. Este se encarga de manejar la corriente necesaria para exitar las bobinas.

[editar]

Circuitos integrados empleados

74LS194, registro de desplazamiento bidireccional de 4 bits


74LS74, Doble slip-flop tipo D con Preset y Clear
ULN2003, Driver darlington de 7 canales, 500mA por canal, 50V mximo.
NE555, configurado como oscilador astable.

Nota: los circuitos integrados de la serie 7400 son considerados obsoletos, no obstante son fciles de
conseguir y su costo es muy bajo. Esta es la razn por la que se los ha elegido para este proyecto.
El diagrama siguiente muestra la forma en que deben energizarse las salidas del ULN2003 para hacer girar el
motor hacia delante y hacia atrs. Los nmeros de los pines no se han incluido ya que el conexionado final
depender del diseo del PCB.
Cada pulso positivo en las salidas del 74LS194 provocar el encendido de una de las bobinas del motor.

Orden en que deben conectarse las bobinas.


[editar]

Notas sobre el circuito

Con los valores indicados en el esquema y C1 = 1 uF, el valor de R1 = 0 ohm har que la frecuencia
de CLOCK sea aproximadamente de 100KHz. Esto hace que el motor avance unos 100 pasos por
segundo, velocidad limite para la mayora de los motores paso a paso.

Si se incrementase la velocidad, no solo disminuira el torque disponible sino que tambin se correra el
riesgo de que el motor pierda pasos. Se pueden probar diferentes valores para C1 y R1 para producir la

frecuencia mxima mas adecuada para cada motor en particular. Este valor depender exclusivamente
de las caractersticas constructivas del mismo.

Si R1 adopta un valor cercano a 1 Megohm, la frecuencia del CLOCK disminuir a cerca de un Hz,
haciendo que el motor avance un paso por segundo.

No hay, al menos en teora, un valor mnimo de velocidad a la que pueda girar un motor paso a paso.
Esto permite utilizar valores de C1y R1 tan grandes como se desee, siempre dentro de los valores
aconsejados en la hoja de datos del NE555.

El circuito impreso propuesto permite la conexin de la resistencia variable R1 en una bornera, que
tambin puede emplearse como punto de entrada para pulsos de control externos.

La llave S1, que aparece en el diagrama de ms abajo, permite la detencin del motor al interrumpir la
generacin de pulsos de CLOCK del NE555. S1 puede ser reemplazado por un transistor NPN para
controlar electrnicamente la generacin de pulsos de CLOCK.

Los pulsos de CLOCK pueden ser provistos por un circuito externo, pero cualquier ruido en estos podra
colocar al registro de desplazamiento en un valor errneo. En caso de emplearse, deben ser pulsos
limpios. Estos pulsos deberan pasar a travs del NE555, situacin que esta prevista en el circuito
impreso.

El 74LS74 no cumple otra funcin ms que proporcionar el control del 74LS194, fijando la direccin de
giro con la ayuda de los transistores Q6 y Q7 y la llave S2. Estrictamente hablando, el mtodo de control
que ofrece te sistema no es el mejor, pero a las relativamente bajas frecuencias a las que opera el circuito
(menores a 100KHz) funciona perfectamente.

El resistor de 3.3K y el condensador de 4.7 uF conectados en el terminal SET (pines 4 y 10 del 74LS74)
aseguran que las salidas (pines 6 y 8) permanezcan en estado bajo durante el encendido del circuito.

Al alimentar el circuito, es posible que no todas las salidas del 74LS194 esten en estado bajo. Por este
motivo, la fuente de poder que alimente el circuito debe ser capaz de soportar la carga de las cuatro
bobinas energizadas al mismo tiempo, ya que durante un instante mas o menos largo (dependiendo de la
posicin de R1).

Este circuito puede ser comandado desde otro, o desde el puerto paralelo de un ordenador. Para que
este sistema de control externo funcione, se debe garantizar que la base de los transistores Q6 y Q7 sea
de al menos 0.7V. Puede que sea necesario utilizar untransistor adicional para lograr este objetivo.

En caso de energizar simultaneamente los transistores Q6 y Q7, el 74LS194 efectuara un RESET,


deteniendo el giro del motor y energizando su salida numero 15 cuando reciba el prximo pulso de
CLOCK.

El circuito necesita de una fuente de 5V de corriente contnua perfectamente estabilizada para funcionar,
que no se ha incluido en el esquema.

Existen una gran variedad de motores paso a paso. Debe asegurarse que el elegido para ser empleado
con este sistema se alimente con tensiones inferiores a los 24V y no consuma mas de 500mA.

[editar]

Probando el controlador

Simplemente colocando un LED en cada salida podemos comprobar visualmente el funcionamiento del
circuito.

En el esquema pueden verse los dos Flip Flop "D" incluidos en el 74LS74. La seccin FF1 se utiliza como un
divisor binario, mientras queFF2 funciona como un Flip Flop "RS". Despues de cada pulso de CLOCK, el Flip
Flop es puesto en SET, con Q en alto. Esto permite comandar al 74LS194 secuenciar sus salidas en uno u
otro sentido de acuerdo a la posicin de S2.
La llave S1 permite detener la generacin de pulsos de CLOCK.
Los terminales POWER (14), COMMON (7) y CLEAR (1 y 13) del 74LS74 no se muestran, pero los
correspondientes a CLEAR deben conectarse a +5V.
El siguiente grafico muestra las formas de onda que se pueden encontrar a la salida del driver:

El esquema de la figura es una version simplificada del interior del circuito integrado 74LS194

Este es el aspecto del driver ya montado. La funcion de cada borne puede consultarse en el esquema
correspondiente, mas abajo.

Para reducir la altura del circuito final, puede cortarse la aleta disipadora del LM7805, tal como se ve en la
fotografa:

En la pgina del autor de la nota pueden adquirirse las placas de circuito impreso listas para usar. Tambin
puedes consultarlo en sudireccin de correo].
[editar]

Esquema de la placa de circuito impreso

El siguiente esquema muestra la posicin de cada componente sobre la placa de circuito impreso y la funcin
de cada borne de conexin.

Esquema del PCB.


[editar]

Lista de componentes

1 x 74LS194
1 x 74LS74
1 x ULN2003AN
1 x NE555N
1 x L7805ACV
2 x 2N3904
1 x 512-1N4001
1 x 470uF/35V
1 x 10uF/25V
1 x 4.7uF/25V
1 x 1uF/25V
1 x GREEN 3mm LED
3 x 10K 1/4W
2 x 3.3K 1/4W

1 x 470 OHM 1/4W


2 x 2 POS. TERMINAL BLOCK
3 x 3 POS. TERMINAL BLOCK

[editar]

Alejando el motor del driver

Si el motor va a emplearse a una distancia importante del controlador, deben separarse los bornes de
alimentacin, tal como se ve en el esquema:

Esto evita que los pulsos generados por el motor introduzcan ruidos en la fuente de alimentacin.

[editar]

Usando motores de 6 terminales

Algunos motores paso a paso disponen de 6 terminales. La siguiente imagen muestra la forma en que
deberian conectarse al controlador:

[editar]

Configuracin para pasos simples #1

Las conexiones que se muestran en el siguiente diagrama permiten al motor operar paso a paso. Una llave
permite utilizar el controlador en este modo o en modo de giro continuo (para ello tambien debe incluirse el
potenciometro de 1 Megohm).

NOTA: Utilizando el esquema anterior, el motor no se mover correctamente los dos primeros pasos. Esto se
debe a que el 74LS74mantiene desabilitado el control de direccin hasta que el 74LS194 complete su
inicializacin.

[editar]

Configuracin para pasos simples #2

Otra forma sencilla de controla el motor para que avance paso a paso puede verse en el diagrama de abajo:

Como puede apreciarse, se ha reemplazado la llave S2 por dos pulsadores, que pueden decidir la direccion
de giro mientras el potenciometro se ajusta para obtener una frecuencia de reloj relativamente baja.

[editar]

Control externo utilizando transistores

Como se mencion antes, es posible comandar el driver mediante la utilizacin de transistores. Este ssitema
permite operar la placa controladora desde otro circuito o desde un ordenador:

[editar]

Control externo mediante optoacopladores

Otra forma de control, utilizando optoacopladores para aislar el driver del circuito que lo controla:

[editar]

Control automtico

Este circuito reemplaza la llave S2 por un control automatico basado en dos amplificadores operacionales.
Esto brinda una "ventana" dentro de la cual el motor girar en uno u otro sentido.
El potenciometro R IN puede ser reemplazado por un sensor de temperatura o de luz. LS1 y LS2 funcionan
como sensores de fin de carrera, que evitan que el motor continue girando ms all del punto fijado.

[editar]

Bajas velocidades de giro

Agregando un condensador adicional es posible obtener frecuencias de CLOCK ms bajas. El esquema


siguiente muestra como conectarlo.

[editar]

Informacin adicional

Animacin que muestra el funcionamiento de un motor paso a paso

Las sitios siguientes contienen informacin interesante sobre el tema:

www.cs.uiowa.edu/~jones/step/circuits.html
www.doc.ic.ac.uk/~ih/doc/stepper/control2/connect.html

El driver ha sido probado con los siguientes motores:

JAPAN SERVO CO. (de un viejo floppy drive)


TYPE KP4M4-001
75 OHM / PHASE
0.15 AMP / PHASE
AIRPAX : LA82720-M1
24 VOLT
60 OHMS / COIL
7.5 DEGREES / STEP
[editar]

Revista uControl
Este articulo forma parte de la Revista uControl #4

En este nmero de la Revista uControl te proponemos la


construccin de tu propia placa entrenadora
paramicrocontroladores PIC. Con este sistema, basado en
diferentes mdulos, podrs aprender todo lo que necesitas
sobre el funcionamiento de estos circuitos integrados, sin
necesidad de gastar una pequea fortuna.
Esta vez hemos escrito slo 8 artculos. Sin embargo, la
revista mantiene las 64 pginas (que por lo visto se va a
transformar en su tamao habitual) que tena el anterior.

Introduccin

El relojito de uControl

El relojito es un reloj de pared bastante especial. Adems de dar la hora (como todo reloj que se precie de
tal), tambin nos muestra la temperatura ambiente. Pero lo que lo hace diferente a la mayora de los relojes
electrnicos cuyos esquemas puedes encontrar navegando por la web es la forma en que est construido su
particular segundero. En efecto, en lugar de indicar el transcurso de los segundos mediante un par de
display LED de 7 segmentos como es habitual, lo hace mediante 60 diodos LED dispuestos en forma de
circulo a lo largo del borde exterior del circuito impreso que aloja todos los componentes del reloj.
NOTA: Este proyecto forma parte de las Revistas uControl Numero 1 y Numero 2.
Tabla de contenidos
[esconder]

1 Introduccin

2 Descripcin del proyecto

3 El circuito

4 El circuito impreso

5 Componentes

6 Montaje

7 El software

7.1 Configuracin de los pines de E/S

7.2 Escribiendo los segundos.

7.3 Haciendo limpieza

8 Horas y minutos

8.1 Conexionado de los displays

8.2 A programar!

9 Firmware para el PIC

10 Videos

11 Conclusin

12 Temas relacionados

12.1 Tutoriales

12.2 Proyectos

13 Revista uControl

14 Autor

Descripcin del proyecto

El reloj que vamos a construir puede indicar la hora y los minutos mediante 4 display LED de 7 segmentos, en
el formato HH:MM, donde los : centrales estn constituidos por dos pequeos LEDs de 3mm. Estos
displays tambin se utilizan para mostrar la temperatura, que se obtiene mediante un sensor de temperatura
Dallas DS1820. Para mantener funcionando el reloj con una exactitud razonable se ha utilizado un reloj de
tiempo real DS1307.
El segundero, como decamos, es una circunferencia formada por 60 LEDs de 5mm, controlados mediante
solamente dos pines delPIC16F628A. Esto es posible gracias a la utilizacin de un registro de
desplazamiento construido a partir de 8 circuitos integrados74HC164N. En este mismo nmero de la Revista
uControl encontraras la explicacin de su funcionamiento.
Adems hemos dotado al reloj de 4 pequeos pulsadores, que servirn para llevar a cabo las tareas de
puesta en hora, seleccin del modo de funcionamiento, etc.

"El relojito", listo para comenzar a funcionar.

El circuito
Si bien el circuito del Relojito puede resultar intimidante por su tamao (emplea 18 circuitos integrados y ms
de 100 resistores) en realidad no es tan complejo como parece. El esquema se basa en un PIC16F628A, que
se encarga de llevar a cabo todas las tareas necesarias.

Circuito del "Relojito", click para agrandar.


Este microcontrolador emplea como oscilador generador de pulsos de reloj un cristal de 4MHz, con
dos condensadores de 22pF, conectados a los pines 15 y 16.
Los pulsadores encargados de la gestin de la puesta en hora y seleccin del modo de funcionamiento se
encuentran conectados a los pines 10, 11, 12 y 13, que corresponden a los bits 4, 5 ,6 y 7 del PORTB. Cada
uno de estos pines se ha puesto a GND mediante un resistor de 10K. Cada vez que presiona un pulsador, el
pin correspondiente se pone a +V.
La temperatura se lee desde un sensor Dallas DS1820, conectado al pin 4 del microcontrolador. Este pin
corresponder al bit 5 del PORTA.
Para mantener la exactitud del reloj empleamos un pequeo circuito integrado, tambin de Dallas, que se
encarga de contar el tiempo por nosotros. Se trata del DS1307, de 8 pines, que dispone de su propio cristal
(de 32.768 Hz) y de una pila CR-2032 de 3V de respaldo. Esta pila se proporciona la energa necesaria para
que el DS1307 siga funcionando en caso de producirse algn fallo o desconexin de la fuente de
alimentacin principal. Esto evita el tener que volver a poner en hora el Relojito cada vez que lo
desenchufemos de la red elctrica.
Para mostrar tanto la informacin correspondiente a las horas y minutos como los datos de la temperatura, se
emplearon 4 display LED de 7 segmentos de unos 3.5 centmetros de altura. El modelo elegido fue el C1021H de Paralight. Se trata de display de ctodo comn, donde cada segmento est constituido por dos

LEDs rojos en serie. Los : centrales estn formados por dos LEDs de 3mm conectados en serie, del mismo
color que los displays, y son manejados desde el pin 7 del microcontrolador (PORTB.1)
Dado que el multiplexar estos displays mediante las tcnicas tradicionales hubiese exigido un elevado nmero
de pines de E/S del microcontrolador PIC16F628A, se utiliz un registro de desplazamiento construido a partir
de cuatro circuitos integrados 74HC164Nconectados en cascada. Cada una de las salidas de estos integrados
controla uno de los segmentos de los displays. El pin 17 del microcontrolador (bit 0 del PORTA) se encarga de
proporcionar los datos al registro de desplazamiento, mientras que el pin 18 (bit 1 delPORTA) entrega los
pulsos de CLOCK necesarios.
El mismo truco del registro de desplazamiento se utiliz para controlar los 60 LEDs que conforman el
segundero. Esta vez fueron necesarios 8 circuitos integrados 74HC164N. Este registro dispone de 64 salidas,
de las que se aprovechan solo las primeras 60. Cada una de estas salidas controla uno de los LEDs a travs
de un resistor que limita la corriente que los atraviesa.
Dado que el consumo mximo posible de este proyecto es bastante elevado para lo que estamos
acostumbrados, hemos dividido la etapa de alimentacin en tres partes, cada una de ellas encargada de
proporcionar energa a una de las secciones del reloj.
De esta manera, una de las etapas construidas alrededor de un regulador de voltaje LM7805 proporciona la
corriente que necesita el microcontrolador, el sensor de temperatura y el reloj de tiempo real. Otra de las
etapas alimenta los displays y el registro de desplazamiento que lo controla, y la tercera hace lo propio con los
LEDs del segundero y sus circuitos integrados de control.
Si bien no figuran en el esquema elctrico, hemos colocado condensadores cermicos de 0.1uF entre los
pines de alimentacin de cada uno de los 74HC164N. Se pueden ver en las fotos, estn soldados
directamente sobre las pistas del PCB.

El circuito impreso
Como es de suponer, para albergar todo esto hace falta un circuito impreso bastante grande. Dado que
en uControl intentamos mantener las cosas simples, por lo general no utilizamos circuitos integrados ni
componentes de montaje superficial ni PCB de doble faz. Esto tambin ayudo a que el PCB sea grande.

El circuito impreso mide 18 centmetros de dimetro.


Quizs el rasgo ms representativo de este circuito impreso sea su forma, ya que nos hemos apartado del
clsico diseo rectangular o cuadrado y lo hemos dibujado como una circunferencia, de forma que
los LEDs del segundero adopten la misma disposicin que tendran las marcas en la esfera de un reloj de
aguja.
El dimetro de la placa de circuito impreso es de 18 centmetros. Cortarla con forma de circunferencia es
bastante trabajoso, pero no imposible. De todos modos, aquellos que no se animen a cortar el PCB con esta
forma, pueden simplemente utilizar un PCB cuadrado de 18 centmetros de lado con el dibujo que
proponemos en el centro.
Para construir el PCB basta con utilizar el diseo que puede descargarse en formato PDF desde aqui, e
imprimirlo siguiendo los pasos de nuestro tutorial "Como construir tus propios PCB".

El PCB puede ser construido utilizando el mtodo que explicamos aqu.

Diseo del PCB.

Componentes
La lista de componentes que vamos a emplear es bastante extensa, pero afortunadamente se trata de
componentes de bajo costo, por lo se trata de un proyecto al alcance de todos los bolsillos.

Estos son los componentes que utilizaremos.


La lista de materiales necesarios es la siguiente:

12 circuitos integrados 74HC164N.


92 resistores de 220 ohm, 1/8 de Watt.
7 resistores de 10K, 1/8 de Watt.
1 circuito integrado DS1307.
1 microcontrolador PIC16F628A.
1 sensor de temperatura DS1820
1 cristal de 4 MHz.
1 cristal de 32.768 KHz.
14 condensadores cermicos de 100 nF (0.1uF).
2 condensadores cermicos de 22pF.
1 condensador electroltico de 220uF/16V.
1 zcalo para pila CR-2032
4 displays de ctodo comn C-1021H de Paralight.
2 LEDs rojos de 3mm.
60 LEDs rojos de 5mm.
1 diodo 1N4001.
1 bornera para circuito impreso de dos tornillos.
4 pulsadores de 8mm para circuito impreso.
3 reguladores de voltaje LM7805.

Tambin necesitars un trozo de PCB virgen de una sola cara, con un tamao de 18x18 centmetros, y
zcalos para los circuitos integrados

Montaje

No hay mucho para decir sobre el montaje de los componentes de este proyecto. Puede ser una buena idea
comenzar el trabajo de soldadura por los puentes y zcalos, para luego seguir con los resistores y
condensadores. Los displays, reguladores de voltaje y LEDs deberan montarse en ltimo lugar, cuidando de
que estn en la posicin correcta. Ser un trabajo que tomara al menos una o dos horas, as que hay que
encararlo con paciencia.
Una vez que todo est en su lugar, y antes de colocar los circuitos integrados en sus zcalos, podemos
alimentar el relojito y comprobar que a la salida de cada regulador de voltaje tenemos 5V. Tambin podemos
medir la tensin en los pines de los zcalos encargados de alimentar a cada integrado, para no tener alguna
sorpresa desagradable. Entre los pines 7 y 14 de cada 74HC164N debera haber 5V, lo mismo que entre los
pines 5 y 14 del zcalo correspondiente al microcontrolador.
Si todo est bien, podemos poner cada integrado en su sitio, cuidando de no ponerlos en la direccin opuesta.

Ms abajo veremos cmo programar el microcontrolador.

El software
Ya vimos como desarrollar el hardware, y ahora comenzaremos a ver como sacar provecho de este diseo,
explicando cada una de las rutinas necesarias para transformar ese montn de componentes en algo til.
Escribiremos el software desde cero, explicando cada uno de los pasos a seguir, de forma que todos puedan
comprender a fondo cada una de las rutinas, y as ser capaces de modificarlas a gusto. Hemos decidido
presentar versiones en PIC BASIC y CCS de cada trozo de cdigo, como una manera de llegar a un mayor
numero de lectores.

Configuracin de los pines de E/S


El primer paso antes de comenzar a utilizar los pines de entrada o salida, es configurar correctamente su
funcin. Este es un paso muy simple, y que no requiere de demasiadas explicaciones. Los comentarios
incluidos en el cdigo fuente sern suficientes para entender que hace cada lnea de programa.

Veamos primero como hacerlo en PIC BASIC (recordemos que utilizamos la versin correspondiente al PIC
SIMULATOR IDE):

'-----CONFIGURAMOS PUERTOS---------AllDigital 'Todos los pines del PORTA como E/S


'Configuro el PORTA:
TRISA.0 = 0 'DATA Segundero
TRISA.1 = 0 'CLOCK Segundero
TRISA.2 = 0 'DATA HH:MM
TRISA.3 = 0 'CLOCK HH:MM
TRISA.4 = 0 'Salida
TRISA.5 = 0 'DS1820
'Configuro el PORTB:
TRISB.0 = 1 'Entrada
TRISB.1 = 0 'Salida,
TRISB.2 = 0 'pin SCA
TRISB.3 = 0 'pin SCL
TRISB.4 = 1 'Entrada
TRISB.5 = 1 'Entrada
TRISB.6 = 1 'Entrada
TRISB.7 = 1 'Entrada

pulsos del DS1307


LEDs ":" en display "HH:MM"
del DS1307
del DS1307
Pulsador 1
Pulsador 2
Pulsador 3
Pulsador 4

Ahora, vemos como hacer la misma tarea en CCS:

//Device/Fuses/Etc.--------------------------------#INCLUDE <16F628A.H>
//Usamos un 16F628A
#FUSES NOWDT
//No Watch Dog Timer
#FUSES XT
//Con oscilador a cristal...
#use delay(clock=4000000)
//..de 4MHz.
#FUSES NOPUT
//No Power Up Timer
#FUSES NOPROTECT
//No protegemos el cdigo.
#FUSES NOBROWNOUT
//No Brownout Reset
#FUSES NOLVP
//No low voltage prgming
#FUSES NOCPD
//No EE protection
//Declaramos la posicin de los puertos----------------------#BYTE PORTA = 0x05
#BYTE PORTB = 0x06
#BYTE PORTA_TRIS = 0x85
#BYTE PORTB_TRIS = 0x86
//Y asignamos cada pin como E/S segn corresponda:
PORTA_TRIS = 0b00000000; //1=ENTRADA, 0=SALIDA
PORTB_TRIS = 0b11110001; //1=ENTRADA, 0=SALIDA

Una vez listo este tramite, pasemos a las rutinas propiamente dichas.

Escribiendo los segundos.


La caracterstica ms sobresaliente de este reloj es su segundero. Compuesto por 60 LEDs ubicados sobre la
circunferencia del reloj, se controlan mediante solo dos pines del microcontrolador. Esto es posible gracias a
la utilizacin de un registro de desplazamiento.
Como ya hemos visto, este tipo de registro incorpora los datos presentes en su entrada con cada pulso de
reloj que se aplica a su terminalCLOCK. Debemos respetar los tiempos de respuesta de los circuitos
integrados que conforman los registros de desplazamiento. En este caso, el 74HC164N que henos utilizado
puede funcionar a una frecuencia mas elevada que los 4 MHz (o el MIP) a los que funciona elPIC16F628A,
por lo que no sern necesarios los tiempos de espera entre el envi de un dato y el siguiente.
Los pines implicados en el control de los LEDs del segundero son los correspondientes a PORTA.0 (o RA0,
pin 17) y PORTA.1 (o RA1, pin 18), para las funciones de DATA y CLOCK respectivamente. Como no es el
nico registro de desplazamiento presente en el proyecto, nos referiremos a estas seales
como DATA2 y CLOCK2.
Concretamente, el dato presente en la entrada del registro de desplazamiento se hace presente en la primera
de sus salidas (empujando a los dems una posicin hacia delante) cuando el pin CLOCK pasa de estado
bajo a estado alto. Esto quiere decir que deberemos seguir el siguiente orden para cada bit que queramos
enviar al registro:
1. Poner el dato a enviar en el pin DATA2 (PORTA.0)
2. Poner CLOCK2 (PORTA.1) en estado bajo.
3. Poner CLOCK2 (PORTA.1) en estado alto.
Como se ve, es algo muy sencillo de implementar.
Veamos como hacerlo en PIC BASIC:

escribo_segundo:
data1 = bit_aux 'Pongo el valor en DATA
clock1 = 0 'Pongo el CLOCK en bajo...
clock1 = 1 '...y de nuevo en alto. Listo!
Return
Esta rutina enva el valor de la variable bit_aux al registro de desplazamiento.
La subrutina supone que antes de llamarla hemos declarado las variables (usando DIM) y las macros
(mediante SYMBOL) necesarias:

'------DECLARO VARIABLES y MACROS-----------------Dim bit_aux As Bit 'Declaro la variable auxiliar


Symbol data1 = PORTA.0 'Nos referimos a PORTA.0 como "data1"
Symbol clock1 = PORTA.1 'Nos referimos a PORTA.1 como "clock1"

Veamos la forma de hacer esto en CCS.

//Declaramos la Variable:
int1 bit_aux;
//Declaro la variable auxiliar
//-------------------------------------------------//---Envia un DATO al registro de desplazamiento:
//-------------------------------------------------void escribo_segundo(int1){
if (bit_aux) {output_high(DATA2);} //Si es "1", lo escribo en DATA2.
if (!bit_aux) {output_low(DATA2);} //Si es "0", lo escribo en DATA2.
output_low(CLOCK2);
//Pongo el CLOCK en bajo...
output_high(CLOCK2); //...y de nuevo en alto. Listo!
}
main(){
//Asignamos cada pin como E/S segn corresponda:
PORTA_TRIS = 0b00000000; //1=ENTRADA, 0=SALIDA
PORTB_TRIS = 0b11110001; //1=ENTRADA, 0=SALIDA
}
En CCS, para hacer uso de la funcin escribo_segundo, basta con invocarla desde el programa principal, de
la siguiente manera:

escribo_segundo (valor);
Donde valor ser 0 o 1 dependiendo si queremos apagar o encender el LED correspondiente a la primera
posicin del registro de desplazamiento.

Haciendo limpieza
Antes de comenzar a enviar datos tiles al registro de desplazamiento, conviene limpiar el contenido de sus
60 bits, dado que al alimentarEl Relojito pueden contener informacin aleatoria, que en la practica se veran
como una serie de LEDs encendidos. Si no lo hiciramos, cada dato que enviemos al registro empujara a
los bit-basura una posicin hacia delante, algo que no quedara demasiado bien.
La forma de evitar esto es bien simple: ni bien comienza nuestro programa, debemos escribir 60 ceros en el
registro de desplazamiento, asegurndonos que todos los LEDs se encuentran apagados.
Dado que puede se trata de una accin que puede requerirse mas de una vez en nuestro programa, tambin
la vamos a implementar como una subrutina (en PIC BASIC) o como una funcin (en CCS). Dado que ya
tenemos el codito necesario para escribir un valor en el registro de desplazamiento, la nueva rutina/funcin
solo deber encargarse de llamar 60 veces seguidas a la que vimos antes, con el valor 0.
Veamos como hacerlo en PIC BASIC:

borro_segundero:
bit_aux = 0 'Asigno el valor a enviar a la variable auxiliar...
For i = 0 To 59 '"i" ir de 0 a 59, de 1 en 1.

Gosub escribo_segundo

'envo bit_aux al registro

Next i
Return

Y ahora, lo mismo pero en CCS:

void borro_segundero(void){
int i;
for (i=0;i<60;i++) {
// "i" ir de 0 a 60, de 1 en 1.
escribo_segundo(0); //Envio un "0" al registro de desplazamiento
}
}

Esto es todo lo que necesitamos saber para manejar correctamente los 60 LEDs del relojito.

Horas y minutos
Ahora le toca el turno al display que debe mostrar las horas y los minutos. Montado a partir de 4 displays de 7
segmentos y un registro de desplazamiento, la construccin de rutinas o funciones que lo controlen representa
un desafo muy interesante, que ya mismo abordaremos.

Conexionado de los displays

Como vimos ms arriba, en la descripcin del hardware de este proyecto, la visualizacin de las horas y los
minutos se realiza mediante cuatro displays de 7 segmentos de ctodo comn. Esto significa que para
encender alguno de sus segmentos debemos proporcionar tensin al pin correspondiente de cada mdulo.
Para evitar utilizar varios pines del microcontrolador PIC16F628A elegido como cerebro del proyecto al
control de este display, se utiliz un registro de desplazamiento compuesto por 4 circuitos
integrados 74HC164N. Cada uno de ellos se encarga del control de los 7 segmentos y del punto decimal de
un display.
El nombre de los segmentos de cada display, segn la mayora de las hojas de datos, es el de la figura:

Displays utilizados.
All podemos ver que se nombran con letras de la a (el segmento superior del 8) hasta la g (el segmento
central), avanzando en sentido horario. El punto decimal suele llamarse dp (supongo que por dot point ),
pero nosotros lo llamaremos h.
Cada uno de los segmentos (y el punto decimal) de cada display se encuentran conectados, mediante un
resistor que limita la corriente que los atraviesa, a una de las salidas de los 74HC164N. Estos estn
conectados en cascada, por lo que cuando un dato sale de unos de los integrados se aplica a la entrada
del siguiente. Esto significa que con solo dos pines (CLOCK y DATA) podemos escribir los 4 displays.
Los primeros 8 bits enviados al registro de desplazamiento sern los encargados de determinar el encendido
de los segmentos del display de la izquierda (las decenas de las horas). Los siguientes 8 bits controlarn las
unidades de las horas, los 8 que vienen a continuacin manejarn el display que muestra las decenas de los
minutos, y los ltimos 8 bits determinaran el contenido del display que muestra las unidades de los minutos.
Esto quiere decir que si quisisemos mostrar 23:15 en el display, primero deberamos enviar los datos del
2, luego los del 3, los del 1 y finalmente los correspondientes al 5.
Para saber cual es el contenido que debemos enviar para representar cada digito es necesario que tengamos
bien presente la forma en que los circuitos integrados 74HC164N estn conectados a los displays.

Conexin entre los 74HC164N y los displays.


Si miramos el esquema elctrico anterior, veremos que el primer bit ingresado se encarga del encendido (o
apagado) del segmento d del display, luego de ser empujado por los 7 bits correspondientes a los dems
segmentos del display. Concretamente, el orden en que deben ingresarse los datos es d, h, c, g, b, a,
f y e. La tabla de la figura siguiente muestra el valor de cada uno de estos bits para formara cada uno de
los dgitos del 0 al 9. Hemos incluido el valor del byte en decimal y binario, para facilitar al lector la
programacin del display.

Tabla con los bits a enviar.

A programar!
Una vez que tenemos claro como debemos proceder, veamos como escribir un programa que muestre
informacin en el display. Comencemos por un ejemplo que muestra como enviar un 2 al registro
desplazamiento. El cdigo en PIC BASIC es el siguiente:

'-----CONFIGURO PUERTOS---------AllDigital
'Configuro el portA:
TRISA.2 = 0 'DATA HH:MM
TRISA.3 = 0 'CLOCK HH:MM

'Configuro el portB:
TRISB.1 = 0 'Salida, LEDs : en HH:MM
'------VARIABLES-----------------Dim i As Byte
Dim col As Byte
Dim aux As Byte
'----- Symbol ----------------Symbol clock7 = PORTA.3
Symbol data7 = PORTA.2
'Limpio el contenido del registro de desplazamiento
'escribiendo 32 "0" seguidos:
For i = 1 To 32
data7 = 0
clock7 = 0
clock7 = 1
Next i
'Escribo un "2" en el primer display
aux = 157 'Valor decimal de "2" (ver tabla)
'Este bucle recorre el byte enviando sus bits
'al registro de desplazamiento:
For col = 1 To 8
'Si el bit es "0", escribo un "0".
If aux.0 = 0 Then
data7 = 0
clock7 = 0
clock7 = 1
Else
'Si el bit es "1", escribo un "1".
data7 = 1
clock7 = 0
clock7 = 1
Endif
'Paso al bit siguiente
aux = ShiftRight(aux, 1)
Next col
Casi al final de este artculo encontrars videos que muestra como se van corriendo los datos por el registro
de desplazamiento. Por supuesto, hemos agregado un retardo de un segundo despus de enviar cada bit,
para que pueda verse como funciona.

Ahora, modifiquemos el programa anterior para que podamos mostrar la hora 23:15 en el display. Como
puede verse, hemos transformado las instrucciones que se encargan de enviar los 8 bits en una rutina, a la
que llamamos 4 veces, pasndole como dato (en aux) el byte a escribir:

'-----CONFIGURO PUERTOS---------AllDigital
'Configuro el portA:
TRISA.2 = 0 'DATA HH:MM
TRISA.3 = 0 'CLOCK HH:MM
'Configuro el portB:
TRISB.1 = 0 'Salida, LEDs : en HH:MM
'------VARIABLES-----------------Dim i As Byte 'Variable auxiliar
Dim col As Byte
Dim aux As Byte 'Variable auxiliar uso gral (WORD)
'----- Symbol ----------------Symbol clock7 = PORTA.3
Symbol data7 = PORTA.2
'Limpio el contenido del registro de desplazamiento
'escribiendo 32 "0" seguidos:
For i = 1 To 32

data7 = 0
clock7 = 0
clock7 = 1
Next i
'Escribo un "2" en el primer display
aux = 157 'Valor decimal de "2" (ver tabla)
Gosub escribo
'Escribo un "3" en el segundo display
aux = 188 'Valor decimal de "3" (ver tabla)
Gosub escribo
'Escribo un "1" en el tercer display
aux = 40 'Valor decimal de "1" (ver tabla).
Gosub escribo
'Escribo un "5" en el cuarto display
aux = 182 'Valor decimal de "5" (ver tabla)
Gosub escribo
End
'Este bucle recorre el byte enviando sus bits
'al registro de desplazamiento:
escribo:
For col = 1 To 8
'Si el bit es "0", escribo un "0".
If aux.0 = 0 Then
data7 = 0
clock7 = 0
clock7 = 1
Else
'Si el bit es "1", escribo un "1".
data7 = 1
clock7 = 0
clock7 = 1
Endif
'Paso al bit siguiente
aux = ShiftRight(aux, 1)
Next col
Return

Veamos este ltimo ejemplo, pero escrito en CCS:

//Device/Fuses/Etc.--------------------------------#INCLUDE <16F628A.H>
//Usamos un 16F628A
#FUSES NOWDT
//No Watch Dog Timer
#FUSES XT
//Con oscilador a cristal...
#use delay(clock=4000000)
//..de 4MHz.

#FUSES
#FUSES
#FUSES
#FUSES
#FUSES

NOPUT
NOPROTECT
NOBROWNOUT
NOLVP
NOCPD

//No
//No
//No
//No
//No

Power Up Timer
protegemos el codigo.
Brownout Reset
low voltage prgming
EE protection

//Declaramos la posicin de los puertos----------------------#BYTE PORTA = 0x05


#BYTE PORTB = 0x06
#BYTE PORTA_TRIS = 0x85
#BYTE PORTB_TRIS = 0x86
//Definimos el valor de CLOCK y DATA
#DEFINE DATA7 PIN_A2 //Nos referimos a PORTA.2 como "data7"
#DEFINE CLOCK7 PIN_A3 //Nos referimos a PORTA.3 como "clock7"
//-------------------------------------------------//---Envia un digito al registro de desplazamiento:
//-------------------------------------------------void escribo(int8 aux){
int i;
for (i=0;i<8;i++) {
// "i" ir de 0 a 7, de 1 en 1.
//Si el bit es "0", escribo un "0".
if (bit_test(aux,i) == 0) {
output_low(DATA7);
//Pongo "0" en DATA7...
output_low(CLOCK7);
//Pongo el CLOCK en bajo...
output_high(CLOCK7); //...y de nuevo en alto. Listo!
}
//Si el bit es "1", escribo un "1".
if (bit_test(aux,i) == 1) {
output_high(DATA7);
//Pongo "1" en DATA7...
output_low(CLOCK7);
//Pongo el CLOCK en bajo...
output_high(CLOCK7); //...y de nuevo en alto. Listo!
}
}
}
//-------------------------------------------------//---Limpia el display:
//-------------------------------------------------void borro_display(void){
int i;
for (i=1;i<33;i++) {
// "i" ir de 1 a 32, de 1 en 1.
output_low(DATA7);
//Pongo "0" en DATA7...
output_low(CLOCK7);
//Pongo el CLOCK en bajo...
output_high(CLOCK7); //...y de nuevo en alto. Listo!
}
}
main(){

//Asignamos cada pin como E/S segn corresponda:


PORTA_TRIS = 0b00000000; //1=ENTRADA, 0=SALIDA
PORTB_TRIS = 0b11110001; //1=ENTRADA, 0=SALIDA
//Limpiamos el display
borro_display();
//Escribo un "2" en el primer display
escribo(157); // 'Valor decimal de "2" (ver tabla)
//Escribo un "3" en el segundo display
escribo(188); // 'Valor decimal de "3" (ver tabla)
//Escribo un "1" en el tercer display
escribo(40); // 'Valor decimal de "1" (ver tabla)
//Escribo un "5" en el cuarto display
escribo(182); // 'Valor decimal de "5" (ver tabla)
}
Como puede suponerse, el redibujado del display ocurre a tal velocidad que es imperceptible para el ojo. Y al
no tener los dgitos correspondientes a los segundos, solo debe escribirse el display una vez por minuto. El
tiempo que insume enviar los 32 datos al registro de desplazamiento ronda los 160 microsegundos.

Suponiendo que tenemos resuelto el mecanismo que cada un segundo pone un flan en alto (algo que
veremos en el prximo numero, usando interrupciones), deberamos escribir una rutina (o una funcin, si
usamos CCS) que actualice el display y el segundero cuanto corresponda. Cada un tiempo determinado una
bandera se pondra en 1, y el cuerpo principal del programa debera actualizar la hora y mostrarla en el
display. Eso, justamente, es lo que hace el siguiente ejemplo en PIC BASIC:

'Esta rutina muestra HH:MM

muestro_hhmm:
'Muestro las decenas de las horas
aux1 = hora / 10
aux = LookUp(175, 40, 157, 188, 58, 182, 183, 46, 191, 190), aux1
Gosub escribo
'Muestro las unidades de las horas
aux1 = hora - (hora / 10) * 10
aux = LookUp(175, 40, 157, 188, 58, 182, 183, 46, 191, 190), aux1
Gosub escribo
'Muestro las decenas de los minutos
aux1 = minu / 10
aux = LookUp(175, 40, 157, 188, 58, 182, 183, 46, 191, 190), aux1
Gosub escribo
'Muestro las unidades de los minutos
aux1 = minu - (minu / 10) * 10
aux = LookUp(175, 40, 157, 188, 58, 182, 183, 46, 191, 190), aux1
Gosub escribo
Return
Se asume que aux1 y aux estn declaradas como BYTE, y que la rutina escribo vista antes esta presente
en el programa.

Firmware para el PIC


NO TENEMOS UN ARCHIVO HEX LISTO PARA GRABAR EN EL PIC. La idea detrs de este proyecto es el
aprendizaje, as que hemos preferido explicar paso a paso el funcionamiento de todas las rutinas que
componen el programa para que el usuario sea capaz de escribirlo por si mismo. Si an asi no quieres o no
puedes escribir el programa, podemos ofrecerte el chip ya programado para que puedas realizar tu
proyecto. (Clic aqu para saber ms sobre ese tema).

Videos
Uno de los ruidos o cantos generados por los animales, mas particularmente por los insectos, es el del grillo.
Como todos saben, no es raro que este insecto pase toda la noche emitiendo su molesto chirrido, y cuando
encendemos alguna luz para ver el origen del sonido, deja ce cantar. Esto hace la tarea de ubicarlo
particularmente dificultosa. Eso si, ni bien volvemos a la cama y apagamos la luz, el grillo recomienza su
"canto".
El mismo efecto puede lograrse electrnicamente, lo que explicaremos a continuacin:
[editar]

El circuito

El esquema elctrico del montaje propuesto es por dems sencillo. Utilizamos una LDR para detectar la
presencia o ausencia de la luz, para que nuestro "insecto electrnico" sepa si debe o no cantar. Ni bien se
apaga la luz, un temporizado construido sobre dos compuertas del CD4093B espera un tiempo (unos minutos)

basado en el valor de la resistencia de 470K y elcondensador electroltico de 1000uF/16V. Modificando esos


valores podemos obtener tiempo mayores o menores.
Una vez transcurrido ese tiempo, aparecer un estado alto en las entradas de las tercer compuerta del
CD4093B, que a su vez controla el encendido de un oscilador basado en nuestro amigo el NE555, que es el
que emite el sonido del grillo.
Si se enciende la luz, la LDR disminuye su resistencia, y provoca que conduzca el transistor BC547B, con lo
que el condensador de 1000uF de descarga y el sonido cesa. Si la luz se apaga otra vez, el ciclo se repite: se
espera un tiempo para cargar el condensador, etc. Este es el esquema del circuito propuesto:

Para que el amado del circuito sea lo mas fcil posible, hemos dibujado un circuito impreso y tambin un par
de imgenes tiles para el montaje:

[editar]

Autor

ntroduccin

Esquema elctrico.

Es posible reemplazar nuestros viejos pulsadores utilizando solo un puado de componentes fciles de
conseguir. Utilizaremos botones metlicos, eternos, que darn una nueva dimensin a nuestras posibilidades
de desarrollo. El circuito que presentamos aqu puede utilizarse en casi todos los proyectos que requieran el
accionar de interruptores.
Tabla de contenidos
[esconder]

1 Introduccin

2 El problema a resolver

3 La solucin

4 Autor

[editar]

El problema a resolver

Al levantarnos, por la maana, apagamos el despertador (pulsamos un botn), encendemos la luz (pulsamos
un botn), vamos al bao y encendemos la luz (pulsamos un botn), nos aseamos y al salir apagamos la luz
(pulsamos un botn). An no sabemos si ha salido el sol o est nublado y ya hemos pulsado botones una
innumerable cantidad de veces.
Cuando uno de estos botones que acompaan cada da de nuestras vidas comienza a fallar, comenzamos a
maltratarlo hasta que logramos que el artefacto en cuestin nos haga el honor de ejecutar la funcin que
deseamos. Este es un hecho estadstica comprobable a quin no le ha pasado alguna vez?
Cuando dicho aparato ya no puede soportar ms golpes, terminamos dndonos cuenta de la importancia que
tiene un sistema como el que describiremos en este artculo. Se trata de un sistema totalmente estanco, sin
partes mecnicas o mviles, que ser eterno.

Es notable que tan pocos componentes, soluciones problemas eternos.

[editar]

La solucin

Nuestro circuito necesita de un elemento metlico, conductor, que haga las veces de sensor de toque.
Hemos utilizado para ello la cabeza de un tornillo, aunque es posible utilizar alguna otra cosa en su lugar. Al
tocar este elemento estamos induciendo en el mismo una seal de 50 Hz. que ser rectificada por
los diodos identificados como D1 y D2 en el esquema. Esto provocara que un voltaje negativo se haga
presenten en condensador C3, el resistor R3 y la compuerta ( gate) del transistor Q1. Esto hace que el
transistor pase a un estado de corte.
A travs del resistor R2 proporcionamos un estado lgico alto a la entrada de la primer puerta del CD4069.
Este 1 es invertido por la segunda compuerta y aplicado a la entrada de control de una de las cuatro llaves
analgicas que posee el circuito integrado CD4066. Estas entradas requieren de un estado alto para activar la
llave analgica interna.
Dado que un CD4069 dispone de seis compuertas en su interior, y que un CD4066 tiene cuatro llaves,
podemos construir tres pulsadores de este tipo con solo dos circuitos integrados. Es importante recordar que
con estas llaves podremos conmutar seales de baja tensin y corriente. Esto incluye seales de audio, video,

circuitos de continua, seales TTL o CMOS y toda aquella aplicacin que no requiera consumos de ms de 60
mA. Si el aparato a conmutar consuma una corriente mayor, daaremos la llave del CD4066.

La versatilidad de este circuito nos permitir disear mdulos selectores de funciones, controles de volumen,
pulsadores de reset, teclados, etc. Todo aquel proyecto que requiera el uso de un botn pulsador, dejar de
tener un elemento que algn da pueda fallar.
En una prxima entrega veremos cmo, con un pequeo agregado, podemos transformar este pulsador
momentneo, en un pulsador con retencin, pudiendo sustituir tambin a esta clase de frgiles dispositivos.

Introduccin

4 reles para el PIC TRAINER.

Una placa practicamente indispensable para nuestro PIC TRAINER. Con su ayuda, podremos controlar hasta
4 cargas de 220V/7A mximo.
Tabla de contenidos
[esconder]

1 Introduccin

2 El circuito

3 PCB

4 Lista de componentes

5 Autor

[editar]

El circuito

Esta pequea placa contiene 4 reles. Como no podemos conectar directamente la bobina de un rele a una de
las salidas de un PIC, hemos utilizado un circuito integrado ULN2803 que se encarga de manejar la corriente
necesaria a partir de la sear recibida desde el PIC TRAINER. Dicho integrado tiene la posibilidad de manejar
hasta 8 dispositivos, por lo que queda "medio" circuito sin utilizar.
La construccin es muy sencilla, puede realizarse en una hora o poco mas de trabajo, y su costo es muy bajo.
Vemosla en detalle.

Es es el aspecto que tendr nuestra placa.


Si bien los mdulos que utilizamos para albergar los PICs de 18, 28 o 40 carecen de la posibilidad de
comandar motores o lamparas en forma directa, su caracter completamente modular hace que podamos
desarrollar una placa como esta que si lo permite.
La cantidad de salidas disponibles (4 en este caso) pueden no ser suficientes en algunas aplicaciones. En ese
caso, puede construir ms de una de estas placas, o bien fabricar el Mdulo Reles x 8.

Esquema elctrico del Mdulo Reles x 4.


Viendo el esquema elctrico del circuito, lo primero que nos llama la atencin es que esta placa necesita de
una fuente de alimentacin externa, capaz de entregar 12V/1A. Efectivamente, la corriente requerida por las
bobinas de los reles no puede ser tomada directamente del mdulo central al que se conecta, por lo que
deberemos utilizar una fuente separada.
Hemos utilizado slo un conector de expansin, ya que cada uno de los previstos en las placas centrales de
este juego de mdulos proveen conexin para cuatro pines de los puertos cada una, por lo un cable de
conexin bastar para utilizar los 4 canales de salida.
La imagen siguiente nos muestra la funcin de cada uno de los pines de los conectores IDC utilizados. La fila
de pines etiquetados "NC" quedan hacia el lado de afuera del PCB.

Pin-out del conector

[editar]

PCB

Para que el amado del circuito sea lo mas fcil posible, hemos dibujado un circuito impreso y tambin un par
de imgenes tiles para el montaje:

[editar]

Lista de componentes

La lista de componentes necesarios para este montaje es la siguiente:

2 conectores IDC (machos) de 10 vas


4 reles para circuito impreso, con bobina de 12V y contactos de 220V/7A
1 diodo zener de 15V/1W
1 bornera para circuito impreso
1 circuito integrado ULN2803N (Con su zcalo)
Pertinax, etc.

[editar]

Autor

Introduccin

Epgrafe

Una placa practicamente indispensable para nuestro PIC TRAINER. Con su ayuda, podremos controlar hasta
8 cargas de 220V/7A mximo.
Tabla de contenidos
[esconder]

1 Introduccin

2 El circuito

3 PCB

4 Lista de componentes

5 Autor

[editar]

El circuito

Esta pequea placa contiene 8 reles. Como no podemos conectar directamente la bobina de un rele a una de
las salidas de un PIC, hemos utilizado un circuito integrado ULN2803 que se encarga de manejar la corriente
necesaria a partir de la sear recibida desde el PIC TRAINER
La construccin es muy sencilla, puede realizarse en una hora o poco mas de trabajo, y su costo es muy bajo.
Vemosla en detalle.

Es es el aspecto que tendr nuestra placa.


Si bien los mdulos que utilizamos para albergar los PICs de 18, 28 o 40 carecen de la posibilidad de
comandar motores o lamparas en forma directa, su caracter completamente modular hace que podamos
desarrollar una placa como esta que si lo permite.
La cantidad de salidas disponibles (8 en este caso) seguramente ser suficiente para la mayora de las
aplicaciones. Pero si tenemos entre manos un proyecto ms complejo, nada impide que construyamos varias
placas iguales.

Esquema elctrico del Mdulo Reles x 8.


Viendo el esquema elctrico del circuito, lo primero que nos llama la atencin es que esta placa necesita de
una fuente de alimentacin externa, capaz de entregar 12V/1A. Efectivamente, la corriente requerida por las
bobinas de los reles no puede ser tomada directamente del mdulo central al que se conecta, por lo que
deberemos utilizar una fuente separada.
Hemos utilizado dos conectores de expansin, ya que cada uno de los previstos en las placas centrales de
este juego de mdulos proveen conexin para cuatro pines de los puertos cada una, por lo que se necesitan

dos cables de conexin para utilizar los 8 canales de salida. Por supuesto, nada impide usar solo un cable si
solo necesitamos cuatro lneas de salida.
La imagen siguiente nos muestra la funcin de cada uno de los pines de los conectores IDC utilizados. La fila
de pines etiquetados "NC" quedan hacia el lado de afuera del PCB.

Pin-out del conector

[editar]

PCB

Para que el amado del circuito sea lo mas fcil posible, hemos dibujado un circuito impreso y tambin un par
de imgenes tiles para el montaje:

[editar]

Lista de componentes

La lista de componentes necesarios para este montaje es la siguiente:

2 conectores IDC (machos) de 10 vas


8 reles para circuito impreso, con bobina de 12V y contactos de 220V/7A
1 diodo zener de 15V/1W
1 bornera para circuito impreso
1 circuito integrado ULN2803 (Con su zcalo)
Pertinax, etc.

Introduccin

Epgrafe

Con este verdadero clsico de la electrnica construiremos un circuito prctico. El proyecto cumple la funcin
de retardar la entrada de la red despus de que la compaa elctrica nos restablezca el servicio, impidiendo
que nos afecten los tan molestos y peligrosos cortes de electricidad que se producen antes de que quede
totalmente restablecido el fluido elctrico.
Tabla de contenidos
[esconder]

1 Introduccin

2 Principio de funcionamiento

3 Otros usos

4 Montaje

5 Tareas finales

6 Lista de materiales

7 Descargas

8 Autor

El circuito integrado conocido por todos como 555 lleva con nosotros ms de 30 aos. De hecho, ya estaba
en el mercado antes de que casi todos nosotros entrsemos en el mundo de la electrnica.
Integra una parte analgica con otra digital que lo ha hecho durante muchos aos indispensable en multitud
de montajes, ya sea como protagonista o como circuito asociado. No es la misin de este articulo explicar el
funcionamiento de este chip, ya se podra (y se ha hecho) escribir un libro sobre l.

[editar]

Principio de funcionamiento

El proyecto que nos ocupa en esta ocasin es una verdadera configuracin de oscilador astable, pero
trabajando como monoestable gracias al control del pin de Reset del NE555. Es un temporizador de la
conexin a la red elctrica. No detecta los cortes elctricos muy rpidos, aunque en general estos no
producen perjuicio en nuestros equipos. Detecta los cortes con duraciones entre unos 100 y 200
milisegundos, aunque esto puede variarse modificando el valor de los componentes asociados y debido a la
tolerancia de los mismos.

Esquema elctrico del circuito, en su versin 1.0


Como puede verse en el esquema de la figura anterior, el circuito posee un rel (RL1), que es el elemento
utilizado para impedir que pase la corriente elctrica durante un tiempo despus de la restauracin del servicio
por parte de la compaa de electricidad mediante uno de sus dos juegos de contactos. El otro juego controla
el pin de Reset del NE555.
Cuando el circuito termina su temporizacin activa el rel, que restablece el suministro elctrico y al mismo
tiempo congela el circuito en este ultimo estado, dejndolo preparado para un nuevo ciclo en el caso de una
segunda cada de la tensin de la red elctrica.
La red se aplica al circuito mediante la bornera CN1 y la salida a controlar se conecta a CN2. Estaaremos
todas las pistas asociadas a la ruta de 220 AC en nuestra placa de circuito impreso (ver foto siguiente). Con
las mismas tendremos especial cuidado en su manipulado ya que trabajamos con tensiones ms que
peligrosas.

Estaaremos todas las pistas asociadas a la ruta de 220 AC


Aunque los contactos del rel no sufrirn desgaste haciendo maniobras continuas, hay que tener en cuenta
que a pesar de soportar 5 Amperes por circuito, debemos mantener su corriente de trabajo en un valor menor,
estando sta limitada tambin por la superficie de las pistas de la placa del circuito impreso y por las mismas
borneras. Para controlar corrientes ms elevadas se puede utilizar este circuito para gobernar elementos de
control de mayor potencia.
Para aumentar la inmunidad a los cortes de tensin incrementaremos la capacidad de C4, y mediante la red
RC compuesta por R1 y C2podremos variar el tiempo de espera previo a la reactivacin del circuito despus
de ser restaurada la red elctrica por la compaa.

[editar]

Otros usos

Seguidamente paso a explicar su segunda utilidad, en la que los profesionales vern realmente una aplicacin
interesante. Mediante CN3podemos conectar una carga de una potencia a elegir, en este caso 200 Watios
(dos lmparas de filamento de 100 Watios en paralelo), que permitirn limitar la corriente de entrada mientras
dure el periodo de temporizacin. Esto permite que en los lugares donde hay fuentes de alimentacin
compuestas por filtros con condensadores de elevada capacidad estos obtengan una limitacin a su demanda
instantnea de corriente de carga, evitando tener que colocar costosos automatismos elctricos de proteccin
y rearme de la red elctrica precisamente por estas elevadas corrientes instantneas.

[editar]

Montaje

Una vez que tengamos la placa de circuito impreso taladrada y verificada se proceder a soldar los
componentes, desde los ms pequeos a los de mayor tamao. Terminado este proceso procederemos con el
estaado de las pistas de potencia (220AC), siendo generosos con el estao.
Terminado todo esto comprobaremos que la distribucin de las tensiones en la placa sean correctas,
prestando especialmente atencin la salida del estabilizador 7812 (aprox. 12VDC) y la presente entre los
pines 1 y 8 (alimentacin) del NE555, que debe ser la misma tensin presente a la salida del estabilizador.

Vista de la parte inferior del circuito impreso.

Distribucin de los componentes.


Si la tensin que suministra la fuente de alimentacin es superior en 4 o 5 voltios a la del regulador (12VDC)
procederemos a colocar un disipador miniatura al mismo. Tendremos especial cuidado al orientar los

componentes con polarizacin en la placa, como los diodos,diodos LED, condensadores electrolticos y el
propio circuito integrado.
Puedes descargar el archivo PDF con el diseo del PCB, listo para imprimir y a escala desde aqui.

Tareas finales

[editar]

Una vez comprobado el buen funcionamiento del circuito, procederemos a la limpieza de las pistas y
soldaduras usando una brocha plana no muy grande con las cerdas cortadas a unos 3 o 4cm de su base e
impregnada sta en disolvente universal. Una vez secas las pistas, se proceder al barnizado de las mismas
con una ligera (pero consistente) capa de barniz en spray para uso en circuitos impresos.

Placa terminada, con todos sus componentes colocados.

[editar]

Lista de materiales

B1: PUENTE RECTIFICADOR B380C1500


C1: CONDENSADOR 100nF CERAMICO, MKT, MKP
C2: CONDENSADOR 100uF/25V ELECTROLITICO
C3: CONDENSADOR 100nF CERAMICO, MKT, MKP
C4: CONDENSADOR 100uF/25V ELECTROLITICO
C5: CONDENSADOR 100nF CERAMICO, MKT, MKP
CN1: BORNERA SEPARACION 5mm PIN, TIPO AK500/2
CN2: BORNERA SEPARACION 5mm PIN, TIPO AK500/2
CN3: BORNERA SEPARACION 5mm PIN, TIPO AK500/2
D1: DIODO 1N4004

D2: LED 3MM AMBAR


D3: LED 3MM ROJO
F1: PORTAFUSIBLE PARA CIRCUITO IMPRESO CON FUNDA PROTECTORA Y FUSIBLE DE 1AMP
IC1: CIRCUITO INTEGRADO CMOS TS555CN
IC2: CIRCUITO INTEGRADO LM7812CV
R1: RESISTENCIA 220k, 1/4W
R2: RESISTENCIA 470, 1/4W
R3: RESISTENCIA 10k, 1/4W
R4: RESISTENCIA 1k8, 1/4W
R5: RESISTENCIA 1k, 1/4W
R7: VARISTOR 275V
RL1-12VDC: RELE OMRON G2R-2
TR1: TRANSFORMADOR ARISTON TR-4112 2.4VA 230V/12V

VARIOS: PLACA DE CIRCUITO IMPRESO SIMPLE CARA, BROCA 0.7mm Y 1mm, BASE PARA MONTAR
EN CARRIL

[editar]

Descargas

Puedes descargar el archivo PDF con el diseo del PCB, listo para imprimir y a escala desde aqui.

Este articulo forma parte de la Revista uControl #3

La gran mayora de los


aficionados a la
electrnica, tarde o
temprano, se propone la
construccin de un cartel
basado en una matriz de
diodos LEDs. El propsito
de este nmero de
la Revista uControl es
explicar, de forma clara y
sencilla, la forma de
hacerlo.
Tambin hemos escrito
una gran cantidad de
material extra, incluyendo
montajes y tutoriales que
seguramente te sern de
utilidad. De hecho, el
numero actual tiene 12
pginas ms que el
anterior. Por primera vez
nuestra revista tiene 66
pginas.

NE555 como Monostable: Herramienta para calcular el valor de los componentes.


[editar]

Introduccin

NE555 Monoestable

Se trata de una pequea aplicacin desarrollada en Visual Basic 6.0 que se encarga de calcular el valor de los componentes

necesarios para que el circuito integrado NE555 genere a su salida un pulso del tiempo deseado.
Tabla de contenidos
[esconder]

1 Introduccin

2 El programa

3 Descarga

4 Artculos relacionados

5 Autor

[editar]

El programa

En la ventana del programa podemos ver un esquema del circuito que debemos construir para utilizar este integrado como
"monoestable". Los componentes que lo rodean tomarn el valor adecuado para el tiempo que querramos estipular.

Pantalla inicial del programa.

Para indicar el tiempo que deseamos, simplemente debemos seleccionar la unidad de medida de la lista desplegable e introducir el
valor del tiempo en el cuadro de texto. La imagen siguiente muestra como deberiamos hacer para conseguir un tiempo de 8
segundos:

Indicamos un tiempo de 8 segundos.

Una vez introducido el tiempo, presionamos el boton "Calcular":

Presionamos el boton "Calcular" para ver el resultado.

La pantalla del programa cambiar, mostrando el valor de los componentes. En realidad, se muestran dos juegos de valores: uno en
azul y el segundo en rojo.
Los valores en azul son los ideales. Si pudiesemos conseguir resistores y condensadores de esos valores, el tiempo del pulso de
salida seria exactamente el buscado. Pero como no se fabrican componentes de cualquier valor, hemos indicado en color rojo cual
sera el resultado obtenido si utilizamos componentes del valor comercial ms cercano al ideal calculado.

Los componentes muestran el valor.

Debajo del valor del pulso ideal se puede ver el valor obtenido utilizando componentes reales, y el porcentaje de error que represent
Si deseamos hacer otro clculo, simplemente volvemos a introducir el tiempo deseado y lo recalculamos.

[editar]

Descarga

Puedes descargar el programa, que es libre y gratuito, desde este enlace.


[editar]

Artculos relacionados

Puedes encontrar ms informacin sobre el NE555 en los siguientes enlaces:

Todo sobre el circuito integrado NE555

Cmo controlar la velocidad de un motor con el NE555

Un juguete con el NE555: Grillo electrnico

Driver para motores paso a paso bipolares con 74LS194 y NE555

Ms circuitos y proyectos en uControl

Acondicionador de seal para LM35x

El viejo sensor de temperatura LM35 es un clsico en los circuitos comerciales y de aficionados.


Este pequeo sensor (y varios de sus "parientes") entrega diez milivoltios por cada grado centgrado.
Permite una precisin importante, pudiendo leerse fracciones de grado. Pero para ello es necesario hacer un
adecuado tratamiento de la seal, ya que al trabajar con tensiones tan pequeas, cualquier ruido o
interferencia puede hacernos tomar una lectura errnea, o a veces, errtica.
Tabla de contenidos
[esconder]

1 El autor

2 El circuito

3 Autor

[editar]

El autor

El amigo Carlos (dogflu), de Granada (Espaa), integrante del Foro Todopic y autor de la PIC EBASIC ha
desarrollado este circuito acondicionador, que permite leer con facilidad la salida del LM35x mediante un pin
ADC del microcontrolador.

[editar]

El circuito

El circuito acondicionador esta pensado para poder elegir el rango de trabajo del LM35, siempre teniendo en
cuenta como temperatura mnima 0, ya que se podra fcilmente, con las modificaciones adecuadas segn el
datasheet del LM35, trabajar con todo el rango de temperaturas del sensor, pero el actual acondicionador no
nos indicara si la temperatura es positiva o negativa. Este es el circuito propuesto por Carlos:

Actualmente el circuito queda ajustado mediante RA2 a ganancia 10, pero para poder llegar a un valor mas
prximo al rango dinmico de trabajo del ADC, se podra sustituir este (RA2) por uno de 20K con lo que la
ganancia mxima llegara a 21 = (R5 + RA2) / R5, este cambio permitira llegar a los 3 voltios.
No conviene llevar la tensin de salida (pin 7) del IC2B muy prxima a la de alimentacin ya que este dejara
de trabajar linealmente.
El valor de R5 parece redundante en la formulita, pero en realidad no lo es, no hay mas que cambiar el valor
de R5 por 2K y veris que todo cambia... Hay que tener en cuenta que "el que reparte se lleva la mejor parte",
en este caso el que disea se reserva colocar los valores de los componentes, y en este caso ganancia de
IC2B es igual a 1 + 10 = 11.
La ganancia del circuito restador, se calcula de la siguiente manera: teniendo en cuenta que siempre se
cumpla lo siguiente R1 = R2 y R3 = R4, ganancia = R4/R2. De esta forma podramos simplificar el circuito
realizando todo con un nico amplificador operacional, por ejemplo con el CA3140, en este caso para que el
circuito funcionara igual que el otro, tendramos que darle ganancia 10, y esto se hara cambiando el valor de
R3 y R4 por 100K (100K = R3 = R4).
R7, como trabajamos sobre una placa para desarrollos, es fcil que el pin RA4, que es nuestra entrada
analgica, por un despiste u olvido lo dejemos como salida creando una lucha de niveles entre la salida del
IC2B y el pin del PIC, as que R7 evita este problema.
R8, cierra el entorno de voltaje de ajuste del RA1, solo necesitamos unos pocos cientos de milivoltios,
conseguimos hacernos la vida mas fcil ya que el RA1 de esta forma, nos dar un grado de precisin muy
elevado.
Teniendo esto en cuenta procedemos a ajustar el circuito para trabajar con un rango de temperatura de 15 a
30 centgrados.

[editar]

Autor
Datos del Autor
Nombre: Carlos Ortega Sabio
email: carlos.ortegasabio@ucontrol.com.ar
Ver los artculos de este autor.

Introduccin

Funcionamiento de una matriz de LEDs

La gran mayora de los aficionados a la electrnica, tarde o temprano, se propone la construccin de un cartel
basado en una matriz de diodos LEDs. El propsito de este artculo es explicar, de forma clara y sencilla, la
forma de hacerlo.
A lo largo de estos parrafos veremos la forma de abordar el problema, y el principio de funcionamiento de una
matriz de LEDs de un tamao cualquiera. No construiremos ni programaremos una, pero si veremos como se
debe hacer. Si el lector necesita un proyecto de este tipo listo para usar, puede consultar los que se listan al
final de este artculo.
Tabla de contenidos
[esconder]

1 Introduccin

2 Utilidad de un cartel de LEDs

3 El Hardware

3.1 Encendiendo un LED

3.2 Multiplexado

3.3 Filas y columnas

3.4 Cmo funciona la matriz?

3.5 El brillo de los LEDs

3.6 El circuito de ejemplo

3.6.1 El circuito controlador

3.6.2 El display

4 El software

4.1 Textos animados

5 Conclusin

6 Temas relacionados

7 Autor

Utilidad de un cartel de LEDs


Un cartel formado por varias filas y columnas de LEDs, convenientemente programado, puede servir para
pasar mensajes publicitarios, decorar nuestra habitacin, ordenador o lo que se nos ocurra. No solo se trata
de un proyecto ms que interesante para llevarlo a cabo como hobbysta, sino que puede resultar interesante
como un producto comercializable. Es que estas matrices, que en algunos pases se las conoce como cartel
de LEDs o Publik, son un recurso muy frecuentemente utilizado con fines publicitarios o informativos.

El Hardware
Desde el punto de vista del hardware, bsicamente consiste en una matriz de pxeles similar a los de la
pantalla de un ordenador, generalmente de un solo color (la mayora de las veces rojos), aunque con el
descenso de los precios de los LEDs individuales o en paneles, es cada vez ms frecuentes ver carteles
bicolores o incluso multicolores, aprovechando la ventaja del los LEDs RGB, que pueden mostrar cualquier
color.

Matriz de LEDs RGB de 8x8 puntos.

Como es de suponer, el desarrollo, construccin y programacin de un cartel e este tipo es una tarea bastante
compleja, pero perfectamente posible para cualquiera que tenga conocimientos bsicos de electrnica y
programacin. Este artculo puede ser utilizado como una gua paso a paso del proceso de creacin de un
cartel de este tipo. Y aunque no construyas uno, leyndolo aprenders algn truco til que podrs emplear en
otro proyecto.
Para mantener el nivel de la explicacin dentro de lo razonable, y para no gastar una fortuna en nuestro cartel,
lo disearemos monocromtico, utilizando LEDs de color rojo nicamente. Las dimensiones de la matriz
utilizada para mostrar los textos la decidir cada uno de los lectores, pudiendo ser tan pequea (7 filas y 5
columnas) o tan grande como se desee. Un tamao razonable y muy empleado es el de 7 filas por 80
columnas, que permite escribir unas 14 o 16 letras de 7 pixeles de altura. A pesar de no ser demasiado
grande, ya habrs sacado la cuenta de que se necesitan 560 LEDs individuales para armar el cartel.

Encendiendo un LED
En el nmero 2 de la Revista uControl, en el artculo llamado PICs y LEDs: una pareja perfecta vimos como
encender un LED desde unmicrocontrolador. Y de hecho es algo muy simple: conectamos el nodo
del LED al PIC, el ctodo a un resistor y el extremo de este a +V. Cuando el pin del microcontrolador est en
1, el LED enciende. Pero lamentablemente este esquema no sirve para la construccin de un cartel matricial
como este, ya que al utilizar cientos de LEDs necesitaramos tener un microcontrolador que tenga como
mnimo ese nmero de pines de salida (y por supuesto, no existe).

Multiplexado
El secreto, por supuesto, est en el multiplexado. Esta tcnica permite utilizar unos pocos pines de E/S del
microcontrolador para manejar una serie de circuitos integrados que se encarguen de excitar los LEDs. Hay
varias maneras, y muchos modelos diferentes de circuitos para hacer esto.

Pueden usarse un tipo de integrado digital llamado LATCH, que bsicamente es una memoria en la que
escribimos un valor, y lo mantiene en sus salidas hasta que nosotros lo indiquemos. De esta manera, usando
varios latches podramos encender los LEDs por turnos, rpidamente para que no se note el parpadeo, y de
esa manera formar una palabra en el cartel.
Otra forma es utilizar un registro de desplazamiento como los analizados en el nmero 1 de la Revista
uControl. Y de hecho, es de esta forma cmo vamos a disear nuestro cartel. Como vimos en esa
oportunidad, un registro de desplazamiento funciona de la misma manera en que funciona una cola de gente
que espera para entrar en un cine. Por un extremo de la cola van ingresando las personas que llegan, y por el
otro van saliendo de la fila. En un registro de desplazamiento, en lugar de personas tenemos 0 y 1. Lo
bueno de esto es que para meter datos (0s y 1s) en el registro de desplazamiento solo hacen falta tres
pines del microcontrolador, independientemente de lo largo que sea.
Estos pines se encargan de tres tareas: Uno de ellos, al que denominaremos DATA es el encargado de
decirle al registro de desplazamiento que lo que introduciremos es un 0 o un 1. El segundo se encarga de
avisar al registro que el dato ya est listo para ser ingresado, y lo llamaremos CLOCK. Y el ultimo, que no es
indispensable, es el RESET, que se encarga de vaciar la fila escribiendo 0s en todas las salidas del
registro.

Para desarrollar nuestro ejemplo utilizaremos el circuito integrado 74HC164N, que es un registro de
desplazamiento de 8 bits. Es decir, con el se puede armar una fila de 8 personas. Para construir un cartel
de 80 columnas, necesitaramos utilizar 10 de estos integrados, uno a continuacin del otro. Afortunadamente,
este integrado cuesta solo centavos.
En la figura 1 podemos ver la funcin de cada uno de los pines del 74HC164N y en la figura 2 de que forma
podemos conectar uno a continuacin del otro para obtener un registro de desplazamiento de cualquier
longitud.

Figura 1.

Figura 2.

Filas y columnas
Bien, con el esquema explicado podemos encender los LEDs que queramos de una fila de 80 bits de largo. Si
en el registro de desplazamiento introducimos 11111111, los 80 LEDs estarn encendidos. Si queremos
encender uno por medio, escribiremos 1010101. Por supuesto, cuando lleguemos a la parte de la
programacin veremos cmo se ingresan uno a uno los 0 y 1 en el registro.
En este punto puede ser necesario analizar el tema de las filas. Si tenemos, por ejemplo, un cartel con 7 filas,
y lo explicado recin sirve para manejar solo una de ellas debemos utilizar un registro de desplazamiento
para cada una de las filas restantes? Afortunadamente, la respuesta es no.
Si bien podramos utilizar 7 registros de este tipo, la cantidad de circuitos integrados necesarios (56 de ellos),
la complejidad del circuito impreso y el costo implicado lo hacen poco aconsejable. Nosotros aprovecharemos
un defecto del ojo humano, que mantiene la imagen vista durante unos 20 o 30 milisegundos, para dibujar
una fila a la vez, pero muy rpidamente, de forma que todo el cartel parezca estar encendido a la vez. Si, se
trata de un sistema similar al empleado en el cine o en la televisin.
Si seguimos pensando en un cartel de 7 filas y 80 columnas, sin utilizar registros de desplazamiento
necesitaramos 560 pines de entrada/salida. Con el esquema propuesto solo necesitamos 7 de ellos para
seleccionar la fila a escribir, y tres para manejar el registro de desplazamiento. Es decir, un PIC de 3 euros y
18 pines servira perfectamente para realizar el proyecto.

Cmo funciona la matriz?


Como dijimos antes, la pantalla est formada por una serie de filas y columnas. La interseccin entre ambas
contiene un LED. Para que este encienda, tiene que recibir simultneamente un 0 en la fila, y un 1 en la
columna. Cuando se dan estas condiciones, la electrnica de la placa se encarga del encendido del LED en
cuestin. La forma de generar un mensaje sobre el display es relativamente sencilla, si nos atenemos al
siguiente algoritmo:

1) Apagar todas las filas.


2) Escribir los valores correspondientes a la primer fila en el registro de desplazamiento, teniendo en cuenta
que el primer digito binario colocado corresponde al ltimo LED de la fila, y el ultimo en poner al de la primer
columna.
3) Encenderla primer fila, esperar un tiempo, y volver a apagarla.
4) Repetir los pasos 2 y 3 para las filas restantes.

El tiempo de la demora debe ser tal que permita una visualizacin correcta, sin molestos parpadeos y con los
LEDS brillantes. Hay que tener en cuenta que si utilizamos tiempos mayores para el encendido de cada fila, el
brillo de los LEDS ser mayor, pero tambin aumentar el parpadeo. La forma de transformar este algoritmo
en un programa funcional depende de cada programador, y puede ser ms o menos complejo segn se
permitan diferentes tipos de caracteres, animaciones, etc.

El brillo de los LEDs


Un punto a tener en cuenta es la intensidad del brillo que puede proporcionar el tipo de LED que utilicemos.
Un LED, utilizado en aplicaciones normales, se alimenta con unos 3V y requiere unos 15mA (varia
ligeramente de un modelo a otro) para brillar con una buena intensidad. En caso de un tpico cartel de 7 filas,
a pesar de que las veremos encendidas al mismo tiempo, cada LED solo estar encendido la sptima parte
del tiempo, por lo que su brillo ser siete veces inferior al normal, y nuestro cartel apenas ser visible.
Afortunadamente esto tambin tiene solucin: dado que los tiempos que permanecer encendido cada LED
no superar los 20 o 30 milisegundos, podremos hacerles circular una corriente mayor a la nominal sin que
lleguen a daarse, con lo que brillarn mucho ms intensamente, dando como resultado un cartel
perfectamente visible.
Respecto de los LEDs, podremos utilizar LEDs discretos (y soldar 1120 terminales) o comprar paneles de
7x5 LEDs que tienen unos 14 o 16 terminales (segn el modelo), estando ya interconectados en forma de
matriz. Quizs sea esta la mejor alternativa.

El circuito de ejemplo
Dado que nuestro hipottico cartel tiene fines meramente educativos, y la intencin mantener su costo lo ms
bajo posible para que cada lector pueda construirlo, por lo que intentaremos realizarlo en base a un
microcontrolador pequeo, como el PIC16F628A. Si el lector necesita un cartel de mayor tamao o con
capacidad para almacenar textos o imgenes ms extensos, deber utilizar algn micro con mayor capacidad
y velocidad.
La utilizacin de una memoria EEPROM externa de un tamao bastante grande, como la 24C256, nos brinda
la posibilidad de almacenar mucho texto en ella. Por supuesto, esto tambin puede ser ampliado con mucha
facilidad.
Dividiremos el esquema electrnico del cartel en dos partes: en primer lugar veremos toda la lgica de control,
y en segundo, la pantalla con el registro de desplazamiento. A la hora de llevarlo a la prctica se puede
incluso hacer dos circuitos impresos por separado. Esto le permitira al lector experimentar con otros
controladores sin necesidad de volver a montar la placa de los displays, o viceversa.

El circuito controlador
Este es el cerebro de nuestro cartel. Ser el encargado de gestionar el encendido de cada LED mediante
rdenes enviadas a las columnas mediante el registro de desplazamiento y a las filas.
Como una fila tendr muchos LEDs (80, por ejemplo)y existe la posibilidad que en algn momento puedan
estar todos encendidos, no podemos conectarlas directamente a pines de E/S del PIC, porque la corriente que
demandaran hara que el puerto del microcontrolador pase a mejor vida. Para evitar esto, utilizaremos en
medio un transistor capaz de manejar la corriente requerida.

Controlador del cartel.

Analicemos el circuito de la figura anterior. El centro de todo es el microcontrolador PIC16F628A, que tiene su
pin de RESET conectado a un pulsador y un resistor de 10K. Este pulsador permite reiniciar el cartel cuando
lo necesitemos. Tambin se ha implementado un circuito de reloj externo, basado en un cristal de 4 MHz y
dos condensadores de 22 nF. Esto le permite al PIC ejecutar un milln de instrucciones por segundo, ms que
suficientes para este proyecto.
Los pines 1 y 2, correspondientes a los terminales A2 y A3 del microcontrolador, se han utilizado para acceder
a una memoria EEPROM del tipo 24C256. Esta memoria es de acceso serial (por eso necesitamos solo dos
pines del PIC para usarla) mediante el protocolo I2C, y tiene capacidad para almacenar 32.768 Bytes. Si
nuestro programa hace uso de ella, podemos guardar all 32.768 caracteres (con el display en modo texto) o
ms de 450 pantallas de 7x80 pxeles en modo grfico. Si resultara insuficiente, puede ponerse una memoria
de mayor capacidad, siempre consultando la hoja de datos de la misma para asegurarnos su compatibilidad
con la del ejemplo.
Todo el puerto B del PIC est dedicado a controlar las filas del cartel. Como ya habrn notado, tenemos 8
salidas para filas, y nuestro cartel tiene solo 7 filas. Efectivamente, la fila 8 no se utilizar si nuestra pantalla
est construida con mdulos LED de 7x5, pero el circuito de control est preparado para el uso (en caso de

que alguien los prefiera) de mdulos de 8x8 o bien para crear un cartel de 8 filas mediante el uso de LEDs
sueltos. Quienes utilicen mdulos de 7x5 pueden ahorrarse el transistor de la fila 8.
Por ltimo, los pines 17 y 18, correspondientes a los terminales A0 y A1 del microcontrolador se encargan de
la gestin del registro de desplazamiento. El programa deber generar los pulsos de reloj necesarios por el pin
18, y meter los datos en el registro por el pin 17.
No hemos incluido una fuente de alimentacin. Cualquier fuente comercial (o construida en casa) que sea
capaz de entregar 5V y 2A ser suficiente. Esos 5V deben estar bien regulados, y por supuesto, el software
deber estar escrito correctamente, es decir, no encender varias filas al mismo tiempo, ya que el consumo de
todo el cartel encendido sera de unos 80 x 70 x 20mA = 11.2 A, lo que podra destruir la fuente en caso de
que no cuente con protecciones adecuadas.

El display
Esta es la parte del proyecto que todo el mundo va a mirar, as que debemos ser prolijos al montarlo. Como
puede verse en el esquema elctrico de la figura 4, hemos utilizado un total de 10 circuitos
integrados 74HC164N para construir el registro de desplazamiento de 80 bitsde largo, uno para cada
columna. Como explicamos, si alguien quiere hacer un cartel ms largo o ms corto, deber poner ms o
menos integrados.

De esta forma se conectan los LEDs


en filas y columnas.

Si miramos el esquema del display, veremos que en la parte superior se muestra como est conectado
cada LED dentro de la matriz de 5x7. Esto es importante tenerlo en cuenta a la hora de comprar los mdulos,
ya que hay una gran cantidad de modelos, y algunos de ellos tienen los LEDs conectados en el sentido
inverso.

Cada display tambin difiere en la funcin de cada terminal, por lo que se debe estar a atentos a la hoja de
datos para disear el circuito impreso apropiado, y conectarlos como corresponda.
En el dibujo del circuito no hemos representado los 16 mdulos ni los 10 circuitos integrados, por una cuestin
de espacio, pero es fcil darse cuenta de qu forma se conectan las filas y columnas de los dems displays a
cada 74HC164N.
No utilizaremos el pin de RESET de los 74HC164N. En lugar de ser controlados desde el microcontrolador,
cada RESET est puesto a +5V, de forma que el integrado funcione continuamente. Si por algn motivo se
desea borrar la pantalla, basta con enviar 80 0s al registro de desplazamiento y listo. El tiempo empleado
para esa tarea es despreciable, ya que el microcontrolador estar ejecutando 1 milln de instrucciones por
segundo. El utilizar una lnea de control menos nos permitir tener una placa de circuito impreso ligeramente
ms sencilla.
Cada salida de los 74HC164N, como dijimos, se conecta a una columna de la serie de displays. Esta conexin
se efecta mediante unresistor de 1/8 de Watt, que en el esquema se ha dibujado con un valor de 330 ohm.
Ese fue el valor adecuado para el tipo de mdulos que conseguimos para hacer el prototipo, pero su valor
variar de un modulo a otro. Se puede montar solo un display con resistores de 330 ohms, y ver como es el
brillo de los LEDs. Si es escaso, se puede bajar el valor a 220 o 100 ohms. Con eso debera ser suficiente

Pequeo cartel de LEDs SMD y una Matriz de 8x8 LEDs comunes.

El software
Ahora nos toca abordar la programacin del hardware propuesto. El cartel del LEDs que estamos
construyendo puede adoptar diferentes tamaos de acuerdo a las necesidades o componentes que cada uno
consiga. Esto hace que sea imposible proporcionar un programa especfico que funcione en cualquier versin
de cartel que se haya construido, pero sin embargo podemos hacer algo mucho mejor: ver de qu manera se
escribe un programa de este tipo en BASIC (del PIC SIMULATOR IDE) para que cada uno lo adecue a
su proyecto.
Debemos pensar en un programa que nos permita mostrar pxeles individuales representados sobre la
pantalla de nuestro cartel. Sigamos con el ejemplo del cartel de 80 columnas y 7 filas de altura, recordando
que todo lo que expliquemos puede ser adecuado para carteles de otro tamao.
Lo primero que necesitamos saber es que el barrido del cartel debe hacerse por filas. Es decir, mostraremos
el contenido de la primera fila, esperamos un tiempo determinado (unos pocos milisegundos), mostramos el
de la segunda fila, esperamos nuevamente, y as hasta llegar a la ltima fila, tal como se expresa en el
algoritmo visto mas arriba.
El motivo de no emplear las columnas para realizar el barrido es que como son ms numerosas, el tiempo
total que se necesita para escribir por filas es mucho menor que el necesario para escribir por columnas, y
en la prctica eso significa que el brillo de nuestro cartel ser mucho mayor si lo hacemos por filas, ya que
cada LED permanecer encendido 1/7 del tiempo. Si lo hicisemos por columnas, cada LED estara (en este
ejemplo) encendido solo 1/80 del tiempo, por lo que su brillo seria unas 10 veces menor.
Ahora bien, el primer problema a resolver es Cmo escribo los datos de una fila del cartel? Esto tiene una
solucin ms que simple: solo debemos introducir en el registro de desplazamiento los 0 y 1 necesarios
para que los LEDs que queremos estn encendidos en esa fila tengan +V en sus nodos. Por supuesto,
mientras hacemos esto todos los pines del microcontrolador que controlan las filas debern estar apagadas,

para que no se perciba una dbil luminosidad en todos los LEDs de la fila que estamos escribiendo a medida
que pasan los datos a travs del registro.
El primer valor que se debe meter en el registro de desplazamiento es el que corresponder a la ltima
columna. A medida que vamos ingresando los siguientes, se van desplazando hacia el final del cartel. Cuando
hayamos introducido el valor nmero 80 (que corresponder a la primera columna) el primer valor que
metimos habr llegado a su posicin. En ese momento tenemos todo el registro escrito, y ya podemos activar
la salida del PIC que corresponde a esa fila en particular.
El tiempo que debe estar encendida la fila se puede determinar empricamente, pero por lo generan unos 10
milisegundos es suficiente. Si tenemos 7 filas, 10 milisegundos de demora permitiran escribir todo el cartel en
unos 70 milisegundos, por lo que obtendramos un mximo de 1000/70 = 14 frames por segundo. Este es un
muy buen valor para una pantalla de este tipo, ya que solo estamos mostrando un texto y no un video.
En los clculos anteriores no tuvimos en cuenta el tiempo que se demora en escribir los 80 valores en el
registro de desplazamiento. Veamos porque: cada valor ingresado en el registro de desplazamiento demora
unos 2 microsegundos. Es decir, demoramos 2 x 80 = 160 millonsimas de segundo en escribir toda la fila. Si
multiplicamos este valor por 7 tendremos en tiempo que necesitamos para escribir las 7 filas del cartel, lo que
nos da 1136 millonsimas de segundo, es decir, poco ms de 1 milsima. Este es un tiempo despreciable
frente a las 70 milsimas que nos tomamos para mostrar la imagen completa, y podemos despreciarla.
Ahora vamos a ver, en BASIC, como hacer para escribir un valor en el registro de desplazamiento.
Recordemos que el dato ingresa al registro en el momento que se produce la transicin de 0 a 1 del pulso
de CLOCK, por lo que se debern seguir los siguientes pasos para ingresar cada uno de los 80 valores
correspondientes a cada fila:

1) Fijar el valor del dato a escribir (si DATA es 1, hacer PORTA.0 = 1, si no PORTA.0 = 0)
2) Poner la lnea de CLOCK en estado bajo (PORTA.1 = 0).
3) Esperar un 1 microsegundo (WaitUs 1)
4) Poner la lnea de CLOCK en estado alto (PORTA.1 = 1). En este punto el dato entra efectivamente en el
registro de desplazamiento.
5) Esperar un 1 microsegundo (WaitUs 1)
6) Fin

En BASIC, si hemos declarado que

Symbol clock = PORTA.1


Symbol data = PORTA.0
Un 0 se escribira as:

data = 0
clock = 0
WaitUs 1
clock = 1
WaitUs 1

Y un 1 de la siguiente manera:

data = 1
clock = 0
WaitUs 1
clock = 1
WaitUs 1
Para escribir los 80 valores de la fila necesitamos hacer una subrutina que, tomando 10 bytes de la
memoria EEPROM (10 bytes x 8 bits = 80 bits, es decir, una fila completa) los vuelque al registro de
desplazamiento.
Si repetimos 7 veces este procedimiento, tendramos una pantalla de 7x80 completa. Eso significa que en la
EEPROM cada pantalla va a necesitar de 70 bytes (10 bytes por fila, 7 filas) para almacenar el mapa de bits
correspondiente.
Veamos un ejemplo de cmo podra ser la subrutina encargada de escribir un byte tomado de la EEPROM en
el registro de desplazamiento, a la que hemos llamado escriboByte:

escriboByte:
For columna = 1 To 8
If dato.7 = 0 Then
data = 0
clock = 0
WaitUs 1
clock = 1
WaitUs 1
Else
data = 1
clock = 0
WaitUs 1
clock = 1
WaitUs 1
Endif
aux = ShiftLeft(dato, 1)
Next columna
Return
Esta funcin debe ser llamada 10 veces para escribir la fila completa, con el valor a escribir guardado en la
variable dato. El motivo por el cual el bucle FOR-NEXT toma los bits del byte desde el 7 hasta el 0 se debe a
que justamente el ltimo bit es el que debe ingresar primero al registro de desplazamiento, tal como
explicamos antes.
Debemos partir de la base de que la informacin de la EEPROM la vamos a grabar desde un ordenador, y
que seguramente crearemos un programa que permita, a partir de un texto determinado, generar los bits
individuales que componen el bitmap de cada pantalla del cartel. Esto simplifica muchsimo la programacin
del microcontrolador, ya que solo debe dedicarse a leer la EEPROM y volcar su contenido alregistro de
desplazamiento, sin tener que dibujar las letras a partir de una tabla ni nada por el estilo.

Textos animados
Para animar el texto mostrado en el display hay dos opciones. La primera de ella es que, una vez que el
bitmap de la EEPROM ha sido mostrado en la pantalla, comencemos a redibujarlo continuamente (si no lo
hacemos, el texto desaparecer de la pantalla) pero cada un tiempo determinado (1 segundo por ejemplo)
escribimos un bit 0 ms en cada fila. Es decir, escribimos 81 bits en el primer segundo, 82 en el segundo,
etc. Esto har que el texto se desplace de izquierda a derecha, y es la animacin ms fcil de implementar.
Sin embargo, lo normal es que los textos de desplacen en sentido contrario, por lo que nuestro programa
debera hacer lo siguiente: comenzar escribiendo 80 0s en el registro antes de enviar la informacin de la
fila, luego escribir 79 0s, y as sucesivamente. De esa manera, el texto al principio no ser visible (estar
dibujado a la derecha, fuera del registro de desplazamiento), y luego a medida que el numero de 0s
escritos va disminuyendo, comenzara a ser visible, entrando desde la derecha.
La segunda manera es que el software que escribe los datos en la EEPROM guarde cada cuadro de la
animacin, uno a continuacin del otro, y que el PIC se limite a escribir cada cuadro ledo durante (por
ejemplo) un segundo. Esto vuelve a facilitar mucho la programacin del PIC, a la vez que permite animaciones
mucho ms complicadas. Por supuesto, el precio a pagar es el espacio de memoria EEPROM requerido para
implementar esta tcnica.

Conclusin
Si bien no se trata de un proyecto completo y concreto, es muy posible que este artculo haya servido para
que te animes a encarar el diseo y construccin de tu propio cartel de LEDs. Solo hemos intentado exponer
la forma (o al menos una de ellas) en que se puede atacar este problema, de modo que cualquier hobbysta o
estudiante se anime y pueda hacer realidad su propio cartel animado. No se trata de un proyecto sencillo,
pero una vez terminado seguramente los llenara de orgullo. Desde aqu los animamos a que encaren este
proyecto, y que por supuesto, nos comenten los resultados obtenidos.

Temas relacionados
Estos proyectos y tutoriales pueden servirte de ayuda a la hora de disear tu propio cartel de leds:

Como construir tus propios PCB


El lenguaje BASIC del PIC SIMULATOR IDE
Entorno de programacin y simulacin PIC SIMULATOR IDE
Cmo funciona un registro de desplazamiento?

Construye tu propia Matriz de LEDS de 8x8 (Proyecto completo)


Construye tu propia Matriz de LEDS de 7x32 (Proyecto completo)
El Relojito, un reloj muy especial (Proyecto completo)
esto tenerlo en cuenta para que funcione
cable rojo: 5v
Cable Blanco: Data Cable Verde: Data +
Cable Negro: Tierra o GND

El cargador est diseado para cargar dos pilas AA NiMH o NiCd de cualquier capacidad (siempre son
los mismos) a unos 470mA. Se cargar:
-NiCd 700mAh en alrededor de 1,5 hora.
-NiCd 1100mAh 2,5 horas.
-NiMH 1600mAh en alrededor de 3,5 horas.
-NiMH 2000mAh 4,5 horas.
-NiMH 2500mAh en aproximadamente 5,5 horas.
Tiene un corte automtico de carga de circuito basado en la temperatura de las clulas y las clulas se
pueden dejar en el cargador por tiempo indefinido despus de corte.

Carctersticas:
-Tamao: 10cm x 3cm x 1.5cm.
-Clulas: Dos pilas AA, NiMH o NiCd.
-Corriente de carga: 470mA.
-Mtodo de terminacin de carga: Temperatura de las bateras (33 C).
-Corriente: 10mA.
-Fuente de alimentacin: Desktop, Laptop, o Hub USB.
-Condiciones de funcionamiento: 15 C a 25 C.

Circuito:

Circuito impreso:

Disposicin componentes: (tener en cuenta que esta imagen es vista desde arriba y la anterior desde
abajo)

Deben poner los elementos como se indica en la imagen del circuito impreso.
Luego de ponerlos, soldarlos con estao.

Con la plaqueta lista, deben poner las celdas para las pilas, conectando como indica la foto: Un cable
que salga del "B+" al positivo (resorte) y otro cable que salga del "B-" al negativo (el que no es un
resorte)

Para terminar, conectar el cable USB de la siguiente forma: El cable rojo (5v) en el agujero USB+ y el
cable negro (tierra) en el agujero USB-.

INFRARROJOS

Reflexivo IS471F
Descripcin: Sensor basado en el dispositivo SHARP
IS471F inmune a interferencias de luz normal. Este sensor
incorpora un modulador/demodulador integrado en su
carcasa y a travs de su patilla 4 controla un diodo LED de
infrarrojos externo, modulando la seal que este emitir,
para ser captada por el IS471F que contiene el receptor.
cuando un objeto se sita enfrente del conjunto
emisor/receptor parte de la luz emitida es reflejada y
demodulada para activar la salida en la patilla 2 que pasar
a nivel bajo si la seal captada es suficientemente fuerte.
El uso de luz IR modulada tiene por objeto hacer al sensor relativamente
inmune a las interferencias causadas por la luz normal de una bombilla o la
luz del sol.
Funcionamiento: Como puede verse en el esquema, el sensor se
alimenta por sus patitas 1 y 3 y estas corresponden a Vcc y Gnd
respectivamente, la patita 2 es la salida del detector y la patita 4 es la
salida que modula al led emisor externo. Mediante el potencimetro P1 se
varia la distancia a la que es detectado el objeto. Contra mas baja sea la
resistencia de este potencimetro, mas intensa ser la luz emitida por el
diodo de IR y por lo tanto mayor la distancia a la que puede detectar el
objeto.
El el siguiente esquema vemos el simple circuito necesario para hacer
funcionar al sensor.

Usos: Creo que estos se usan para deteccin de obstculos por


reflexin y deteccin de oponentes en combates de sumo. (digo creo
porque aun no e probado este dispositivo y no se que sensibilidad tiene y si
es adecuado para esto)
Ideas y mejoras: En el circuito anterior lo que vemos es un detector de
distancia fija ajustable por un potencimetro, pero seria posible hacerlo de
varias distancias o incluso un detector gradual de distancias. Para varias
distancias se podra conmutar varias resistencias y as calcular la distancia

del objeto haciendo pruebas antes, y creando una tabla de equivalencias.


Para el detector gradual tambin seria posible controlando la corriente que
le llega al diodo emisor mediante un conversor D/A y un circuito de
potencia basado el algn transistor, todo esto controlado por un
Controlador.
Todava no e probado nada y esto tan solo son ideas pero si alguien lo prueba y quiere compartir
sus experiencias, se lo agradeceramos todos.

ReflexivoCNY70
Descripcin: El CNY70 es un pequeo dispositivo con forma
de cubo y cuatro patitas que aloja en su interior un diodo emisor
de infrarrojos que trabaja a una longitud de onda de 950 nm. y un
fototransistor (recetor) estando ambos dispuestos en paralelo y
apuntando ambos en la misma direccin, la distancia entre emisor y
receptor es de 2.8 mm. y estn separados del frontal del encapsulado por 1
mm.
El la siguiente figura vemos la disposicin interna del CNY70 mirando el
encapsulado desde arriba, as pues tenemos el diodo emisor de infrarrojos
a la izquierda y el fototransistor a la derecha.

Funcionamiento: El fototransistor conducir mas, contra mas luz


reflejada del emisor capte por su base. La salida de este dispositivo es
analgica y viene determinada por la cantidad de luz reflejada, as pues
para tener una salida digital se podra poner un disparador Trigger Schmitt
y as obtener la salida digital pero esto tiene un problema, y es que no es
ajustable la sensibilidad del dispositivo y los puntos de activacin de
histerisis distan algunos milivoltios uno del otro (ver explicacin en el
esquema de la LDR ). Para solventar este problema muestro el siguiente
circuito basado en un amplificador operacional configurado en modo
comparador, en la salida del circuito obtendremos una seal cuadrada lista
para su interconexin con la entrada de cualquier Controlador.

La sensibilidad del circuito es ajustable mediante la resistencia variable de


10k (aconsejo poner una resistencia multivuelta). Para comprobar y
visualizar la seal de salida es posible montar un diodo led en la salida con
su resistencia de polarizacin a masa, si as lo hacemos veremos que
cuando el sensor detecta una superficie blanca o reflectante el led se
ilumina ya que la salida del LM358 pasa a nivel alto y por lo tanto alimenta
al led que tiene su nodo conectado directamente.
La salida del LM358 varia de 0V para nivel lgico 0 a unos 3,3V para nivel
lgico 1, con lo que puede ser llevada directamente a un disparador trigger
schmitt (p.ej. 74LS14) para conformar pulsos de niveles TTL de 0 a 5V si
fuese necesario.
Usos: Comnmente utilizado en los robots rastreadores (Sniffers) para
deteccin de lneas pintadas sobre el suelo, debido principalmente a su
baja distancia de deteccin.

Ideas y mejoras: Mas que una idea esto es un descuido que tuve al
montar el circuito en una protoboard y asi comprob que quitando la
resistencia de polarizacin de 10k que tiene conectada el fototransistor a su
emisor hacemos que el circuito se vuelva mucho mas sensible (e inestable
tambin jeje). Con un buen ajuste de la resistencia variable e conseguido
detectar superficies reflectantes a una distancia de unos 5 cm. tambin al
pasar la mano por enfrente del sensor se activaba la salida. Supongo que
habr una manera menos inestable de hacer esto as que ya sabis... a
cacharrear y haber que sale jejeje

ReflexivoGP2Dxx
Descripcin: El sensor
GP2DXX de sharp es un
dispositivo de reflexin por
infrarrojos con medidor de
distancia proporcional al
ngulo de recepcin del haz
de luz que incide en un
sensor lineal integrado,
dependiendo del modelo
utilizado, la salida puede ser
analgica, digital o booleana.

Funcionamiento: El dispositivo emite luz infrarroja por medio de un led


emisor de IR, esta luz pasa a travs de una lente que concentra los rayos
de luz formando un nico rayo lo mas concentrado posible para as mejorar
la directividad del sensor, la luz va recta hacia delante y cuando encuentra
un obstculo reflectante rebota y retorna con cierto ngulo de
inclinacin dependiendo de la
distancia, la luz que retorna
es concentrada por otra lente
y as todos los rayos de luz
inciden en un nico punto del
sensor de luz infrarroja que
contiene en la parte receptora
del dispositivo. Este sensor
es un CCD lineal y
dependiendo del ngulo de
recepcin de la luz incidir
esta en un punto u otro del
sensor pudiendo de esta
manera obtener un valor
lineal y proporcional al ngulo
de recepcin del haz de luz.

Dependiendo del modelo elegido leeremos de una manera u otra la salida


de este con lo cul tendremos que remitirnos al datasheet del modelo
elegido para ver su funcionamiento interno.

En los modelos analgicos la salida es un voltaje proporcional a la


distancia medida.
En los modelos digitales la lectura ser de 8 bits serie con reloj
externo.
En los modelos Booleanos la salida ser de 1 bit y este marcara el
paso por la zona de histresis del sensor con lo cual solo
tendremos una medicin de una distancia fija.

Datasheets

Rango de medida

Tipo de salida

GP2D-02

10 a 80 cm.

Digital 8 bits

GP2D-05

10 a 80 cm.(adj, micro pot.)

Lgica 1 bit

GP2D-12

10 a 80 cm

Analgica (0-3V)

GP2D-15

adj. a 24cm de fabrica

Lgica 1 bit

GP2D-120

4 a 30 cm.

Analgica (0-3V)

Usos: Debido a su gran rango de medida este sensor es adecuado


para detectar obstculos reflectantes como paredes, usado en robots de
exploradores para los de laberintos entre otros.

Ideas y mejoras: Debido a su gran directividad se puede montar un


sensor GPD2 en un servo y as tener un radar de IR cubriendo de esta
manera un radio de 180 aprox.

Descripcin de uso del GP2D02: Este sensor proporciona una salida


en serie digital con un valor de un byte proporcional al ngulo de recepcin
del haz de luz, este valor no es lineal a la distancia medida as que hay que
usar un calculo para saber la medida de distancia en centmetros. En el
ejemplo mostrado mas abajo se usa otro mtodo, que es simplemente una
tabla de conversin de valores conocidos.

En la fotografa siguiente
vemos la disposicin de
pines en el conector de
salida del GP2D02:
1.-GND
2.-Vin
3.-Vcc
4.-Vout

El dispositivo se alimenta poniendo a +5V el pin VCC y GND a 0V(masa).


El pin Vout es la salida de datos en serie con lgica positiva y niveles TTL.
Vin es la entrada con la que comandaremos el funcionamiento del sensor,
hay que tener muy en cuenta una caracterstica de este pin y es que la
salida es a drenador abierto y esta prohibido poner esta entrada a una
salida TTL o CMOS ya que esto provocara la destruccin de la entrada,
solo acepta niveles bajos y por lo tanto para acoplarla a la salida de un
microcontrolador es necesario poner un diodo (p.ej.: 1N4148) tal como se
muestra a continuacin:

Una vez tenemos conectado el sensor nos queda mandarle hacer una
captura y leer el resultado, para conseguir esto hay que seguir unos
sencillos pasos:

1. La entrada Vin en reposo a de ser nivel lgico alto con lo que el


diodo bloqueara este estado y solo cuando se ponga un nivel
lgico bajo ser cuando el sensor reciba la orden, sabido esto,
indicamos al sensor que inicie una captura poniendo a nivel lgico
bajo el pin Vin y mantendremos el estado bajo un tiempo de 70mS,
transcurridos los cuales volveremos a poner Vin a nivel lgico alto.
Ahora el sensor ya tiene el dato listo para ser transmitido y como el
bus de salida es serie tenemos que sincronizar para saber cuando
salen los bits, el sensor lo consigue poniendo cada bit en Vout por
cada flanco de bajada de la seal Vin.

2. Espera de 0,2mS o menos para iniciar el primer flanco de bajada.


3. Poner Vin a nivel lgico bajo con lo cual iniciamos el primer flanco
de bajada de la seal y el sensor nos responde poniendo el bit de
mayor peso "MSB" en Vout.
4. Leer el bit de Vout y almacenarlo debidamente para completar el
byte correspondiente al dato de salida.
5. Poner Vin a nivel lgico alto.
6. Repetir 7 veces ms, los pasos de 3 a 5 teniendo en cuenta que
hay que tardar un mnimo de 1mS para leer los 8 bits con lo que si
lo hacemos muy rpido el sensor no responder debidamente.
7. Una vez ledos los 8 bits tenemos que esperar un mnimo de
1,5mS o mas para poder ordenar al sensor otra captura de
distancia.

Se puede acelerar la medida comprobando cuando pasa a nivel alto la


seal Vout mientras se mantiene a nivel bajo Vin en los 70mS de inicio de
medicin aunque recomiendo esperar los 70mS.

Medidor de distancias con PIC16F876 y LCD 2x16:

Nota: Como puede verse en el esquema no esta puesto el circuito oscilador


de 4 MHz necesario para que funcione el montaje, no olvidarse de ponerlo!
(cristal de 4MHz y condensadores de 27pF)

Programa en ensamblador para medidor Gp2d02:

GP2D02.asm

Descargar

El programa usa una tabla de conversin calibrada para usar con una
cartulina blanca como objeto distante para la medicin y muestra en el LCD
la distancia en centmetros continuamente, para otros objetos de diferente
color se puede modificar la tabla fcilmente.

MECANICOS

Bumper
Descripcin: El bumper es un conmutador de
2 posiciones con muelle de retorno a la posicin de
reposo y con una palanca de accionamiento mas o
menos larga segn el modelo elegido.
Funcionamiento: En estado de reposo la patita
comn (C) y la de reposo (R) estn en contacto
permanente hasta que la presin aplicada a la
palanca del bumper hace saltar la pequea pletina acerada interior y
entonces el contacto pasa de la posicin de reposo a la de activo (A), se
puede escuchar cuando el bumper cambia de estado, porque se oye un
pequeo clic, esto sucede casi al final del recorrido de la palanca.
Usos: Se usan para deteccin de obstculos por contacto directo. No
son adecuados para robots de alta velocidad ya que cuando detectan el
obstculo ya estn encima y no da tiempo a frenar el robot.
Ideas y mejoras: Pocas mejoras puede tener un dispositivo tan simple
pero una buena idea seria utilizar un multiplexor para poner mas bumpers
de control en nuestro robot y usar el mnimo de lneas de control.

MAGNETICOS

ULTRASONIDOS

Bsico
Descripcin: Los ultrasonidos son vibraciones del aire de la misma
naturaleza que el sonido audible pero de una frecuencia mas elevada que
8
parte de 20 000 Hz hasta 5.10 Hz. no audibles estos por el odo humano.
Se alcanzan longitudes de onda que se aproximan a la luz visible.
Funcionamiento: Para producirlos se utilizan las propiedades
piezoelctricas del cuarzo.
Usos: Se utilizan en la obtencin de emulsiones fotogrficas de grano
muy fino, en sondeos acsticos (deteccin de fisuras, mediciones, etc.. ),
como bactericidas y como limpiadores de superficies entre otros.
mas informacin en cuanto pruebe a fondo...

Luz

LDR
Descripcin: La LDR (Light Dependent Resistor) o resistencia
dependiente de la luz, como su propio nombre indica es una
resistencia que varia su valor en funcin de la luz que incide sobre su
superficie. Contra mas sea la intensidad de luz que incida en la
superficie de la LDR menor ser su resistencia y contra menos luz
incida mayor ser la resistencia. La forma externa puede variar de la
mostrada en esta foto ya que este modelo en concreto no es muy
comn pero la funcin es la misma.
Funcionamiento: Para hacernos un medidor de luz ambiental o una
fotoclula que encienda un determinado proceso en ausencia o presencia
de luz podremos hacerlo de dos maneras, usando un amplificador
operacional para detectar y ajustar la sensibilidad y punto en que se dispara
la salida como en el caso del CNY70 mostrado mas arriba o bien hacerlo
como se muestra en el siguiente circuito, que es en base a un disparador
trigger schmitt TTL que conformara una seal totalmente compatible
TTL para ser aplicada a un microcontrolador o puerta lgica compatible.

El circuito consta de un divisor de tensin


formado por la LDR, una resistencia y un
disparador trigger schmitt inversor
modelo74LS14. Como la LDR varia en funcin
de la luz, la seal de salida del divisor tambin lo
har y cuando pase el umbral de disparo del
trigger schmitt este cambiara el estado de su
salida segn corresponda.
Los umbrales de disparo para el 74LS14 son de
0,9 y 1,7 voltios, esto quiere decir que cuando la
seal en la entrada del disparador supere los 1,7
voltios se tomara como un 1 lgico en la entrada y la salida al ser inversa
tomara el nivel lgico bajo o 0 voltios, si el voltaje de entrada baja por debajo
de 0,9 voltios se tomara como un 0 lgico en la entrada con lo que la salida
tomara un nivel lgico 1.
El problema que se comentaba en la explicacin del CNY70 radica en la
distancia en voltios entre el umbral de disparo alto y bajo, que es de 0,8
voltios entonces imaginemos que si la luz recibida en el sensor va
incrementando hasta llegar a los 1,7 voltios y rebosarlos este ser el punto
de activacin pero no se desactivara al volver a pasar por este punto, ya que
la salida del circuito no se desactivara hasta que no se baje por debajo del
umbral de 0,9 voltios, esto hay que tenerlo muy en cuenta ya que para
algunos casos donde los niveles a detectar sean muy distantes como por
ejemplo detectar niveles de todo o nada o luz y oscuridad puede dar igual
pero si lo que se quiere es activar algn circuito en un determinado nivel de
luz y desactivarlo justo cuando ese nivel ya no exista, entonces el circuito ya
no es valido y ser mejor usar el circuito basado en amplificador operacional
en modo comparador de tensiones.
Nota: El circuito integrado 74LS14 dispone en su interior de 6 puertas
inversoras trigger schmitt, as que hay que tener especial cuidado en no
dejar ninguna entrada no usada al aire, esto es sin conexin alguna ya que
la puerta empezara a oscilar y podra causar la destruccin de dicha puerta,
para que esto no suceda hay que conectar todas las entradas a un nivel
lgico estable, normalmente a GND. las salidas se dejaran como es lgico al
aire ya que tendrn el nivel lgico inverso que en su entrada.
Usos: Las LDR se usan para detectar niveles de luz ambiente o
seguimiento de luces o linternas, as pues podemos crear un seguidor de luz
con varias LDR dispuestas alrededor del robot y hacer que este siga una luz
directa que le enfoque, tambin pueden usarse para encender los focos o
luces de balizamiento del robot en ausencia de luz.
Ideas y mejoras: Una mejora es sustituir la resistencia fija del divisor de
tensin por una variable de valor adecuado, para poder ajustar el umbral de
disparo.

Temperatura

LM35
Descripcin: El LM35 es un sensor de temperatura con una
precisin calibrada de 1C y un rango que abarca desde -55 a
+150C.
El sensor se presenta en diferentes encapsulados pero el mas comn es el
to-92 de igual forma que un tpico transistor con 3 patas, dos de ellas para
alimentarlo y la tercera nos entrega un valor de tensin proporcional a la
temperatura medida por el dispositivo. Con el LM35 sobre la mesa las
patillas hacia nosotros y las letras del encapsulado hacia arriba tenemos que
de izquierda a derecha los pines son: VCC - Vout - GND.
La salida es lineal y equivale a 10mV/C por lo tanto:

+1500mV = 150C
+250mV = 25C
-550mV = -55C

Funcionamiento: Para hacernos un termmetro lo nico que


necesitamos es un voltmetro bien calibrado y en la escala correcta para que
nos muestre el voltaje equivalente a temperatura. El LM35 funciona en el
rango de alimentacin comprendido entre 4 y 30 voltios.
Podemos conectarlo a un conversor Analgico/Digital y tratar la medida
digitalmente, almacenarla o procesarla con un Controlador o similar.
Usos: El sensor de temperatura puede usarse para compensar un
dispositivo de medida sensible a la temperatura ambiente, refrigerar partes
delicadas del robot o bien para loggear temperaturas en el transcurso de un
trayecto de exploracin.

Circuito de prueba: El siguiente montaje es un medidor de temperatura


de 4 canales usando un PIC16F876 y un
LCD para mostrar los datos aunque se
puede modificar fcilmente el programa
para obtener los datos de temperatura y
calcular con ellos lo que fuese necesario.
Para una medida real con el conversor del Analgico/Digital se ha dispuesto

un generador de tensin de referencia ajustable modelo LM336 externo al


pic, con lo cual la medida de temperatura ser simple y fiable. El rango de
medidas que soporta este montaje es solo de temperaturas positivas y
abarca desde 0 a +150C.
En el LCD se muestran los 4 canales T1=RA0, T2=RA1, T3=RA2, T4=RA5.

Nota: Como puede verse en el esquema no esta puesto el circuito oscilador


de 4 MHz necesario para que funcione el montaje, no olvidarse de ponerlo!
(cristal de 4MHz y condensadores de 27pF). Tampoco olvidar poner
condensadores de desacoplo de 100nF entre las patillas de alimentacin de
cada integrado lo mas cerca posible de estas para evitar interferencias por
la lnea de alimentacin que son muy criticas usando el conversor A/D del
pic.

Ajuste: Hay un nico ajuste que es necesario hacer correctamente y es

referente a la tensin de referencia para el conversor A/D, lo haremos


quitando el Controlador PIC de su zcalo y midiendo entre el pin nmero 5
correspondiente a "RA3 +Vref" y GND, entonces ajustaremos por medio de
la resistencia variable multivuelta (recomiendo multivuelta y no normal por
precisin de ajuste) para que en el polmetro nos marque exactamente 2,56
V con lo cual se consigue que con una precisin de conversin A/D de 8 bits
cada 10mV represente un incremento en el byte de salida del conversor y
por lo tanto lo podamos representar de manera sencilla sin hacer clculos
complejos.
Programa en ensamblador para termmetro 4 canales:

X-Temp_LM35.asm

Descargar

HUMEDAD

SHT11
Descripcin: El SHT11 de la
casa www.sensirion.comes un sensor integrado de
humedad calibrado en fbrica con salida digital mediante
un bus serie sincrono y protocolo especifico. El dispositivo
tambin dispone de un sensor de Temperatura integrado
para compensar la medida de humedad dependiendo de
la temperatura, en casos extremos. Cuenta tambin en su interior con un
calefactor para evitar condensacin en el interior de la cpsula de medida
para condiciones de niebla o similar donde existe condensacin.
Funcionamiento: El SHT11 se puede alimentar con un rango de
tensincontinua comprendido entre 2,4 a 5V y es necesario proveer lo mas
cerca posible del chip un condensador de desacoplo de 100nF entre GND y
VCC. En la imagen puede observarse una pequea PCB
(Printed Circuit Board) realizada al efecto para albergar al
SHT11 y su condensador de desacoplo, ya que el sensor
se presenta en encapsulado para montaje superficial
LCC (Lead Chip Carrier) y es difcil de quitar una vez
soldado, as que mejor trabajar con pines mas standard

como un SIL de 4 pines.


Como puede verse en el datasheet del SHT11, el chip dispone de 10 pines
aunque solo se usan 4 de ellos y los dems se debern soldar en pads al
aire, simplemente para la sujecin del integrado.
El pin DATA corresponde a la salida/entrada de datos para comandar y leer
el sensor y es un pin triestado por lo que necesita de una resistencia de
polarizacin a Vcc (push-up). SCK se utiliza para sincronizar la transmisin y
no dispone de frecuencia mnima.

Transmission Start: Para comunicarse con el SHT11 lo primero que hay que
hacer es mandar una secuencia de Inicio de Transmisin "Transmission
Start". Esta consiste en poner a cero lgico la lnea de datos mientras SCK
esta a uno, seguidamente se genera un pulso bajo en SCK mientras la lnea
DATA sigue a cero y para finalizar se pone a 1 DATA mientras SCK esta a
1, seguidamente se baja a cero tambin SCK y finaliza la secuencia dejando
la lnea de datos y Clock en los estados lgicos por defecto, DATA en
estado alto y SCK en estado bajo.

Lo siguiente ser mandar un comando de los siguientes que acepta:


Comando
Cdigo binario
0000x
Reservado
00011
Medida de Temperatura
00101
Medida de Humedad
00111
Leer el registro de estado interno
00110
Escribir el registro de estado interno
0101x-1110x
Reservado
11110
Generar un Reset al software
interno, reponiendo a los valores por
defecto el registro de estado. Hay
que esperar 11mS al menos
despues de mandar este comando.

El protocolo de transmisin de comandos esta basado en un byte completo


o lo que es lo mismo 8 bits, como los comandos son de 5 bits tan solo el
resto de bits a la izquierda siempre sern 0. Por lo que se mandaran primero
los 3 ceros seguido del comando para completar el byte.

El SHT11 indicar una recepcin valida con un pulso de ACK en la lnea de


datos que es bidireccional (no lo olvidemos) y lo har en el siguiente pulso
de CLK despus de haber completado los 8 bits del comando, por lo tanto
acto seguido despus de enviar el comando hay que configurar como
entrada el puerto del microcontrolador conectado a DATA del SHT11 y
generar una seal de CLOCK para que el sensor nos mande su respuesta
ACK y lo har poniendo la lnea a nivel bajo ya que como se dijo mas arriba
la lnea de datos esta polarizada a VCC por lo tanto siempre hay un 1 lgico
en ella y lo que hace el SHT11 es forzar a 0 lgico con su salida a colector
abierto.
Secuencia de medida: Suponiendo que ya sabemos mandar un comando y
por ejemplo hemos mandando un comando "00000101" correspondiente
a"Medida de Humedad", una vez recibido el ACK desde el sensor hay que
esperar a que este complete la adquisicin y nos entregue su medida, esto
suele tardar unos 55mS para una resolucin de salida de 12bits o bien, unos
11mS para una resolucin de 8 bits. Como este tiempo de adquisicin no es
muy exacto y puede variar dependiendo de la alimentacin del sensor, y por
lo tanto de su oscilador interno. Para evitar esperas innecesarias el sensor
genera un pulso bajo en la lnea de datos y as se sabe que lo siguiente ya
sern datos validos, esto se hace comprobando la lnea de datos cada x
tiempo hasta que esta pase a nivel bajo. Si es nivel alto aun no a acabado y
cuando recibamos un nivel bajo ser la indicacin de adquisicin
completada y pasaremos a leer la medida del sensor.
Ahora se generan 8 pulsos de reloj en la lnea CLK y se guarda el estado de
cada bit que nos retornara el sensor. La trama que retorna el sensor se
compone de 3 bytes, el primero corresponde a MSB el segundo a LSB y el
tercero es el CRC-8 Checksum para comprobar que el dato a llegado
correcto, pero lo podemos ignorar generando NACK despus de la llegada
del segundo byte (LSB). Como puede observarse el dato de la medida se
compone de 2 bytes aunque como mucho el dato valido ser de 12 bits de
resolucin, pero aunque configuremos el sensor para una resolucin de 8
bits.. siempre leeremos 2 bytes ignorando el MSB en este caso.
Despues de cada 8 bits recibidos el microcontrolador a de generar un ACK
para que el sensor sepa que ya a recibido los datos. Esto se hace
generando un flanco de subida en CLK mientras DATA esta a nivel bajo.
Despus de esto se continua con la lectura de otro byte.
Para acabar la trama se genera desde el microcontrolador un NACK
(NoACK) esto es lo mismo que el ACK pero en vez de mantener la linea
DATA a nivel bajo la tendremos que poner a 1 generando mientras esto
pasa un flanco de subida en CLK igual que antes.

El sensor admite unas dos adquisiciones o medidas por segundo por lo que
no se debe forzar la lectura con refrescos superiores a este, y ni que decir
que una medida de este tipo no necesita un refresco tan elevado.. lo normal
seria una medida cada 5 o 10 segundos o mas incluso.

Usos: Este sensor de humedad/temperatura puede ser usado en


estaciones meteorolgicas porttiles, y en un robot explorador puede servir
para generar grficos de humedad en los sitios por donde pasa as como
tambin evitar funcionar o tomar las medidas adecuadas en situaciones de
climatologa extrema.

Circuito de prueba: El siguiente montaje es


un medidor de humedad relativa (sin
compensacin de temperatura) el cual utiliza un
sensor integrado SHT11, un pic16F876 y un LCD
microcontrolado.
La medida se muestra por pantalla representando un porcentaje de
humedad relativa y se actualiza cada 2 segundos.
El esquema para el montaje es el siguiente:

Nota: No se ha realizado el circuito impreso debido a la sencillez del montaje, que puede hacerse en
protoboard sin problemas.

DESCARGAS
Programa de prueba:
Rutina para sensor:
Codigo programa:

X-Higrometer.asm
SHT11.inc
X-Higrometer.hex

Aceleracin / Inclinacin

X-Higrometer.zip

MXD7202GL
Descripcin: El sensor de
aceleracin lineal de dos ejes
modeloMXD7202GL de memsic esta
fabricado para medir aceleracin
lineal en sus dos ejes hasta un fondo
de escala de 2g (2 veces la fuerza de
la gravedad). Debido a la capacidad
de poder medir la fuerza de la
gravedad terrestre lo usaremos
tambin como inclinmetro de estado slido. Este sensor se presenta en
encapsulado LCC8, esta compensado internamente en temperatura y no le
afectan las fluctuaciones en la alimentacin. La salida del sensor es un
pulso digital de ancho variable a una frecuencia fija de 100Hz.

Funcionamiento: Este sensor no tiene partes mviles para medir la


aceleracin y es por eso que es capaz de sobrevivir a choques de mas de
50g En vez de partes mviles, este sensor se basa en el efecto de
conveccin de calor, creando una burbuja de calor mediante un filamento
dentro de la cavidad del encapsulado que esta rellena de un gas inerte. Los
captadores estn dispuestos alrededor de este filamento y captan el calor
de la burbuja que esta en el centro, al acelerar hacia cualquier lado, esta
burbuja de calor se desplaza hacia el lado contrario al movimiento y los
captadores miden la diferencia de calor para de este modo crear una salida
proporcional a la aceleracin detectada.
En la figura adjunta se muestra el encapsulado
visto desde arriba y puede observarse la
disposicin de pines as como tambin los ejes de
medicin correspondientes.
Pin Nombre
1 NC
-

Descripcin

2 TP

Conectar a GND

3 COM

Comun

4 Yout

Salida Duty Cycle Eje Y

5 Xout

Salida Duty Cycle Eje X

6 NC

7 NC

8 Vdd

2.75 a 5.25 V

Teora de operacin para medir inclinacin:


Como se ha dicho, este sensor es capaz de medir la fuerza de la gravedad
terrestre si se coloca uno de sus ejes perpendiculares a la superficie de la
tierra. Pero la medida de aceleracin no ser lineal, ya que ser en funcin

del seno del ngulo al que se ponga el sensor con respecto a la superficie
de la tierra.
En el siguiente grfico puede verse la seal obtenida con respecto a la
inclinacin de 0 a 180.

Los valores de PWM que da el sensor para el mximo y mnimo son los
siguientes:
+1g = 6,25mS
-1g = 3,75mS
Por lo tanto tenemos un rango total de 6,25 - 3,75 = 2,5mS
esto quiere decir que el ancho de impulso de la seal que nos dar el
sensor variara un mximo de 2,5mS aprox. si lo tumbamos de un lado a
otro, debido a la aceleracin de 1g provocada por la fuerza de la gravedad
terrestre.
Cuando la aceleracin es nula 0g podemos leer un duty cycle del 50% que
corresponde a 5mS.
Con esto ya tenemos definidos los valores para -90, 0 y +90 que sern
los siguientes:
-90 = 3,75ms

0 = 5ms

+90 = 6,25ms

Ahora nos faltan todos los dems... para medir aceleracin seria dividir el
rango total en la precisin que queramos obtener ya que es una medida

lineal cuando se trata de aceleracin, pero para medir inclinacin tendremos


que hacer uso de la trigonometra para obtener el valor correcto porque la
aceleracin medida en el acelermetro depende de la inclinacin con
respecto al eje del sensor y por tanto ser en funcin del seno de dicha
inclinacin.
y lo haremos como sigue..
Entre el valor mnimo y el valor mximo queremos sacar 180 valores
intermedios que correspondern a cada uno de los grados de arco relativos
a la inclinacin que queremos obtener y teniendo en cuenta que el valor
obtenido surge en relacin al seno del ngulo, tendremos que diferenciar
entre sectores de 90 o cuadrantes.
Si el valor ledo es menor de 5mS, en este caso estamos en el rango de 0
a 90 y si el valor fuese mayor de 5mS estaramos en el rango de 90 a
180, primer y segundo cuadrante respectivamente.
Para linealizar la salida y conseguir un valor de inclinacin real se usaran
las siguientes formulas.
De 0 a 90 se usar la siguiente frmula:

y de 90 a 180 se usar esta otra:

Un ejemplo practico:
Imaginemos que leemos un ancho de impulso de 4,12mS. Como es menor
de 5mS usaremos la primera formula,
4,12 - 3,75 = 370S / 1,25mS = 0,296 mS
1 - 0,296 = 0,704
Ahora ya tenemos el coseno del ngulo y tan solo tenemos que hacer la
operacin inversa, el arco coseno y obtendremos el ngulo para dicho
coseno.
ArCos( 0,704 ) = 45,25 = 45

Por lo tanto un valor de 4,12mS corresponder a un ngulo de inclinacin


real de 45

Circuito y programa de medicin: Como el


MXD7202GL dispone de salidas digitales PWM con lo cual
podemos conectarlo directamente a cualquier puerto de
entrada de un microcontrolador. El circuito simplemente es
un pic16F876 con un max232 conectado a la USART para
comunicarse con el PC por medio del bus serie RS232.
El programa contenido en el pic se dispara a cada flanco de subida de la
seal y cuenta pequeos intervalos incrementando en cada uno de ellos el
contador TMR1 hasta el flanco de bajada de la seal, para saber el ancho
del impulso de la seal PWM y luego pasa los datos del contador de 16bits
al PC por medio de la USART para que el PC calcule y analice las
muestras.

Nota: En el esquema anterior falta la alimentacin del pic y del max232, el oscilador del pic y el
circuito de reset, as como tambin los condensadores de desacoplo de 100nF para cada
integrado.

El cdigo fuente para grabar en el pic es el siguiente:


Cdigo fuente

X-TILT.rar

Software de anlisis: El programa creado al efecto para anlisis de


datos procedentes del acelermetro captura los datos procedentes del
circuito de muestreo y recibe 4 bytes que son los 16 bits de cada timer de
conteo de ancho de
impulso.
La ventana del
programa esta
dividida en dos
grandes displays, el
de arriba
corresponde a los
datos para el eje X y
el de abajo para el
eje Y.
Dentro de cada una
de esas ventanas
tenemos una
disposicin idntica
de controles y
visualizadores para
ambos ejes.
La primera parte situada arriba a la derecha, consta de dos medidores de
aguja lineales, el medidor de arriba es directamente el valor del timer
expresado en cuentas y su valor directo puede verse justo debajo adems
del valor de duty cicle correspondiente expresado en segundos. Justo
debajo esta el medidor lineal de media y puede ajustarse mediante un scroll
horizontal situado al lado que indica cuantas muestras son necesarias para
calcular la media, contra mas muestras pongamos mas estable ser la
medida pero mas lento ser el refresco al necesitar esperar mas muestras.
En la parte inferior podemos ver un grafico que se va pintando al ritmo que
entran datos, en este grafico podemos ver la seal en tiempo real (lnea
negra) y la media calculada (lnea amarilla), este grafico es muy til para
analizar la seal y ver como afecta la aceleracin lineal a la inclinacin.
Como podemos observar a cada lado del grafico tenemos varios scrolls,
estos son para el ajuste de fondo de escala tanto en tiempo como en "g"
medidos y el scroll vertical de la derecha es simplemente para desplazarse
por el grafico de arriba a abajo.
La parte mas compleja en cuanto a clculos se refiere es la pantalla situada
arriba a la izquierda que muestra un reloj analgico de forma angular. Este
medidor muestra la inclinacin calculada respecto a la aceleracin de la
gravedad terrestre.

Instalable Windows

X-InclinoLab.rar

Software libre de ejemplo: Este software es una aplicacin de


ejemploen la cual se reciben los datos por puerto serie y se calcula en
tiempo real los valores medios de inclinacin para presentarlos por pantalla.
Existen unos scroll deslizantes con los cuales podemos ajustar cuantas
capturas son necesarias para calcular la media de la seal medida, para
evitar oscilaciones debidas a aceleraciones rapidas.
Adems es capaz de mover un objeto 3d en relacin a la inclinacin real en
la que se coloca el sensor de entrada, con lo cual podemos mover el objeto
3d en el pc moviendo el sensor en el mundo real.

También podría gustarte