You are on page 1of 33

// DESCARGA GRATUITA / “int año = 1, número 4 ” /* JULIO 2008/ *

Electrónica en General Pics en Particular

PT
2.0

PIC TRAINER 2.0


Construye tu propia placa entrenadora
para microcontroladores PIC.

PIC-Tengu Driver PAP con 74HC194


Un juguete basado Cómo construir un sencillo driver
en un PIC18F2455 para motores paso a paso
.staff

.editorial
número = 4; año = 1;

Dirección, Redacción y Corrección: Me gusta pensar que si estás leyendo esta edito-
Ariel Palazzesi rial, es por que ya has leído antes el resto de la revista.
Argentina Quizás se deba a que al menos yo leo las revistas de esa
arielpalazzesi@gmail.com manera: comienzo por las partes más jugosas, e indefec-
www.ucontrol.com.ar
tiblemente me quedan para el final estas secciones, que

.indice


Diseño: muchas veces no se sabe bien para que están.
DCV Verónica C. Lavore
Argentina Bien, hoy quiero aprovechar este espacio para
azimut.estudio@gmail.com confiarles dos o tres “secretos” relacionados con uCon-
trol en general, y con esta revista en particular.
Consejo Editorial:
Mario Sacco
Argentina En primer lugar, tengo que confesar que me
service.servisystem@gmail.com abruman la cantidad de correos que recibimos cada día
preguntando cosas, sugiriendo notas, ofreciendo artícu-
Carlos Ortega Sabio los, y sobre todo, conteniendo palabras de aliento que
España nos obligan a seguir poniendo lo mejor que tenemos
carlos.ortegasabio@ucontrol.revista.com.ar
cada bimestre en estas paginas. Sin duda, constituyen la
Diego Márquez García - Cuervo
Driver PAP con 74HC149 0x040x04 fuerza que nos impulsa a seguir haciendo esto.

Marcos Lazcano PIC Tengu (1º Parte) 0x0C En segundo lugar, nos ha llamado la atención la
Argentina poca cantidad de proyectos que han enviado para el con-
marcos.lazcano@gmail.com PIC TRAINER 2.0 0x19 curso “Cuidemos el planeta”. Es posible que no hayamos
sabido comunicar correctamente la mecánica del mismo,
Pedro
Venezuela Módulo PIC TRAINER 40 0x1F o que, simplemente, el interés de nuestros lectores por la
palitroquez@gmail.com ecología sea menor del que pensábamos.
PIC TRAINER 2.0: Módulo 8 E/S 0x27
En todo caso, les recordamos que todavía hay
Descarga Gratuita.
Este contenido se rige por la licencia
Reloj de Tiempo Real (RTC) 0x2E tiempo para participar, que las bases y condiciones están
esperándolos en www.ucontrol.com.ar y, sobre todo,
de Creative Commons “Licencia Creative Commons
Comunicación Inalámbrica que seria una lástima que por vergüenza o por no reali-
Atribución-No Comercial-Sin Obras Derivadas 3.0”
entre PICs 0x37 zar un pequeño proyecto se pierdan de ganar alguno de
los interesantes premios que tenemos para ustedes.
Ordenadores Sinclair 0x3B
La tercera cuestión que me gustaría mencionar
se relaciona con las colaboraciones que nos envían
para su publicación. Muchos se sentirán defraudados
al no ver en este número el material (excelente) que
nos hicieron llegar. Les pedimos disculpas. El tiempo,
como siempre, es escaso, y en muchos casos el poner
a punto un proyecto para que pueda ser publicado re-
quiere de tareas de corrección, redibujado de esque-
mas, trazado de PCB y muchas cuestiones más que
hacen imposible tenerlos a tiempo.

//página 0x03
.proyectos >>

driver PAP con 74HC194


En este artículo veremos como construir un sencillo y razonablemente económi-
co 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 diseñar tu propio driver.

|| FIGURA 2 || Este es el circuito de nuestro driver


//por:Rob Paisley// El circuito se basa en cir- Cada vez que CLOCK esta en alto
cuito integrado 74LS194 (un regis- (positivo) el estado de las salidas
tro de desplazamiento bidireccio- del 74LS194 (pines 12, 13, 14 y 15)
nal). Está diseñado para ofrecer son rotadas. Puedes consultar el
las funciones básicas de control, diagrama que aparece más abajo
El circuito como Avance (Forward), Retroce- para ver los detalles.
so (Reverse), Parada (Stop) y ajus- La dirección de esta rota-
se basa en el circuito te de la velocidad de giro en hasta ción se determina mediante la llave
integrado 74LS194 100 pasos por minuto. S2. Cuando S2 está en la posición
(un registro No se trata de un proyecto central (OFF), el motor se detiene.
complejo, y todas las partes em- Cuando la base del transis-
de desplazamiento
pleadas pueden conseguirse con tor Q6 esta a nivel bajo, las salidas
bidireccional) facilidad. El método elegido para del 74LS194 cambian en el orden
alterar el sentido de giro es una lla- 12 - 15 - 14 - 13 - 12 , etc.
ve, pero como verás, es muy fácil Cuando la base del transis-
cambiar esto para que pueda ser tor Q6 esta a nivel alto, las salidas
controlado desde el puerto paralelo del 74LS194 cambian en el orden
|| FIGURA 1 || Este es el circuito de nuestro driver.
de un ordenador o desde un micro- 12 - 13 - 14 - 15 - 12 , etc.
controlador. Los pulsos existentes en
El control de la velocidad se las salidas del 74HC194 se envían
realiza mediante un potenciómetro, al motor a través de un circuito in-
aunque también podría emplearse tegrado ULN2003. Este se encarga
para ello un dispositivo como los de manejar la corriente necesaria
mencionados anteriormente. para excitar las bobinas. cilador astable.
El diagrama siguiente mues-
.Circuito básico del driver .Circuitos integrados tra la forma en que deben energi-
empleados zarse las salidas del ULN2003 para
La figura siguiente nos hacer girar el motor hacia delante
muestra el circuito básico emplea- 74LS194, registro de desplaza- y hacia atrás. Los números de los
do. En color azul puede verse la lí- miento bidireccional de 4 bits pines no se han incluido ya que el
nea de CLOCK. 74LS74, Doble flip-flop tipo D conexionado final dependerá del di-
Un circuito integrado NE555 con Preset y Clear seño del PCB.
funcionando como oscilador estable ULN2003, Driver darlington de Cada pulso positivo en las
proporciona los pulsos de CLOCK 7 canales, 500mA por canal, 50V salidas del 74LS194 provocará el
necesarios y se envían al pin 11 del máximo. encendido de una de las bobinas
circuito integrado 74LS194. NE555, configurado como os- del motor.

//página 0x04 //página 0x05


.proyectos >> driver PAP con 74HC194

|| FIGURA 3 || De esta forma podemos probar nuestro driver

.Notas sobre el circuito pueda girar un motor paso a paso. trol del 74LS194, fijando la direc-
Esto permite utilizar valores de ción de giro con la ayuda de los
A continuación, hemos C1 y R1 tan grandes como se de- transistores Q6 y Q7 y la llave S2.
reunido una serie de datos im- see, siempre dentro de los valores Estrictamente hablando, el método
portantes sobre el circuito pro- aconsejados en la hoja de datos del de control que ofrece te sistema no
puesto y su funcionamiento: NE555. es el mejor, pero a las relativamen-
te bajas frecuencias a las que ope-
Con los valores indicados en el El circuito impreso propuesto ra el circuito (menores a 100KHz)
esquema y C1 = 1 uF, un valor de permite la conexión de la resisten- funciona perfectamente.
R1 = 0 ohm hará que la frecuencia cia variable R1 en una bornera, que
de CLOCK sea aproximadamente también puede emplearse como El resistor de 3.3K y el conden-
de 100KHz. Esto hace que el motor punto de entrada para pulsos de sador de 4.7 uF conectados en el
avance unos 100 pasos por segun- control externos. terminal SET (pines 4 y 10 del
do, velocidad limite para la mayoría 74LS74) aseguran que las sali- sea necesario utilizar un transistor
de los motores paso a paso. La llave S1, que aparece en el das (pines 6 y 8) permanezcan en adicional para lograr este objetivo.
diagrama de más abajo, permite la estado bajo durante el encendido
El 74LS74 no cumple Si se incrementase la velocidad, detención del motor al interrumpir del circuito. En caso de energizar simultá-
no solo disminuiría el torque dispo- la generación de pulsos de CLOCK neamente los transistores Q6 y
otra función nible sino que también se correría del NE555. S1 puede ser reempla- Al alimentar el circuito, es po- Q7, el 74LS194 efectuara un RE-
más que proporcionar el riesgo de que el motor “pierda” zado por un transistor NPN para sible que no todas las salidas del SET, deteniendo el giro del motor
el control del 74LS194, pasos. Se pueden probar diferentes controlar electrónicamente la gene- 74LS194 estén en estado bajo. Por y energizando su salida numero 15
valores para C1 y R1 para producir ración de pulsos de CLOCK.
fijando la dirección este motivo, la fuente de poder que cuando reciba el próximo pulso de
la frecuencia máxima mas adecua- alimente el circuito debe ser capaz CLOCK.
de giro. da para cada motor en particular. Los pulsos de CLOCK pueden de soportar la carga de las cua- .Probando el controlador
Este valor dependerá exclusiva- ser provistos por un circuito exter- tro bobinas energizadas al mismo El circuito necesita de una fuen-
mente de las características cons- no, pero cualquier ruido en estos tiempo, durante un instante más te de 5V de corriente continua per- Simplemente colocando un
tructivas del mismo. podría colocar al registro de des- o menos largo (dependiendo de la fectamente estabilizada para fun- LED en cada salida podemos com-
plazamiento en un valor erróneo. posición de R1). cionar, que no se ha incluido en el probar visualmente el funciona-
Si R1 adopta un valor cerca- En caso de emplearse, deben ser esquema. miento del circuito.
no a 1 Megohm, la frecuencia del pulsos “limpios”. Estos pulsos de- Este circuito puede ser coman- En el esquema pueden ver-
CLOCK disminuirá a cerca de un berían pasar a través del NE555, dado desde otro, o desde el puer- Existen una gran variedad de se los dos Flip Flop “D” incluidos en
Hz, haciendo que el motor avance situación que esta prevista en el to paralelo de un ordenador. Para motores paso a paso. Debe asegu- el 74LS74. La sección FF1 se uti-
un paso por segundo. circuito impreso. que este sistema de control externo rarse que el elegido para ser em- liza como un divisor binario, mien-
funcione, se debe garantizar que la pleado con este sistema se alimen- tras que FF2 funciona como un Flip
No hay, al menos en teoría, un El 74LS74 no cumple otra fun- base de los transistores Q6 y Q7 te con tensiones inferiores a los Flop “RS”. Después de cada pulso
valor mínimo de velocidad a la que ción más que proporcionar el con- sea de al menos 0.7V. Puede que 24V y no consuma mas de 500mA. de CLOCK, el Flip Flop es puesto

//página 0x06 //página 0x07


.proyectos >> driver PAP con 74HC194

El 74LS74 no cumple
otra función más
que proporcionar
el control del 74LS194,
fijando la dirección
de giro. || FIGURA 7 || Así podremos
alejar el PAP del driver
en SET, con Q en alto. Esto permi-
te comandar al 74LS194 secuenciar
|| FIGURA 8 || Los cables centrales son comunes a dos bobinas
sus salidas en uno u otro sentido de
acuerdo a la posición de S2.
La llave S1 permite detener
la generación de pulsos de CLOCK.
Los terminales POWER
(14), COMMON (7) y CLEAR (1 y
13) del 74LS74 no se muestran,
|| FIGURA 4 || formas de onda que se pueden encontrar
a la salida del driver 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:
(Ver Figura 4).
Este es el aspecto del driver
ya montado. (Ver Figura 5 y 6)

.Alejando el motor del driver .Control externo || FIGURA 9 || Puedes comandar el driver externamente
utilizando transistores
Si el motor va a emplearse a
una distancia importante del contro- Como se mencionó antes,
|| FIGURA 5 || Aspecto del driver ya montado lador, deben separarse los bornes es posible comandar el driver me-
de alimentación, tal como se ve en diante la utilización de transistores.
el esquema: (Ver Figura 7) Este sistema permite operar la pla-
Esto evita que los pulsos ca controladora desde otro circuito
generados por el motor introduzcan o desde un ordenador:
ruidos en la fuente de alimentación. (Ver Figura 9)

.Motores de 6 terminales .Control externo mediante


optoacopladores
Algunos motores paso a
paso disponen de 6 terminales. La Otra forma de control, utili-
siguiente imagen muestra la forma zando optoacopladores para aislar
|| FIGURA 6 || Para reducir la altura del circuito final, en que deberían conectarse al con- el driver del circuito que lo controla.
puede cortarse la aleta disipadora del LM7805 trolador: (Ver Figura 8) (Ver Figura 10) || FIGURA 10 || Los optoacopladores evitan posibles daños al host.

//página 0x08 //página 0x09


.proyectos >> driver PAP con 74HC194

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

|| FIGURA 11 || Es posible automatizar su funcionamiento

.Control automático El driver ha sido probado con los


siguientes motores:
Este circuito reemplaza la JAPAN SERVO CO. (de un viejo
llave S2 por un control automático floppy drive)
basado en dos amplificadores ope- TYPE KP4M4-001
racionales. Esto brinda una “venta- 75 OHM / PHASE
na” dentro de la cual el motor girará 0.15 AMP / PHASE
en uno u otro sentido. y
El potenciómetro R IN pue- AIRPAX : LA82720-M1
de ser reemplazado por un sensor 24 VOLT
de temperatura o de luz. LS1 y LS2 60 OHMS / COIL
funcionan como sensores de fin de 7.5 DEGREES / STEP
carrera, que evitan que el motor
continúe girando más allá del punto En esta ocasión, y debido a
Cada pulso positivo fijado. (Ver Figura 11) que el autor del artículo vende en
en las salidas su página web el PCB para montar
del 74LS194 .Información adicional el proyecto, no podemos proporcio-
nar el diseño del mismo. Pero es-
provocará el encendido
Página web del autor (Ingles): tamos seguros que los lectores de
de una de las bobinas http://home.cogeco.ca/~rpaisley4/ uControl no tendrán problemas a
del motor. CircuitIndex.html la hora de diseñar uno propio.

NOTA: Debido a la falta de detección o corrección de errores y la potencia de salida limitada, este cir-
cuito no debe ser utilizado para aplicaciones que requieren una gran precisión en el control o posiciona-
miento. El driver está pensado para el aprendizaje y la utilización en pequeños robots de aficionados.

//página 0x0A
//página 0x0B
.proyectos >> PIC-Tengu

PIC-Tengu primera parte

PIC-Tengu es un juguete basado en un PIC18F2455 capaz de mostrar gestos en su matriz


de LEDs al ritmo de los sonidos ambientales que recoge su micrófono electret. Además,
incluye un sencillo juego que lo convierte en un original regalo de cumpleaños.

//por:Juan Félix Mateos// El funcionamiento completo al ritmo del sonido mediante diver- tendríamos que sacarle soplando.
jfmateos@lycos.es de PIC-Tengu será el siguiente: sos juegos de caras. El cambio de 7. Pulsando brevemente el botón,
juego de caras podrá ser solicitado el usuario podrá alternar entre el
1. Al conectarlo a la fuente de ali- por el usuario soplando, o se pro- modo de imitación y el modo de
mentación PIC-Tengu se mostrará ducirá automáticamente cuando mensaje deslizante.
en estado dormido (con los ojos la intensidad del sonido sea muy 8. Manteniendo el botón pulsado
cerrados/apagados y con la boca alta. Además de las caras, también más de 2 segundos, PIC-Tengu se
cerrada). utilizaremos los ojos para reforzar restablecerá, adoptando el mismo
2. Para despertarlo tendremos que el efecto de imitación, haciéndolos estado que si lo encendiésemos
soplarle y detectaremos esta situa- parpadear tanto más rápido cuan- por primera vez.
ción aprovechando la saturación do más intenso sea el sonido. 9. Para afrontar futuras amplia-
que producirá en el micrófono. 6. Si transcurriesen más de 5 mi- ciones, nos interesa dejar abier-
3. Entonces PIC-Tengu iniciará su nutos sin que PIC-Tengu detectase ta la posibilidad de comunicar-
Este artículo debe co- .Descripción de PIC-Tengu secuencia de despertar, que con- sonido alguno, volvería nuevamen- nos con PIC-Tengu a través de
menzar con el merecido recono- sistirá en una sencilla animación te a su estado dormido, del que un ordenador.
cimiento al creador del Tengu La misión esencial de PIC- que simulará cómo los ojos se
El trabajo de Crispin original (www.tengutengutengu. Tengu será hacer gesticular las abren poco a poco, seguidos de un || FIGURA 1 || Tengu original a la izquierda y nuestro PIC-Tengu a la derecha.
com): el joven diseñador británi- caras que muestra en su matriz de
Jones fue la inspira- bostezo y varios pestañeos conse-
co Crispin Jones (www.mr-jones. LEDs al ritmo de los sonidos que es- cutivos.
ción de este proyecto, org). Su trabajo desborda inge- cuche a través de un micrófono. No 4. Si es la primera vez que se en-
enfocado desde un nio, creatividad e innovación, y obstante, lo dotaremos de otras fun- ciende, PIC-Tengu iniciará un sen-
punto de vista eminen- fue la inspiración para abordar cionalidades secundarias que, no cillo juego que consistirá en ir mos-
este proyecto desde un punto de por ser de menor importancia, debe- trando velas encendidas para que
temente didáctico. mos dejar de lado en una fase tan
vista eminentemente didáctico. el usuario las apague a soplidos
Antes de adentrarnos en incipiente del proceso de diseño. Ig- una a una. Al finalizar el juego se
cuestiones técnicas sentaremos norar estas funciones menores po- mostrará en la matriz de LEDs un
las bases dando respuesta a tres dría hacer avanzar nuestro proyecto mensaje de felicitación deslizante.
preguntas esenciales: qué vamos en una línea que posteriormente im- Este mensaje podrá mostrarse en
a hacer, por qué lo vamos a hacer posibilitase su implementación. cualquier otro momento a petición
y cómo lo vamos a hacer. En otras Además de su micrófono del usuario, como se explicará pos-
palabras, describiremos el funcio- electret y de su matriz de LEDs, teriormente.
namiento de PIC-Tengu, diseñare- PIC-Tengu contará con 2 LEDs 5. Al concluir la presentación del
mos una estrategia para abordar su adicionales que simularán sus mensaje deslizante, o si no es la
desarrollo y elegiremos los medios ojos, y con un botón que ofrecerá primera vez que lo encendemos,
adecuados para conducir esta nave una vía alternativa de interacción PIC-Tengu iniciará el modo de imi-
a buen puerto. con el usuario. tación, que consistirá en gesticular

página 0x0C página 0x0D


.proyectos >> PIC-Tengu

.Finalidad del proyecto do otras tareas. Un detalle a tener


Memoria EEPROM: Utilizare-
en cuenta sobre el
La finalidad de este proyec- mos esta franja de memoria para
to es esencialmente didáctica, por almacenar la edad del homenajea- ULN2803, en la fase
lo que se huirá de aplicar técnicas do y el mensaje deslizante, apro- de programación,
complejas a pesar de que pudieran vechando así sus dos cualidades es que utiliza
proporcionar un mejor rendimiento. más destacables: su contenido no
se borra aunque cese la alimenta-
lógica inversa.
El objetivo es poner de ma-
nifiesto mediante ejemplos prácti- ción eléctrica, y podemos alterar su
cos y sencillos las posibilidades de contenido en tiempo de ejecución ner encendidos un máximo de 20 a la
algunos de los módulos incluidos en desde el propio firmware del PIC vez, de modo que utilizar un pin para
los microcontroladores PIC, como: sin tener que reprogramarlo. cada LED no nos aportaría ninguna
ventaja y supondría una complicación
Salidas digitales: PIC-Tengu .Medios extraordinaria en el ruteado del PCB.
cuenta con 44 LEDs (7 filas y 6 co- ¿Cómo podemos abordar
lumnas en la matriz, más los dos En primer lugar necesitamos este problema? Multiplexando la ma-
ojos) y todos ellos serán controlados elegir el PIC más apropiado, es decir, triz, es decir, encendiendo en cada
mediante salidas digitales del PIC. aquél que ofrezca todas las caracte- instante sólo los LEDs de una fila o
Conversor analógico digital: rísticas señaladas en la sección ante- columna, y aprovechándonos de la
Lo utilizaremos para detectar la in- rior por el precio más económico. persistencia de la visión (POV) del
tensidad del sonido. No obstante, aún nos queda ojo humano para ir cambiando de fila
Pulse Width Modulation: Nos por analizar con más detalle algunos o columna activa a suficiente veloci-
permitirá variar la intensidad de los parámetros, como el número de en- dad como para engañar al cerebro y
LEDs que simulan los ojos para apa- tradas/salidas digitales que necesita- hacerle creer que hay LEDs encendi-
rentar que se abren poco a poco. remos. Nuestra primera tentación po- dos a la vez en todas la matriz. Este
Timers: Gracias a ellos podremos dría ser utilizar un pin para controlar sistema requiere un pin para cada fila
actualizar la matriz de LEDs a un rit- cada LED independientemente, pero y columna, de modo que necesitaría-
mo constante aunque tengamos que esto nos conduciría a un sobredi- mos un total de 7 + 6 = 13 pines para
realizar simultáneamente otras ta- mensionamiento del PIC injustificado, controlar toda la matriz.
reas. También los utilizaremos para pues debemos tener en cuenta que La siguiente pregunta sería
averiguar si el botón ha permanecido cada pin puede suministrar o absor- ¿multiplexamos por filas o por colum-
pulsado más de 2 segundos. ber un máximo de 25 mA, y que los nas? En ambos casos se superaría el
Interrupción externa: Nos per- PIC en general pueden suministrar y límite de corriente que es capaz de
|| FIGURA 2 || absorber un total máximo de 200 mA;
Diagrama de flujo
mitirá detectar la pulsación del bo- absorber un solo pin, de modo que
del funcionamiento tón en cualquier instante, aunque considerando que cada LED consu- es evidente que vamos a necesitar un
de PIC-Tengu. en ese momento se estén realizan- me unos 10 mA sólo podríamos te- driver intermedio entre la matriz y el

página 0x0E página 0x0F


.proyectos >> PIC-Tengu

Para que la conexión


USB sea operativa
no debemos olvidar
colocar en el pin 14
un condensador
de 470nF a tierra.

PIC. Podríamos implementar este dri- ULN2003, que contiene 7 drivers Dar- zosa es recurrir a una conexión USB,
ver mediante transistores, pero esto lington en tan sólo 16 pines, pero la pues cada vez son menos los orde-
supondría un aumento considerable dificultad para localizar este integrado nadores que ofrecen puertos serie
del tamaño del PCB, pues además de nos condujo al ULN2803, que ofrece RS232. Además, aprovechando esta
los transistores deberíamos incluir re- un octavo driver a costa de incre- conexión podremos tomar la alimen-
sistencias en sus bases. La solución mentar en 2 su número total de pines tación directamente del ordenador,
es recurrir a un circuito integrado que (hasta 18). que ya estará adaptada a los 5 V con
ofrezca sumideros de corriente NPN Recordemos que todas es- los que haremos funcionar el PIC.
tipo Darlington. Una vez detectada la tas pesquisas iban encaminadas a Recurrimos al buscador para-
necesidad de este driver intermedio, dilucidar el número de entradas/sa- métrico que Microchip nos ofrece en
la elección entre filas o columnas se lidas que debería tener nuestro PIC: su web introduciendo los siguientes
decanta lógicamente por estas últi- 6 para controlar la columna activa, criterios uno a uno:
mas, pues al ser menos (6 columnas más 7 para controlar los LEDs de la
frente a 7 filas) podremos refrescar columna activa, más 2 para los LEDs Estado: En producción
la matriz completa en menos tiempo, de los ojos (que deberán actuar en Arquitectura: 8 bits
reduciendo así el riesgo de que se modo PWM), más uno para la entra- Compatibilidad USB: USB 2.0
produzcan parpadeos. Idealmente, lo da del micrófono (que deberá actuar Memoria de datos EEPROM: ficado en aplicaciones que requieran
más compacto hubiera sido utilizar un en modo ADC), y más uno para el bo-
Buscando hacer fun-
256 bytes un control muy estricto de tiempos
|| FIGURA 3 || ULN2803 y PIC 18F2455. tón (que deberá ser capaz de detectar Entradas digitales: 24 (por ejemplo, para generar señales
cionar el PIC
una interrupción externa), nos dan un de vídeo), y éste no es nuestro caso. a su máxima
total de 17 pines. Y dentro de la lista de 4 re- Los 2 lenguajes de alto nivel más po- velocidad (48MHz)
A pesar de toda la deducción sultados posibles, como todos ellos pulares para PICs son BASIC y C.
anterior, lo cierto es que podría haber- ofrecen idénticas prestaciones de
colocaremos
Aunque el primero es realmente muy
se prescindido del driver intermedio, timers, ADC y CCP (Capture/Cam- sencillo, lo cierto es que C ofrece una un cristal de 20MHz.
pues el tiempo que estará encendida pare/Pulse Width Modulation), que mejor gestión de las interrupciones, y
cada columna será tan corto que pro- además son suficientes para nues- por eso será nuestro elegido, y más
ducirá un pico de corriente breve que tros propósitos, nos decantamos por concretamente CCS C.
sí podría ser asimilado directamente el más económico: el PIC18F2455. Respecto a los otros 2 ele-
por un pin del PIC. No obstante, se Una vez elegido el PIC, de- mentos necesarios para desarrollar
insiste en que el fin de este proyecto bemos decidir cuál será el lenguaje el proyecto, a saber, el software de
es didáctico. de programación. En este asunto diseño y el programador, la decisión
Otro detalle que también de- existen opiniones muy diversas, pero es sobre todo una cuestión de gustos
bemos especificar con más detalle lo que nadie pone en cuestión es que y recursos. En este caso se han elegi-
es el tipo de comunicación que de- los lenguajes de alto nivel facilitan do Proteus para el diseño, y el progra-
seamos establecer con el PC. En los tan notablemente la fase de desarro- mador de puerto paralelo GTP Lite en
tiempos que corren, la opción casi for- llo, que el uso de ASM sólo está justi- combinación con el software gratuito

//página 0x10 //página 0x11


.proyectos >> PIC-Tengu

Habitualmente los
electret cuentan con 2
terminales: tierra,
y otro compartido
por la alimentación
y la señal de salida.

WinPIC800 para la programación. vee la tensión necesaria para polari- densador constituye un filtro básico || FIGURA 5 || Esquema electrónico de PIC-Tengu.
zar el condensador, de modo que no para evitar que las posibles perturba-
.Captar el sonido ambiente requerirían alimentación externa. Sin ciones de la fuente de alimentación
embargo, la tensión es tan baja que pudieran alcanzar al micrófono.
El micrófono de tipo electret se podría ver afectada por las etapas Esta precaución se justifica
es la elección ideal para este proyec- posteriores, de modo que se utiliza en el hecho de que el micrófono nos
to por su reducido tamaño, su esca- un transistor de tipo JFET a modo proporcionará una señal de unos po-
so consumo y su bajo precio. Estos de adaptador de impedancias, y este cos milivoltios, de modo que debere-
micrófonos están basados en los transistor sí requiere alimentación mos amplificarla antes de introducirla
clásicos micrófonos de condensa- externa. al PIC. Consecuentemente, cualquier
dor; de hecho, su nombre completo Habitualmente los micrófo- perturbación en la entrada resultaría
es ECM (Electret Condenser Micro- nos electret cuentan con 2 termina- también amplificada, produciendo
phone). Sin embargo, se diferencian les, uno para la conexión a tierra y una notable degradación de la infor-
de ellos en que incluyen un material otro compartido por la alimentación mación de intensidad sonora recogi-
capaz de almacenar una carga eléc- y la señal de salida (aunque también da por el micrófono.
trica durante cientos de años; este los hay con 3 terminales en los que Para amplificar la señal del
|| FIGURA 4 || Es fácil identificar material se denomina electret y pro- la alimentación y la señal están in- micrófono recurriremos a un ampli-
el terminal de tierra porque está dependizadas). Para identificar los ficador operacional u op-amp. Tra-
unido a la carcasa del micrófono.
terminales podemos apoyarnos en el dicionalmente, muchos de los am-
hecho de que el terminal unido a la plificadores operacionales (como el
carcasa del micrófono es la conexión 741) funcionan a partir de fuentes de
a tierra. La unión entre el terminal y alimentación de doble raíl, es decir,
la carcasa suele ser visible, como en con una tensión positiva, una tensión
la figura 3. negativa y una masa intermedia. Es-
El consumo de los micrófo- tos circuitos no serían utilizables en
nos electret es del orden de los 0,5 nuestro caso, pues disponemos úni-
mA, por lo que necesitaremos una camente de la tensión +5V y la tie-
resistencia de 10 K en serie con la rra que nos proporciona la conexión
cápsula para limitar la corriente de USB. Consecuentemente, necesi-
la fuente de 5V. No obstante, en se- tamos un op-amp que funcione a
rie con esta resistencia colocaremos partir de una fuente de un único raíl,
otra de sólo 1K y, en la unión entre con tensiones relativamente bajas,
ambas resistencias, un condensador económico, y fácil de conseguir. La
de 22uF con su terminal negativo respuesta casi natural es el LM358,
conectado a tierra. Esta segunda re- que contiene en su interior 2 ampli-
sistencia en combinación con el con- ficadores. Aunque no se trata de un

//página 0x12 //página 0x12


.proyectos >> PIC-Tengu

amplificador específico para aplica- ción negativa, la ganancia se calcula voltios, el cociente entre estas dos marle a la señal amplificada un nivel
ciones de audio, su estabilidad con como el cociente entre la resistencia resistencias debe ser 1000, pero de continua, pues el PIC sólo es ca-
ganancias altas lo convierte en una que une la salida del amplificador (pin ¿qué valores elegir exactamente? paz de detectar tensiones positivas.
apuesta segura. 1) con la entrada no inversora (pin 2), Conviene que la resistencia de en- Esto lo conseguimos presentando en
Utilizaremos uno de los am- denominada resistencia de realimen- trada sea alta para consumir poca la entrada no inversora (pin 2) una
plificadores del LM358 como ampli- tación, y la resistencia a través de corriente de la fuente (el micrófono), tensión intermedia de 2,5V, apro-
ficador inversor con realimentación la que llega la señal a la entrada no pero si la resistencia de realimenta- vechando así al máximo el rango
negativa para conseguir amplifica- inversora (pin 2), denominada resis- ción es muy alta pueden producirse dinámico. Esto puede conseguirse
ciones controladas, frente a la am- tencia de entrada. Más exactamente, inestabilidades. Consecuentemente, fácilmente con un divisor de tensión
plificación de histéresis o saturada la ganancia es el opuesto de este nú- una solución de compromiso puede en el que ambas resistencias tengan
(todo o nada) que nos proporciona- mero, pues recordemos que estamos ser elegir una resistencia de entrada el mismo valor, pero ¿cuál debe ser
ría una realimentación positiva. haciendo funcionar el amplificador de 1K; esta elección es muy frecuen- ese valor
La realimentación negativa en modo inversor. Como necesita- te pues la impedancia de salida de Un amplificador operacional
permite domar la fuerte ganancia del remos ganancias del orden de 1000 muchos equipos como reproductores ideal no consumiría corriente a tra-
amplificador, haciéndolo trabajar en para elevar los milivoltios proporcio- de CD es del orden de este valor. De vés de sus entradas, pero uno ideal
un modo lineal. Al utilizar realimenta- nados por el micrófono al orden de este modo, la resistencia de reali- sí requiere una pequeña corriente
mentación debería ser un potenció- para alimentar los transistores que
metro de 1M. Pese a que la ganancia hay en su interior. Esta corriente vie-
teórica puede ser muy alta, la señal ne especificada en la hoja de datos
amplificada nunca superará los nive- como corriente de bias, y suele ser
les impuestos por la tensión de ali- del orden de unas pocas decenas de
mentación del amplificador. nanoamperios. Las resistencias del En los tiempos
Antes de introducir la señal divisor de tensión deben elegirse de que corren,
del micrófono al amplificador la obli- modo que la corriente que circule por
garemos a atravesar un condensador ellas sea de un orden de magnitud
la opción casi
de 1uF, de modo que quede despoja- superior; en nuestro caso, del orden forzosa es recurrir
da de cualquier nivel de continua que de las centenas de nanoamperios. a una conexión USB.
pudiera contener, obteniendo así una Por este motivo hemos elegido dos
señal puramente alterna. Este paso resistencias de 10K.
es esencial, pues en caso contrario Para garantizar la estabilidad
también se amplificaría el nivel de de este punto intermedio de tensión
|| FIGURA 6 ||
El LM358 es un amplificador que funciona con continua, anulando completamente frente a interferencias en la alimenta-
tensiones bajas y proporciona ganancias altas. la señal. ción colocamos también un conden-
Existen otros ICs específicos para aplicaciones Si quisiéramos muestrear la sador de 22uF a tierra en la entrada
de audio, como el LM386, pero que están más
pensados para alimentar etapas de potencia
señal completa (incluidos los semi- no inversora (pin 3).
que para preamplificar señales. ciclos negativos) necesitaríamos su- La introducción se este nivel

//página 0x13 //página 0x14


.proyectos >> PIC-Tengu

Se ha elegido el pro- de continua en la señal amplificada para crear un buffer de ganancia uni- Puede observarse que la señal am- car la posición de estos pines en los La señal amplificada
se ha realizado meramente con fines taria que nos permita alimentar unos plificada está efectivamente invertida distintos tipos de conectores USB.
gramador de puerto nunca superará
didácticos, para poner de manifiesto auriculares. De este modo podremos respecto a la original y que su ganan- Para que la conexión USB
paralelo GTP Lite en las posibilidades del amplificador in- comprobar el funcionamiento de la cia en ese momento está configura- sea operativa no debemos olvidar los niveles impuestos
combinación con el versor con realimentación negativa. etapa de amplificación aunque no da aproximadamente en 80 a través colocar en el pin 14 (VUSB) un con- por la tensión
software gratuito Sin embargo, como en nuestra apli- dispongamos de osciloscopio. Esta del potenciómetro. densador de 470nF a tierra. de alimentación del
cación no nos interesa tanto la señal segunda etapa de amplificación (en Las conexiones que hemos
WinPIC800 para la completa en sí, como su intensidad, realidad, de adaptación) nos permite .Las conexiones del PIC establecido hasta ahora son fijas, es
amplificador.
programación. y con vista a facilitar el desarrollo del obtener corriente para alimentar los decir, no podrían realizarse en pines
software, nos convendría renunciar auriculares sin afectar a la verdade- Además de las conexiones de diferentes del PIC. Por el contrario,
al nivel de continua. Para ello de- ra amplificación (que se realiza en la alimentación y tierra, nuestro PIC ne- las que nos quedan aún (el botón,
beríamos introducir un condensador etapa anterior). cesita un oscilador y una tensión alta el conversor ADC y los LEDs de la
entre la salida del amplificador y la El condensador al que nos en su pin Master Clear Reset (MCLR). matriz) podrían realizarse de formas
entrada del PIC. referíamos anteriormente lo hemos Esta tensión se establece a través de muy variadas, pues la mayoría de los
No obstante, hemos decidido trasladado a la salida de esta segun- una resistencia pull-up de 10K. pines pueden cumplir más de una
seguir un camino diferente, aprove- da etapa (pin 7), de modo que po- Respecto al oscilador, bus- misión y el PIC 18F2455 ofrece va- || FIGURA 8 ||: Disposición de los pines en
|| FIGURA 7 || Representación de la señal ori-
chando el otro amplificador del LM358 dremos conectar a continuación de cando hacer funcionar el PIC a su rias fuentes de interrupción externa los distintos tipos de conectores USB.
ginal en verde y de la señal amplificada en azul. él unos auriculares y comprobar que máxima velocidad (48MHz) colo-
el micrófono y la amplificación están caremos un cristal de 20MHz entre
funcionando correctamente. los pines OSC1 y OSC2, con sus
En el circuito final sustituiremos la correspondientes condensadores de
presencia de estos auriculares por 15pF a tierra. Durante la programa-
una resistencia de 220R que simule ción del PIC indicaremos los valores
una carga, aunque en realidad no se- oportunos de prescaler y postscaler
ría estrictamente necesario. que se aplicarán al PLL (Phase Lock
En la figura 7 se han repre- Loop) interno de 96MHz para obte-
sentado la señal procedente del ner 48MHz.
micrófono una vez superado el con- Al realizar las conexiones
densador (en verde), y la señal a la USB conviene tener presente el tipo
salida del condensador de la segun- de conector que vayamos a utilizar
da etapa de amplificación (en azul). para unir PIC-Tengu al ordenador.
La base común de tiempos es 1ms Los pines 1 y 4 corresponden a la
por división, pero la señal original tensión positiva y la tierra respectiva-
posee una escala de 5mV por divi- mente, el pin 2 deberá conectarse al
sión mientras que la amplificada está pin 15 del PIC (D-) y el pin 3 al pin 16
visualizada a 200mV por división. (D+). La figura 7 le ayudará a identifi-

//página 0x15 //página 0x16


.proyectos >> PIC-Tengu

Un amplificador
operacional ideal no
consumiría corriente a
través de sus entradas,
pero uno ideal
sí requiere una.

(para el botón) y varias entradas al través del ULN2803. aproximadamente 2V, de modo que
conversor ADC. La elección de una Como tenemos pines sufi- tendremos que colocar en serie con
disposición u otra debe realizarse cientes, utilizaremos uno para con- ellos resistencias de 330R que hagan
buscando que el ruteado del PCB trolar cada sumidero de corriente caer aproximadamente los 3V res-
resulte lo más sencillo posible. En del ULN2803. Si no hubiera sido así, tantes al ser atravesadas por 10mA.
nuestro caso elegiremos la interrup- podríamos haber recurrido a un re- En realidad, el tiempo que van a es-
ción 1 (pin 22) para el botón, y el ca- gistro de desplazamiento (como el tar encendidos los LEDs de la matriz
nal 12 (pin 21) para la entrada de la 74HC595) para controlar todos los (no así de los ojos) es tan breve que
señal procedente del micrófono. sumideros con sólo dos pines del podríamos haber prescindido de es-
El botón lo conectamos en PIC. Además, como nos sobran 2 su- tas resistencias. No obstante, por si
serie con 2 resistencias de 220R y mideros del ULN2803, conectaremos cometiésemos algún error en la fase
10K, de modo que cuando no esté a ellos los LEDs que representan los de programación que los mantuvie-
pulsado presente una tensión alta al ojos para que la corriente que circula ra encendidos un tiempo mayor, es
pin 22, pero que al pulsarse utilice la por ellos no tenga que ser canalizada conveniente tomar la precaución de
resistencia de 220R como pull-down, directamente a través del PIC. incluir las resistencias, aunque poste-
colocando el pin 22 prácticamente a Un detalle a tener en cuenta riormente las eliminemos o reduzca-
la tensión de tierra. del ULN2803 en la fase de progra- mos su valor para lograr mayor brillo.
Como ya decidimos multi- mación es que utiliza lógica inversa, Tenga en cuenta que si decide uti-
plexar los LEDs de la matriz por co- es decir, si colocamos una tensión lizar LEDs de otro color tendrá que
lumnas, deberemos unir los ánodos baja en su entrada, la salida se colo- calcular convenientemente el valor
de todos los LEDs de cada fila y los cará en alta, bloqueando el paso de de estas resistencias de acuerdo a
cátodos de todos los LEDs de cada la corriente. su correspondiente corriente y caí-
columna. Los ánodos se alimentarán Los LEDs rojos que utiliza- da de tensión; particularmente, los
directamente desde pines del PIC, remos tienen un consumo de 10mA LEDs azules suelen funcionar con
pero los cátodos se descargarán a y producen una caída de tensión de una tensión de 3,4V.

Y a continuación…
En la siguiente entrega de este proyecto presentaremos dos diseños del
PCB, uno para componentes through-hole y otro para componentes de mon-
taje superficial, y describiremos minuciosamente el software que dará vida a
nuestro pequeño PIC-Tengu.
//página 0x17
//página 0x18
.nota de tapa / proyectos >> PIC Trainer 2.0

PIC Trainer 2.0 PT


2.0

Te proponemos la construcción de tu propia placa entrenadora para microcontrola-


dores PIC. Con este sistema, basado en diferentes módulos, podrás aprender todo
lo que necesitas sobre el funcionamiento de estos circuitos integrados, sin necesi-
dad de gastar una pequeña fortuna.

//por:Ariel Palazzesi// Si recién estas dando tus La idea detrás de una .El PIC TRAINER tivos on-board (desde pulsadores y
Quizás la característica
arielpalazzesi@gmail.com primeros pasos en el mundo de los placa “entrenadora” o “trainer” Hace un par de años, cuando LEDs hasta pantallas LCD graficas),
microcontroladores PIC, es posi- es disponer de una herramienta comencé a interesarme por la electró- y ofrecen soporte para un numero de más sobresaliente
ble que te encuentres ligeramente que nos aporte un hardware pro- nica y los microcontroladores, rápida- microcontroladores increíblemente de este proyecto
abrumado por la cantidad de con- bado, confiable, que podamos mente me di cuenta que disponer de numeroso. A veces, incluso soportan sea su modularidad.
ceptos que debes asimilar para po- utilizar cuando queremos probar un entrenador podría ahorrarme bas- chips de diferentes fabricantes.
der desarrollar tus proyectos. alguna pieza de software, sin ne- tante tiempo, y evitar frustrarme cada Pero me pareció que podría
Esto es inevitable, ya que cesidad de construir un circuito vez que diseñaba un PCB para pro- aprender bastante más si diseñaba
para que un proyecto basado en un especial para ello. Podemos ver bar alguna rutina de software y que mi propia placa de entrenamiento. En
microcontrolador no sea un fraca- a un entrenador como un “pro- por algún motivo no funcionaba. ese momento era incapaz de fabricar
so, debemos dominar tanto el di- yecto universal”, que dispone de Existen algunos trainers dis- un PCB de doble cara (creo que ni si-
seño del circuito electrónico como prácticamente todos los elemen- ponibles comercialmente que son quiera hubiese podido dibujarlo), por
El uso de jumpers permite la confección del programa que se tos que necesitamos para probar realmente impresionantes. Disponen lo que debí sacrificar unas cuantas Algunos módulos disponen
configurar los módulos. encargará de hacerlo funcionar. nuestro software. de un muy buen numero de disposi- funciones que inevitablemente reque- de su propio regulador de voltaje.

xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx

//página 0x19 //página 0x1A


.nota de tapa / proyectos >> PIC Trainer 2.0

Existen algunos Todos los módulos dis-


trainers disponibles ponen de conectores
comercialmente compatibles eléctrica-
que son realmente mente, para poder inter-
“impresionantes”. cambiar los cualquier
modulo de expansión.

rían de un PCB demasiado complejo. cesario, efectuar el RESET del mismo; programación ICSP; y algunos pulsa- realizado una buena cantidad de mó- .Cables y conectores portantes a tener en cuenta en el
Cuando ya tenía un diseño tres cristales seleccionables median- dores y LEDs que proporcionan unas dulos: displays LCD 2x16, 8 entradas desarrollo de un sistema modular es
razonablemente funcional (aunque te jumpers, para utilizar diferentes pocas líneas de entrada/salida. y salidas, 4 u 8 relés, RS-232, EE- Todos los módulos disponen la estandarización de los cables y
implicaba una placa de unos 20x25 frecuencias de trabajo; un regulador Todo lo demás se ha sepa- PROM, I2C, etc. de conectores compatibles eléctrica- conectores, de forma que sea prácti-
centímetros) y que posiblemente hu- de voltaje (y componentes asociados) rado en módulos accesorios, que se Todos los módulos diseña- mente, lo que permite, al menos en camente imposible conectar por error
biese funcionado, se me ocurrió que dedicado a brindarle al PIC los nive- conectan al modulo central elegido dos hasta la fecha utilizan PCBs de teoría, utilizar cualquier modulo de ex- algo donde no se debe, dañando al-
podría ser mucho más eficiente y sen- les de tensión y corriente que necesi- mediante cables planos de 10 vías una sola cara, lo que hace muy fácil pansión con cualquier modulo central. gún componente.
cillo dividir el entrenador en una serie ta para funcionar; un conector para la terminados en conectores IDC. He su fabricación. Uno de los temas más im- Hemos decidido utilizar co-
de módulos. De esta manera, podría ir nectores IDC10, que poseen 10 vias.
construyéndolos a medida que los ne- Y de los 10 pines disponibles sólo se
Algunas E/S “onboard”
cesitaba, sin necesidad de gastar mu- en los módulos p/PIC utilizan 6. Esto obedece a varias ra-
cho dinero o tiempo de una sola vez. zones. Por un lado, el no emplear 4
Así fue como nació el PIC TRA- de los pines que quedan del lado de
INER, del cual analizaremos su “segun- “afuera” de la placa permite que el
da reencarnación”, la versión 2.0. diseño de los PCB sea mucho más
sencillo, sin tener necesidad de pa-
.Características sar con una pista por entre otros dos
pines. De esta manera, se puede uti-
Quizás la característica más lizar pistas anchas, apropiadas para
sobresaliente de este proyecto sea su aquellos que realizan sus placas de
modularidad. En efecto, se ha dividi- circuito impreso con el “método de
do el entrenador en módulos, cuatro la plancha” descrito en el número 1
de ellos destinados a alojar los micro- de la revista.
controladores de 8, 18, 28 y 40 pines Por otra parte, el hecho de uti-
y el puñado de componentes que ne- lizar solo 4 líneas de datos nos permi-
cesitan para funcionar. El lector pue- te aprovechar mejor los pines de cada
de construir solo uno de ellos (el que puerto del PIC. Efectivamente, si se
soporte el modelo de PIC que desea hubiesen utilizado los 8 pines de cada
estudiar) o bien los cuatro. puerto en cada conector, en aquellos
Estos módulos centrales, a casos en que un modulo hiciera uso
los que hemos bautizado como PIC de uno o dos bits de datos (por ejem-
TRAINER 8, PIC TRAINER 18, PIC plo, el modulo RS-232) nos quedarían
TRAINER 28 y PIC TRAINER 40, 6 pines del puerto elegido inutiliza-
disponen de un zócalo para alojar al dos, ya que no podemos insertar dos
microcontrolador en cuestión; un pul- fichas a la vez en el conector.
sador destinado a, en caso de ser ne- Como contraparte, algunos

//página 0x1B //página 0x1C


.nota de tapa / proyectos >> PIC Trainer 2.0

Podemos ver a un entre-


nador como un “proyecto
universal”, que dispone
de casi todos los elemen-
tos que necesitamos para
probar nuestro software.

PIC TRAINER 40 y algunos cables Conectores IDC10 utilizados Estas son las fichas que deben Forma en que deben montarse los cables. Cables montados. || FIGURA 1 || Las placas centrales poseen
de conexión ya armados” en todos los módulos. montarse en los cables planos. Los extremos son simétricos. conexión ICSP.

módulos deben ser enlazados con eléctrica a muchos de los módulos. número de ellos. conector para la programación ICSP ralmente) en el pin RB6/PGC para la es el mismo, y puede verse en la figu-
más de un cable, aunque este es un Como esta corriente proviene Tenemos que recordar, al ahora (In Circuit Serial Programming, o Pro- señal de sincronización (reloj) y en el ra correspondiente. (Ver Figura 1)
mal menor. de la placa del módulo central al que de colocar las fichas sobre el cable pla- gramación Serial en circuito). RB7/PGD para los datos.
La imagen del conector nos se hayan conectados, y es suminis- no, que este debe quedar armado con El ICSP es el sistema utiliza- El protocolo trabaja con dos .Módulos disponibles
muestra la función de cada uno de los trada mediante un regulador de vol- sus extremos de forma simétrica (ver do en los dispositivos PIC de Microchip tensiones, una de alimentación (VDD),
10 pines que posee. En general, to- taje integrado LM7805 que sólo pue- fotos). Esto permitirá que sus extremos, para programarlos sin necesidad de te- cuyo rango de valores está compren- En realidad, y a partir de las
dos los módulos tienen los conectores de proporcionarnos (teóricamente) 1 a la hora de insertarlos en los módulos, ner que retirar el chip del circuito del que dido entre 4.5 y 5.5 voltios, y otra de especificaciones publicadas para
montados sobre los bordes, de forma Amper, debemos ser cuidadosos con puedan intercambiarse sin problemas. forma parte. Esta forma de programa- programación (VPP) cuyo rango osci- cada conector, es posible crear mó-
que los cables de conexión puedan los consumos. Esta es la razón de De esta manera resultará prácticamente ción es válida para todos los PIC de la la entre un mínimo y un máximo de 12 dulos de expansión limitados solo por
colocarse fácilmente. La fila de pines que algunas placas tengan, además, imposible dañar algún módulo por haber gama baja, como puede ser el 12C508 y 14 voltios respectivamente. la imaginación o necesidad de cada
etiquetados “NC” queda hacia el lado una bornera para proveer su propia insertado un cable de forma incorrecta. y 12F629; los de la gama media, desde Los programadores general- lector. Nosotros hemos diseñado mo-
de afuera del PCB, y la ranura presen- alimentación, de forma de evitar re- La “muesca” que tiene cada conector el de 16F84A hasta el 16F877A; e in- mente poseen un conector que en- dulos centrales para PICs de cual-
te en la ficha macho hacia adentro. cargar el regulador de voltaje de la impide que al ficha entre en una posición cluso para la familia 18xxxx. trega estas señales, y las placas que quier número de pines, ampliación de
Los cuatro pines “NC” son los placa principal. que no sea la adecuada. Básicamente, se trata de un hemos diseñado tienen el conector entradas y salidas, reles, LCD alfanu-
que no están conectados. Los iden- La construcción de los cables sistema de programación serie sín- correspondiente para recibirlas. Que- mérico y LCD gráfico, teclados, co-
tificados como D0...D3 corresponden no podría ser más sencilla. Dado que .ICSP crona en el que intervienen 2 señales: da a cargo del lector la tarea de cons- nexión RS-232, enlaces por RF, etc.
a las líneas de datos, y he intentado los conectores IDC son “crimplea- Las placas destinadas a al- una de entrada y salida para la trans- truir un cable que vincule el progra- La idea es ir publicando un puña-
(con bastante éxito) que se correspon- bles” (es decir, pueden aplicarse al bergar los microcontroladores (como misión y recepción de datos; y otra de mador con el entrenador. do de ellos en cada numero de la revista
dan a los pines 0...3 o 4...7 de cada cable simplemente presionándolos PIC TRAINER 8, PIC TRAINER 18, entrada para la sincronización de la El pinout correspondiente al uControl. También puedes encontrar mó-
puerto de cada PIC. Por ultimo, “+5V” fuertemente contra él), solo nos toma- PIC TRAINER 28 y PIC TRAINER transmisión y recepción de los datos. conector ICSP de todas las placas dulos e información adicional en nuestra
y “GND” proporcionan alimentación ra unos minutos disponer de un buen 40) como adelantamos, poseen un Las líneas utilizadas se ubican (gene- que forman parte del PIC TRAINER página web: www.ucontrol.com.ar

//página 0x1D //página 0x1E


.nota de tapa / continuación / proyectos >> Módulo PIC Trainer 40

módulo PIC TRAINER 40


El primer módulo de nuestro entrenador es prácticamente indispensable. Se trata
de unos de los cuatro que poseen capacidad para albergar un microcontrolador.
Concretamente, es el encargado de albergar a los microcontroladores de 40 pines
en formato DIP, tales como el PIC16F877A, PIC16F887A y muchos más.

//por:Ariel Palazzesi//
arielpalazzesi@gmail.com

Afortunadamente Micro- ha resuelto mediante un regulador de


chip coloca los puertos de los mi- voltaje integrado de la serie LM78xx,
cros de 40 pines casi siempre en el concretamente el modelo LM7805.
mismo lugar, lo que permite a esta Una bornera de dos tornillos permite
placa la posibilidad de ser utiliza- alimentar a la placa desde una fuente
da con diferentes modelos, incluso externa de corriente continua con una
con algunos de la serie 18F, tales tensión de entre 7.5 y 15V. Un diodo
como el PIC18F4525, PIC18F4620, 1N4007 se encarga de proteger el res-
PIC18F442 o PIC18F452. to de la etapa de alimentación de una
Si miras las hojas de datos conexión con la polaridad invertida.
correspondientes, seguramente El regulador de voltaje esta do-
encontraras que muchos micro- tado de los dos condensadores de 0.1
controladores más pueden fun- uF de rigor, y a la salida un condensa-
cionar en este módulo. Incluso, es dor electrolítico de 470uF/16V se en-
posible construir un “adaptador” carga de eliminar el ripple que pudiese
para poder utilizar en él micros con encontrarse a la salida de la etapa de
capsula LQFP. alimentación. Por ultimo, un diodo LED,
en serie con un resistor de 220V se en-
.El circuito ciende cuando el circuito está alimenta-
do, indicando esta condición.
Como puede verse en el En lugar de utilizar un cris-
diagrama que acompaña este artícu- tal como oscilador del PIC que está
lo, el circuito de este modulo es bas- siendo utilizado en el módulo, he-
tante simple. Básicamente, se trata de mos colocado 3. Una serie de jum-
“publicar” los pines correspondientes pers (identificados como JP4, JP5 y
a los puertos de entrada y salida del JP6) se encargan de seleccionar uno
microcontrolador alojado en el zócalo de ellos. Los dos condensadores de
central mediante una serie de conec- 22pF completan esta parte del circui-
tores IDC10. to. Aunque parezca obvio, tenemos
La alimentación del modulo se que recordar al lector que no debe

//página 0x1F //página 0x20


.nota de tapa / continuación / proyectos >> PIC Trainer 2.0

colocar más de un jumper a la vez, ya En el caso de configurar los pi- mantienen a GND a través de sendos ma para cargar en el entrenador. a la hora de reprogramar el PIC.
Este es uno
que en ese caso el microcontrolador nes 13 y 14 como entrada/salida, estos resistores de 10K. La única excepción, o des- El pin 1, que corresponde al
de los módulos de no funcionará. se comportarán de la misma manera Los conectores siguen las vío de lo normal, que puedes ver RESET en los microcontroladores
nuestro entrenador Hemos elegido para nuestro que el pin 10, correspondiente al bit 2 mismas normas que explicamos en en el diagrama de los conectores PIC de 40 pines (al menos, en los
que podríamos prototipo valores de 4MHz, 8 MHz y del PORTE. Esto habilita los LEDs y el artículo anterior, así que no de- es en los pines correspondien- que son compatibles con este entre-
20MHz, pero nada impide utilizar pulsadores incorporados en el modu- berías tener problemas a la hora de tes a RB6 y RB7, ya que poseen nador), esta unido a un pulsador a
calificar de otros valores. El lector puede cam- lo, permitiendo su uso como forma de determinar la función de cada pin. un resistor de 220 ohms en serie. través de un resistor de 470 ohms y
indispensable. biarlos a gusto. ingresar (o representar) datos a (o de) Como regla general, recuerda que Cumplen con la función de permi- a +V mediante otro de 4.7K y un dio-
En caso de utilizar algún mo- nuestro programa. Los jumpers JP1, de los pines exteriores de cada co- tir programar el PIC mediante el do 1N4148. Al presionar el pulsador,
delo de PIC que disponga de oscila- JP2 y JP3 permiten seleccionar si co- nector solo se emplea uno (+V) y conector ICSP sin necesidad de el microcontrolador se resetea. Du-
dor interno y se quieran utilizar los nectamos el LED o el pulsador al PIC. los otros cuatro están sin conectar. retirar el cable que conecta el en- rante el funcionamiento normal del
pines 13 y 14 del mismo (correspon- En caso de seleccionar los De lo cinco interior, uno correspon- trenador con el modulo de turno. programa, el pin esta a +V. El diodo
dientes, en general, a E3 y E4) como pulsadores, debemos recordar que de a GND y los otros 4 a datos. No Por supuesto, si lo deseas puedes impide los problemas que podrían
pines de entrada/salida, bastará con estos ponen el pin correspondiente a es mala idea tener a mano el grafico reemplazar esos dos resistores surgir entre las alimentaciones del
no colocar ninguno de los jumpers 5V cuando son presionados. Mientras con la función de cada pin a mano por sendos puentes, y a otra cosa. modulo y del programador al utilizar
mencionados. que están en reposo, las entradas se cuando decidas hacer algún progra- Solo deberás quitar el cable plano el conector ICSP.

Esta imagen ayudará a colocar Este es, según el programa de diseño,


los componentes sobre el PCB. el aspecto que tendrá en módulo.

//página 0x21 //página 0x22


.nota de tapa / continuación / proyectos >> PIC Trainer 2.0

Este es el circuito del modulo PIC TRAINER 40. Debajo del PIC se ubican 3 condensadores cerámicos.

//página 0x23 //página 0x24


.nota de tapa / continuación / proyectos >> PIC Trainer 2.0

Pinout de cada uno de los conectores de expansión.

Hay tres condensado-


Los jumpers JP1, res cerámicos
JP2 y JP3 permiten que quedan dentro
seleccionar si del zócalo de 40 pines,
conectamos el LED y debajo del
o el pulsador al PIC. microcontrolador.

.Construcción do los que son más bajos, como los hora de soldar los componentes que res de expansión este presente esa
puentes, diodos, zócalos y resisto- tienen “polaridad”, como los diodos, tensión. Si todo esta bien, ya tienes
Si ya has montado alguno de res. Deja para el final los conectores, LEDs y condensadores electrolíticos. listo tu entrenador. Caso contrario,
nuestros proyectos, no tendrás ningu- regulador de voltaje y condensado- También es importante que coloques repasa las soldaduras y posición de
na dificultad a la hora de construir tu res. Asegúrate de que, involuntaria- el zócalo destinado al PIC en la direc- los componentes.
propio entrenador. Descarga el archi- mente, no haces un puente entre dos ción correcta, ya que de hacerlo mal
vo PDF correspondiente al PCB des- puntos del circuito. puedes confundirte cuando insertes .Conclusión:
de nuestra Web, y mediante la forma Hay tres condensadores ce- el microcontrolador, dañándolo.
que más te guste (puedes usar el rámicos que quedan dentro del zó- Una vez montado todo, sin Hemos montado la primera
“método de la plancha” explicado en calo de 40 pines, y debajo del micro- colocar el PIC en su lugar, alimenta placa que componen este entrenador.
la revista numero 1) transfiérelo a un controlador. No es una posición muy el circuito con una tensión de entre Personalmente, es el que mas utilidad
trozo de PCB virgen. Luego, al baño bonita para ellos, pero fue la única 7.5 y 12V. El LED “Power” debería me ha dado. Por supuesto, por si solo
de cloruro férrico; y por ultimo, una que encontré a la hora de diseñar el encenderse. Si es así, verifica con un resulta casi inútil, ya que las funcio-
buena limpieza y haces los agujeros. circuito impreso. No molestan a la multímetro que la tensión entre los pi- nes de entrada/salida implementadas
A la hora de soldar los com- hora de poner el PIC, así que no hay nes 11 y 31 (o 32 y 12) del zócalo del “onboard” son mínimas. Pero si cons-
ponentes, como siempre, resulta problemas con eso. microcontrolador sea de 5V. También truyes, al menos, el módulo de 8 E/S,
más sencillo si primero vas colocan- Presta especial atención a la puedes verificar que en los conecto- tendrás diversión para rato.

El PCB a utilizar, que mide 98x80 milímetros. Aspecto de la serigrafía del PCB a construir. Hemos decidido utilizar un PCB de una sola cara.

//página 0x25 //página 0x26


.nota de tapa / continuación / proyectos >> PIC Trainer 2.0: Módulo 8 E/S

PIC TRAINER 2.0: Módulo 8 E/S


Esta es, quizás, una de las placas de nuestro entrenador que deberíamos cons-
truir primero. Es indispensable para nuestro entrenador. Consiste en una serie de
pulsadores y diodos LEDs, que pueden ser configurados para su uso como dispo-
sitivos de entrada o salida, y conectarse a cualquiera de las placas centrales, que
contienen los micros.

//por:Ariel Palazzesi// Esta pequeña placa contie-


arielpalazzesi@gmail.com ne 8 pulsadores y 8 LEDs, pudien-
Para ensamblar do elegirse mediante 8 jumpers
esta placa que combinación de ellos vamos
a usar. De esta manera es posible,
no hay ninguna
por ejemplo, utilizar 2 líneas como
recomendación entradas y 6 como salidas, o cual-
en especial. quier combinación que desees.
Su tamaño es “1/2”, es de-
cir, la mitad de las de tamaño com-
pleto. Mide sólo 49x80 milímetros.
La construcción es muy sencilla,
puede realizarse en una hora o
poco más de trabajo, y su costo es
muy bajo. Veámosla en detalle.

.El circuito:

Si bien los módulos que utili-
zamos para albergar los PIC de 8, 18,
28 o 40 pines disponen de algún pul-
sador y/o LEDs “on-board”, su canti-
dad seguramente será insuficiente en
la mayoría de los casos. Es por ello
que este módulo resulta casi indis-
pensable para nuestras prácticas. Por
supuesto, si 8 E/S resultan insuficien-
tes, nada impide que construyamos
varias placas iguales. Al fin y al cabo,
la modularidad es la principal fortale-
za de nuestro entrenador.

//página 0x27 //página 0x28


.nota de tapa / continuación / proyectos >> PIC Trainer 2.0: Módulo 8 E/S

Este es el esquema eléctrico del modulo de 8 entradas y salidas.

Podemos utilizar
todos los canales
como entradas,
como salidas,
o dividirlos
en grupos.

Viendo el esquema eléctrico tos cada una, por lo que se necesitan canal como salida.
del circuito, lo primero que nos llama dos cables de conexión para utilizar Con el puente puesto hacia
la atención es que esta placa carece los 8 “canales” de entrada/salida. Por el lado del LED, la corriente entre-
de fuente de alimentación. Efectiva- supuesto, nada impide usar solo un gada por el pin del microcontrolador
mente, este módulo toma la energia cable si solo necesitamos cuatro lí- circula a través del resistor de 220
que necesita para funcionar directa- neas de E/S. ohms, pasando por el LED y ha-
mente del módulo central al que este La disposición de pines de ciendo que este se ilumine. Con el
conectado, consumiendo unos 100 los dos conectores IDC10 utilizados puente colocado hacia el lado del
mA cuando los 8 LEDs están encen- respeta las reglas establecidas para pulsador, la corriente que proviene
didos. Esta corriente puede ser pro- los módulos de este entrenador. de los 5V de la placa central (a tra-
vista sin problemas por cualquiera de Como se puede ver en las vés del cable plano) llega al pin co-
los módulos centrales previstos. fotos que acompañan este articulo, rrespondiente del microcontrolador.
El circuito consiste en dos cada canal de entrada/salida posee Para que el pin no quede “flotando”
bloques iguales, con cuatro LEDs y un “jumper” (o puente) que se coloca sin conexión cuando el pulsador
cuatro pulsadores para circuito impre- en un grupo de tres pines. Su función esta abierto, se uso una resistencia
so (del tipo “normalmente abierto”) en es seleccionar si en ese canal se va a de 10 K puesta a masa (a través del
cada uno de ellos. utilizar el pulsador (entrada) o el LED cable plano) en cada canal.
El hecho de que estén sepa- (salida). De los tres pines de bronce Cualquier combinación es
rados en dos bloques obedece a que en que se coloca el puente, el centralr posible: podemos utilizar todos los
los conectores de expansión previstos es el “común”, el que esta del lado del canales como entradas, como sali-
en las placas centrales de este juego pulsador es el que configura el canal das, o dividirlos en grupos de cual-
de módulos, como vimos, proveen co- como entrada, y el que esta del lado quier manera, simplemente poniendo
nexión para cuatro pines de los puer- del LED es el que permite utilizar el cada jumper en la posición deseada.

//página 0x29 //página 0x2A


.nota de tapa / cont... / proyectos >> PIC Trainer 2.0: Módulo 8

Diseño del circuito impreso necesario.

El circuito consiste
en dos bloques
iguales, con cuatro
LEDs y cuatro
pulsadores en cada
uno de ellos.

Vista del pequeño módulo terminado.

.El circuito impreso

El tamaño de la placa es muy


reducido, y como dijimos, solo ocupa
unos 49x80 milímetros. Esto obliga a
utilizar LEDs de 3mm de diámetro en
lugar de los más comunes de 5mm.
Para ensamblar esta placa
no hay ninguna recomendación en
especial. Como siempre decimos,
utilizamos una impresión láser del
circuito impreso propuesto y con el
calor de una plancha común lo trans-
Lista de componentes: ferimos al cobre. Si tienes dudas de
cómo realizar este proceso, puedes
2 conectores IDC (machos) de 10 vías consultar el artículo al respecto en el
24 pines de bronce número 1 de la revista.
8 LEDs de 3mm Una vez que tenemos la pla-
8 resistores de 220 ohms 1/4 de watt ca lista y agujereada, procedemos a
8 resistores de 10 Kohms 1/4 de watt soldar los componentes, cuidando de
8 pulsadores normales abiertos para impreso (de 5 mm) que los LEDs estén orientados co-
Pertinax, jumpers, etc. rrectamente, si no, no encenderán.

//página 0x2B
//página 0x2C
.proyectos >> Reloj de Tiempo Real (RTC)

Reloj de Tiempo Real (RTC)


El Relojito es el proyecto ideal para utilizar a este pequeño gigante. Básicamente,
Remeras pasamensajes el DS1307 se encarga de mantener funcionando un reloj de tiempo real, extre-
con panel de leds. madamente preciso, al que podemos consultar desde nuestro programa cuando
ideal para barman, fiestas electrónicas,
marketing directo y publicidad y más!!!
lo deseemos. En este articulo, Diego Márquez García-Cuervo, hace un divertido
análisis de su funcionamiento.
Contactos:
Tel: 15 6803 6152
juanscopp@yahoo.com
www.remerasleds.com.ar

//por:Diego Márquez García-Cuervo//

El DS1307 tiene
un pin de salida
que, debidamente
habilitado,
nos ofrece una
onda cuadrada.
Nuestros PIC’s no saben en Y ahí es donde entran los
qué día y hora viven. Perdidos en el amables señores de Dallas Maxim
no-tiempo, la realidad analógica o di- y su cucaracha octópoda clockea-
gital es un continuo donde las frac- dora: el DS1307, intitulada por ellos
ciones de tiempo superior a algunos mismos como un “64 x 8, Serial, I2C
milisegundos son entes abstractos Real-Time Clock”, o sea, un corazón
e inasibles. Anclados en patrones de reloj con alguna RAM adicional
de frecuencia decimales que no son (no volátil ya que es asistida por una
divisibles por sus primos binarios, batería de Litio que la mantiene a
esclavos del redondeo, siempre les flote mientras no le falte el fuelle de
sobran o les faltan unos microse- los voltios).
gundos para dar el Segundo Perfec- Este artículo consiste esen-
to. Como Reloj en Tiempo Real, un cialmente en exponer la información
PIC abandonado a su cuarzo y a sus necesaria para que nuestros PICs,
divisores, preescalers y postesca- aprovechando que ambos hablan en
lers, simplemente no da la talla. I2C, puedan trabajar juntos.

//página 0x2D //página 0x2E


.proyectos >> Reloj de Tiempo Real (RTC)

el Diagrama de Bloques del mismo corriente que sin ella, por lo que pode- la fecha y hora del dispositivo, como
(extraído de dicho datasheet) paso a mos dejar la batería tiesa en muy poco asimismo los bancos de RAM de libre
comentar algunas circunstancias inte- tiempo. Si no es necesario es preferible disposición para el usuario.
resantes a tener en cuenta. deshabilitar esta opción (mas adelante En esta tabla tener en cuenta
veremos cómo hacerlo). que el Bit 7 de la dirección 0x00 hay
1º El cristal de cuarzo ha de ser de que colocarla a 0 para que todo fun-
32.768 KHz. Un arcano designio que 4º En la tabla superior podéis ver la cione. Es el Enable (habilitación) ge-
tiene que ver con que 2^15 = 32.768, estructura de la NVRAM, donde se neral del dispositivo.
por lo que esa frecuencia es divisible mezclan tanto los registros de confi-
de forma exacta binariamente para guración, como los de salvaguarda de 5º El byte alojado en la dirección 0x07
generar 1000, o sea, nuestro segun-
do perfecto. Frecuencias de salida del DS1307 (Dallas Maxim)

2º La alimentación es doble. Por un Una batería de Litio v


lado el VCC de nuestro circuito nor- a a permitir que el reloj
mal, el del PIC, y por otro una bate- siga su normal
ría de Litio, que va a permitir que el
reloj siga su normal funcionamiento
funcionamiento
aún cuando apaguemos el PIC. (Esta aún cuando
batería sirve también para mantener apaguemos el PIC.
viva la NVRAM adicional de que dis-
Diagrama en bloques del DS1307 (Dallas Maxim)
ponemos). El mismo DS1307 se en-
Estructura de la memoria NVRAM interna.
.Implementación carga de realizar la conmutación entre
una y otra por lo que no tenemos que
La implementación consiste tener en cuenta esta circunstancia y
en posibilitar la comunicación I2C en- podemos olvidarnos de ella (salvo la
tre nuestros proyectos y el DS1307, de cambiar la pila cuando se agote).
explicando lo fundamental de este
chip, mostrándonos a continuación 3º El DS1307 tiene un pin de salida que,
un pequeño qué podemos hacer con él y qué no debidamente habilitado, nos ofrece una
(visto desde el punto de vista de den- onda cuadrada con las frecuencias que
y econmico integrado, tro de un PIC claro está, ya que es puedes ver en la tabla superior. Esta
que puede ayudarnos de cajón y no pienso comentar por salida es a colector abierto, por lo que
mucho en nuestros ejemplo que tragarse un DS1307 sin es necesario, si la queremos utilizar
quitarle las puntiagudas patillas pue- para inyectarla en cualquier otro circui-
proyectos.
de ser incompatible con la vida, tal y to, colocarle una resistencia pull-up de
como la conocemos). unos 10 Kohm a VCC.
No pienso repetir palabra por Ten en cuenta que si nuestro Registro de control.
palabra, como un vulgar loro de bar DS1307 va a pasar grandes periodos
portuario, lo que ya dice de forma de tiempo alimentándose solo de la ba-
meridianamente clara el Datasheet tería el tener esta opción de salida ha-
del DS1307, así que tras poneros bilitada consume cientos de veces más

//página 0x2F //página 0x30


.proyectos >> Reloj de Tiempo Real (RTC)

uso de este integrado, vamos a re- I2C. Si lo conectamos al PORTB te-


plicarlo exactamente hasta el último nemos disponibles la internas del PIC,
detalle. Montaremos una placa que en cualquier otro caso podemos hacer
incluya todos los componentes nece- uso del jumper JP3-PU para conectar
sarios, y que disponga de un conec- dichas resistencias Pull-Up a VCC.
tor compatible con mis placas de la
serie RRBOARD2 (más datos sobre 5º Añadimos además el jumper OUT para
esta entrenadora en http://picmania. poder utilizar externamente la señal de
garciacuervo.com/Proyectos_RR- onda cuadrada del pin Out del DS1307.
BOARD2.htm )
.Software:
Del pinout nada que añadir:
(Ver Pin Primero y antes que nada la li-
configurations) brería Driver CCS C para el DS1307.
Y este es el esquema defini- Como comenté mas arriba esta librería
tivo que vamos a construir, en el que es un gazpacho entre las varias que he
podemos destacar algunos detalles: encontrado por esos mundos de Dios,
fundamentalmente las expuestas en la
Circuito eléctrico sugerido por el fabricante. 1º La comunicación con la RRBOARD2 bibliografía que figura al final.
Disposición de pines del DS1307.
es el Control Register (registro de la realizamos mediante nuestro buen Las cosas que yo personalmen-
control) que nos permite configurar la amigo el conector CON-ML10 para ca- te he introducido en este driver son:
función del pin de salida según los si- ble plano de 10 hilos (alimentación y
guientes condicionantes: un puerto completo de 8 bits) - Parámetros pasados a ds1307_
El bit 4, SQWE, habilita o init() para configurar en el inicio la
deshabilita la función de salida exter- 2º JP1-PB y JP3-PC permiten selec- función OUT del DS1307.
na del pin Out. cionar la conexión de los SDA y SCL
El bit 7, OUT, establece el esta- del I2C a los pines 0..1 ó 3..4 del puer- -La funcionalidad
do del pin de salida cuando SQWE está to al que estén conectados (debido a disable_interrupts(global) / enable_
El Relojito posee deshabilitado. Si OUT es 1 y SQWE es 0 que las familias 18F4550 y 16F877 interrupts(global) en cada una de las fun-
un DS1307, entonces el pin de salida está en alto inde- implementa, el I2C en los pines RB0 / ciones definidas dependiendo del #define
y con este articulo finidamente, si OUT es 0 y SQWE es 0 en- RB1 y en los RC3 / RC4) use_interrups en el programa principal.
tonces el pin de salida está por el contrario
puedes aprender a - Función ds1307_get_day_of_
en bajo indefinidamente. 3º JP2-OUT Permite conectar o des-
sacarle provecho. Los bits 0 y 1 sirven para seleccio- conectar el pin Out del DS1307 al week() que me devuelve el string
nar la frecuencia de salida cuando SQWE pin Rx3 del puerto de la RRBOARD2 con el nombre del día de la semana
está en alto según la tabla expuesta en 2º. (Muy útil para usarlo con la Interrup- en la fecha actual (totalmente nueva y
ción Externa 2 del 18F4550) que no he encontrado por ahí).
.Esquema eléctrico
4º Dependiendo de dónde conectemos - He añadido las funciones necesarias
Este el circuito propuesto por nuestro circuito en la RRBOARD2 po- para escribir y leer todos los registros del
el fabricante como típico para su buen demos necesitar o no las resistencias DS1307 ds1307_read_nvram_byte()
funcionamiento. A fines de explicar el Pull-Up imprescindibles para el bus y ds1307_write_nvram_byte() Esquema propuesto para analizar el funcionamiento del chip.

//página 0x31 //página 0x32


.proyectos >> Reloj de Tiempo Real (RTC)

/////////////////////////////////////////////////////////////////////////////////////// i2c_write(0x07);
/// DS1307.C /// i2c_write(val);
/// Driver for Real Time Clock /// i2c_stop();
/// modified by Redpic 08/2006 ///
/// http://picmania.garcia-cuervo.com /// #ifndef USE_INTERRUPTS
/// /// enable_interrupts(global);
/// void ds1307_init(val) /// #endif
/// - Enable oscillator without clearing the seconds register ///
/// used when PIC loses power and DS1307 run from 3V BAT /// }
/// - Config Control Register with next parameters: ///
/// DS1307_ALL_DISABLED All disabled /// void ds1307_set_date_time(byte day, byte mth, byte year, byte dow, byte hr, byte min, byte sec){
/// DS1307_OUT_ON_DISABLED_HIHG Out to Hight on Disable Out ///
/// DS1307_OUT_ENABLED Out Enabled /// #ifndef USE_INTERRUPTS
/// DS1307_OUT_1_HZ Freq. Out to 1 Hz /// disable_interrupts(global);
/// DS1307_OUT_4_KHZ Freq. Out to 4.096 Khz /// #endif
/// DS1307_OUT_8_KHZ Freq. Out to 8.192 Khz ///
/// DS1307_OUT_32_KHZ Freq. Out to 32.768 Khz /// sec &= 0x7F;
/// /// hr &= 0x3F;
/// Example init: ///
/// ds1307_init(DS1307_ALL_DISABLED); /// i2c_start();
/// ds1307_init(DS1307_OUT_ENABLED | DS1307_OUT_1_HZ); /// i2c_write(0xD0);
/// /// i2c_write(0x00);
/// void ds1307_set_date_time(day,mth,year,dow,hour,min,sec) - Set the date/time /// i2c_write(ds1307_bin2bcd(sec));
/// /// i2c_write(ds1307_bin2bcd(min));
/// void ds1307_get_date(day,mth,year,dow) - Get the date /// i2c_write(ds1307_bin2bcd(hr));
/// /// i2c_write(ds1307_bin2bcd(dow));
/// void ds1307_get_time(hr,min,sec) - Get the time /// i2c_write(ds1307_bin2bcd(day));
/// /// i2c_write(ds1307_bin2bcd(mth));
/// char ds1307_read_nvram_byte(char addr) - Read byte in address /// i2c_write(ds1307_bin2bcd(year));
/// /// i2c_stop();
/// void ds1307_write_nvram_byte(char addr, char value) - Write byte in address ///
/// /// #ifndef USE_INTERRUPTS
/// void ds1307_get_day_of_week(char* ptr) - Get string Day Of Week/// enable_interrupts(global);
/// /// #endif
/// If defined USE_INTERRUPTS all functions disable Global Interrupts on starts and ///
/// enable Global on ends else usar can do it hiself /// }
/// ///
/////////////////////////////////////////////////////////////////////////////////////// void ds1307_get_date(byte &day, byte &mth, byte &year, byte &dow){

#ifndef RTC_SDA #ifndef USE_INTERRUPTS


#define RTC_SDA PIN_B0 disable_interrupts(global);
#define RTC_SCL PIN_B1 #endif
#endif
i2c_start();
#use i2c(master, sda=RTC_SDA, scl=RTC_SCL) i2c_write(0xD0);
i2c_write(0x03);
#define DS1307_ALL_DISABLED 0b00000000 // All disabled i2c_start();
#define DS1307_OUT_ON_DISABLED_HIHG 0b10000000 // Out to Hight on Disable Out i2c_write(0xD1);
#define DS1307_OUT_ENABLED 0b00010000 // Out Enabled dow = ds1307_bcd2bin(i2c_read() & 0x7f);
#define DS1307_OUT_1_HZ 0b00000000 // Freq. Out to 1 Hz day = ds1307_bcd2bin(i2c_read() & 0x3f);
#define DS1307_OUT_4_KHZ 0b00000001 // Freq. Out to 4.096 Khz mth = ds1307_bcd2bin(i2c_read() & 0x1f);
#define DS1307_OUT_8_KHZ 0b00000010 // Freq. Out to 8.192 Khz year = ds1307_bcd2bin(i2c_read(0));
#define DS1307_OUT_32_KHZ 0b00000011 // Freq. Out to 32.768 Khz i2c_stop();

#define Start_user_address_nvram 0x08 #ifndef USE_INTERRUPTS


#define End_user_address_nvram 0x3f enable_interrupts(global);
#endif
char days_of_week[7][11]={“Lunes\0”,”Martes\0”,”Miércoles\0”,”Jueves\0”,”Viernes\0”,”Sábado\0”,”Domingo\0”};
}
byte ds1307_bin2bcd(byte binary_value);
byte ds1307_bcd2bin(byte bcd_value); void ds1307_get_time(byte &hr, byte &min, byte &sec){

void ds1307_init(int val){ #ifndef USE_INTERRUPTS


disable_interrupts(global);
byte seconds = 0; #endif

#ifndef USE_INTERRUPTS i2c_start();


disable_interrupts(global); i2c_write(0xD0);
#endif i2c_write(0x00);
i2c_start();
i2c_start(); i2c_write(0xD1);
i2c_write(0xD0); sec = ds1307_bcd2bin(i2c_read() & 0x7f);
i2c_write(0x00); min = ds1307_bcd2bin(i2c_read() & 0x7f);
i2c_start(); hr = ds1307_bcd2bin(i2c_read(0) & 0x3f);
i2c_write(0xD1); i2c_stop();
seconds = ds1307_bcd2bin(i2c_read(0));
i2c_stop(); #ifndef USE_INTERRUPTS
seconds &= 0x7F; enable_interrupts(global);
#endif
delay_us(3);
}
i2c_start();
i2c_write(0xD0);
i2c_write(0x00); char ds1307_read_nvram_byte(char addr){
i2c_write(ds1307_bin2bcd(seconds));
i2c_start(); char retval;
i2c_write(0xD0);
#ifndef USE_INTERRUPTS

//página 0x33 //página 0x34


.proyectos >> Reloj de Tiempo Real (RTC)

disable_interrupts(global);
#endif

i2c_start();
i2c_write(0xD0);
i2c_write(addr);

i2c_start();
i2c_write(0xD1);
retval = i2c_read(0);
i2c_stop();

return(retval); En uControl encontrarás un


#ifndef USE_INTERRUPTS programa de ejemplo que hace uso
enable_interrupts(global);
#endif de esta librería, que puedes descar-
}
gar y probar a gusto.
void ds1307_write_nvram_byte(char addr, char value){
Bibliografía:
#ifndef USE_INTERRUPTS
disable_interrupts(global);
#endif
- El buscador del Foro Todopic
i2c_start(); ( www.todopic.com.ar/foros )
i2c_write(0xD0);
i2c_write(addr); poniendo “DS1307” en la casilla
i2c_write(value);
i2c_stop(); de búsqueda oportuna. (Algunos
#ifndef USE_INTERRUPTS
cientos de referencias paciente-
enable_interrupts(global); mente leídas y digeridas).
#endif

}
- El artículo Another DS1307 Driver
void ds1307_get_day_of_week(char* ptr){
publicado en el Foro oficial de
byte lday; CCS C, cuya paternidad corres-
byte lmonth;
byte lyr; ponde a un tal Phil, basado según
byte ldow;
ds1307_get_date(lday,lmonth,lyr,ldow); dice él mismo en el trabajo de un
sprintf(ptr,”%s”,days_of_week[ldow]);
}
tal Tullos.
//////////////////////////////////////////////////////
- El articulo DS1307 RTC and
byte ds1307_bin2bcd(byte binary_value){
24LC256 EEPROM on the same
byte temp;
byte retval;
i2c bus problem publicado en el
mismo foro que el anterior pero
temp = binary_value;
retval = 0; esta vez realizado por unos tales
while(1){
if(temp >= 10){ Birumher y Highwind en un mano
temp -= 10;
retval += 0x10;
a mano digno de un buen par de
}else{ toreros.
retval += temp;
break;
}
} - Y por último el artículo DS1307
return(retval);
}
routines que para no ser menos
también procede del Foro CCS C
byte ds1307_bcd2bin(byte bcd_value){
y de donde he sacado la idea de
byte temp;
habilitar y/o deshabilitar las inte-
temp = bcd_value;
temp >>= 1;
rrupciones.
temp &= 0x78;
return(temp + (temp >> 2) + (bcd_value & 0x0f));
} Todo esto adobado por su-
////////////////////////////////////////////////////// puesto con San Google Bendito don-
de escribiendo “PIC” y “DS1307” apa-
rece más información de la que estoy
dispuesto a digerir.

//página 0x35
//página 0x36
.proyectos >> Comunicación inalámbrica entre PICs

Comunicación inalámbrica entre PICs


En este proyecto se puede aprender de forma sencilla como establecer una co-
municación inalámbrica entre dos micros, enviando un cuarteto de bits, que poste-
riormente se puede ver en el micro receptor. La implementación del sistema esta
desarrollado con un par de micros 16F628A, y dos módulos de radio.

//por:Juan Ricardo Clavijo Mendoza//


jrclavijo@hotmail.com Apariencia del receptor RLP434A.
Módulo trasmisor TLP434A.”

Para algunos de los proyec- receptor respectivamente. Este juego


tos de control se hace necesaria la de radios trabaja una señal portadora
comunicación entre microcontrola- de 434MHz y modulan en ASK, de tal
dores de forma inalámbrica. Esta es manera que pueden transmitir valores
una tarea relativamente sencilla si se lógicos 1 y 0.
hace con las herramientas adecua- La modulación ASK es simi-
das, tales como un buen par de ra- lar a la modulación AM de la radio
Para evitar los
dios, un buen compilador de micros, comercial de la banda de AM. En la
errores en los datos y un mejor algoritmo para el tráfico modulación ASK un 0 lógico se re-
de llegada, es necesa- de la información. presenta con la ausencia de la señal por segundo pero estos son los casos micros. Esto implica que uno de ellos
rio implementar portadora y un 1 lógico con la pre- extremos de los módulos. Para esta- será el transmisor y el otro el receptor.
.Método sencia de esta. blecer una comunicación más confia- Estos micros los llamaremos, de aquí
algún método que Los módulos de radio que se ble, trabajaremos a una velocidad de en adelante, TX y RX. En el micro TX
garantice la veracidad La clave fundamental de este utilizan en este proyecto tienen un 2400 bits por segundo. se evalúan constantemente cuatro
de la información. proyecto esta en el medio de transmi- alcance de 100 metros si tienen una La instalación de estos módu- pines, en los cuales están instalados
sión que se utilice. En el comercio se adecuada instalación de las antenas. los de radio es muy simple, se utiliza sendos pulsadores que son los cua-
pueden conseguir una gran gama de La modulación ASK al igual que la mo- dos pines para alimentar el modulo, tro bits de información que deseamos
radios de trasmisión y recepción, con dulación AM es supremamente pro- uno con Vcc y otro con GND, un pin transmitir. Esta información es empa-
diferentes características como: cos- pensa a las interferencias y al ruido. para la antena y otro para la entrada quetada y transmitida serialmente por
to, alcance, formas de modulación, y Por esta razón es importante imple- o salida de datos de forma serial. la USART.
complejidad en el manejo entre otras. mentar dentro de la programación del El modulo transmisor se puede Para evitar los errores en los es igual, para determinar que el dato
Para este proyecto traba- PIC una rutina que permita detectar alimentar con una tensión de entre 3V datos de llegada, es necesario imple- no tiene errores.
jaremos con un par de radios muy cuando un dato ha llegado con errores y 12V. La potencia de transmisión será mentar algún método que garantice En el micro RX están instala-
sencillos de la compañía canadiense para que sea descartado, ya que los mayor a mayor voltaje. El modulo re- la veracidad de la información. Para dos cuatro LEDs que permiten ver el
LAIPAC que produce diferentes solu- módulos de radio no incluyen ningún ceptor solo se puede alimentar con 5V. esto existen formas complejas de dato que llega de manera inalámbrica.
ciones en el campo de comunicacio- método de software ni hardware para control de errores pero para este pro- A continuación puedes ver
nes inalámbricas. Se trata de un par la detección de estos errores. .Implementación yecto implementaremos un método el código fuente en C de los micros
de radios de los cuales uno es trans- Los módulos de radio tienen muy sencillo conocido como redun- TX y RX. El compilador utilizado es
misor y el otro es receptor. la capacidad de transmitir a una velo- Para establecer la comunicación en- dancia, el cual consiste en transmitir el PICC de Hi-Tech, pero puede ser
Las referencias son TLP434A cidad de 9600 bits por segundo y de tre los dos PIC trabajamos con el repetidamente el mismo dato y verifi- emigrado a cualquier otro compilador
y RLP434A, que son el transmisor y el recibir a una velocidad de 4800 bits modulo USART de cada uno de los car si el dato que llega en el micro RX que trabaje en C.

//página 0x37 //página 0x38


.proyectos >> Comunicación inalámbrica entre PICs

.Programa del MICRO TX switch( DATO ) // Se evalúa el dato que llega


{
#include <pic.h> case 170: for( n=0; n<4; n++ )Trama[n]=n; n=0; break; // Caso de la bandera de entrada.

void TxSerial( char d_ ) // Función para transmitir un dato de forma serial default : Trama[n++]=DATO; // Se guardan los datos de entrada en el búfer de la trama.
{ if( n==4 ) // Se evalua cuanda a llega el cuarto byte de la trama.
TXREG = d_; {
while( !TRMT ); if( Trama[1]==Trama[2] ) // Se comparan los datos 1,2,3 del bufer de la trama
} if( Trama[2]==Trama[3] ) // y se verifica que sean iguales.
{
void InicioSerial( void ) // Función d inicio de la USART PORTB = Trama[1]*16; // cuando el dato es correcto se muestra por
{ for( n=0; n<8; n++ )Trama[n]=n;// el puerto b en los LEDs
TRISB1 = 1; }
TRISB2 = 0; n=4;
TXSTA = 0x24; }
RCSTA = 0x90; }
BRGH = 1; // Configuración de la USART a 2400 bits por segundo RCIF=0;
SPBRG = 103; }
} }

void main( void ) // Funcion principal void main( void ) // Funcion principal.
{ {
char DATO; INTCON = 0; // Se apagan todas las interrupciones.
INTCON = 0; // Configuración de las interrupciones PEIE=1; // Se activan las interrupciones periféricas.
TRISB = 0xFF; // Se configuran los pines de los leds como salidas RCIE=1; RCIF=0; // Se activan las interrupciones por recepción serial.
RBPU = 0; // Se activan las resistencias PULL-UP GIE = 1; // Se activan las interrupciones de forma general.
InicioSerial(); // Función d inicio de la USART TRISB = 0x0F; // Se configuran los pines b como entrada y salida.
while(1) PORTB = 0; // Se apagan los pines del puerto b
{ InicioSerial(); // Se inicializa la USART.
DATO = (~PORTB>>4)&15; // Se guarda en la variable DATO el valor de los 4 pulsadores while(1); // bucle infinito para la espera de interrupciones.
TxSerial( 170 ); // Se transmite una bandera de inicio con la secuencia de bits: 10101010 }
TxSerial( DATO ); // Se transmite el dato de manera redundante. 8 veces
TxSerial( DATO ); __CONFIG( 0x3F09 );
TxSerial( DATO );
TxSerial( DATO );
TxSerial( DATO );
TxSerial( DATO );
TxSerial( DATO );
TxSerial( DATO );
}
}

__CONFIG( 0x3F09 );

.Programa del MICRO RX


#include <pic.h>

// Declaración de variables de trabajo


char n=0;
char Trama[4]={1,2,3,4};
Este es el diagrama del circuito transmisor Esquema eléctrico del receptor propuesto
char DATO;

void InicioSerial( void )// Función para la configuración de la USART.


{
TRISB1 = 1;
TRISB2 = 0;
TXSTA = 0x24;
RCSTA = 0x90;
BRGH = 1;
SPBRG = 103;
}

void interrupt VET( void ) // Vector de interrupciones.


{
if( RCIF ) //Interrupción serial
{
DATO = RCREG; //Lectura del buffer de entrada serial

//página 0x39 //página 0x3A


Ordenadores Sinclair

Paleotrónica
Modelos:
Ordenadores Sinclair
En este proyecto se puede aprender de forma sencilla como establecer una Sinclair ZX80
Año:1980
comunicación inalámbrica entre dos micros, enviando un cuarteto de bits, que Micropro NEC

posteriormente se puede ver en el micro receptor. La implementación del sistema μPD780C-1 de 3.25 MHz
1 KB RAM
esta desarrollado con un par de micros 16F628A, y dos módulos de radio. (ampliable a 16 KB)
4 KB ROM

//por:Ariel Palazzesi// Hijo de George William Carter . ZX80 La memoria del ZX80 podía am-
arielpalazzesi@gmail.com Sinclair y Thora Edith Ella Sinclair, pliarse a 3KB mediante un “RamPac”. La má-
ambos ingenieros, Comercializado a partir de 1980, quina se alojaba en una pequeña caja plástica
Clive Marles Sinclair nació el fue el primer ordenador del Reino Unido de color blanco, que disponía de un teclado de Sinclair ZX81
30 de Julio de 1940, en Inglaterra.
Desde muy joven mostró gran
que pudo comprarse por menos de libras
(costaba £99.95). Se entregaba como un kit,
membrana de color azul en el frente.
Este ordenador inició la locura
En 1985 vio la luz el Año:1981
Versión mejorada
interés por las matemáticas y la electróni- y los compradores tenían que ensamblar- por los “Home Computers”, en los 1980s.
Las ventas del ZX80 superaron las 50.000
Spectrum 128, que era de la Sinclair ZX80.
Su Hardware era
ca, investigando todo lo relacionado con
diseños electrónicos y circuitos de radios.
lo y soldar las piezas. Pero por un precio
ligeramente más alto podía obtenerse una unidades, colocando a Inglaterra en una básicamente un Spectrum más sofisticado.
En Julio de 1961, fruto de este interés, Clive
Sinclair funda Sinclair Radionics LTD , que
versión lista para usar. El ZX80 fue muy
popular en su época, llegando a existir una
situación de liderazgo en el campo de los
ordenadores domésticos. Debido a su nada
con más memoria y una
sólo un año más tarde lanzaba su primer lista de espera de varios meses para poder sofisticado diseño y su tendencia al sobre- carcaza “de verdad”.
Estos ordenadores producto: un kit de un amplificador de au- comprarlo. calentamiento, son pocas las máquinas so-
brevivientes en buen estado de funciona-
serian los que harían dio que se vendía por correo. En los años
siguientes la empresa comercializaría pro-
Su hardware se basaba en un mi-
croprocesador NEC μPD780C-1 (clon del miento, por lo que alcanzan altos precios
famoso el nombre de ductos innovadores, como la primera cal-
culadora de bolsillo (la Sinclair Executive,
Zilog Z80), que corría a 3.25 MHz. Dis-
ponía de 1 KB de memoria RAM estática,
entre los coleccionistas.
con el Zilog Z80, tenía un ciclo de reloj de
este inglés que nunca se de 1972) o la primera TV en miniatura (la ampliable a 16K; y 4 KB ROM, que conte- .ZX81 3.5 MHz. Lo acompañaban solamente tres
recibió de ingeniero. Microvision TV1A, comercializada en 1977
pero concebida casi 10 años antes).
nían el lenguaje de programación Sinclair
BASIC, el editor, y el Sistema Operativo. Un año después de revolucionar
chips: un ASIC a medida (ULA, de Ferran-
ti); una RAM del tipo 4118, de 1Kx8 bits;
Pero pese a los éxitos iniciales, a fi- Los comandos de BASIC, al igual que en la industria con el ZX80, Sinclair lanzo el y un chip de memoria ROM tipo 2364, de
nales de los años 70, Sinclair enfrentaba una los ordenadores que Sinclair inventará más ZX81. Se trataba de una versión mejorada 8Kx8 bits. El BASIC soportaba aritmética
crisis financiera importante, que luego de tarde, no se escribían. En lugar de ello, del anterior, montado en una caja negra de coma flotante.
varios cambios, fusiones y modificaciones en cada tecla tenía diferentes funciones, ac- con un teclado también de membrana. El Podías comprar este ordenador,
su empresa, lo lleva a fundar la ya mítica cediendo a cada una de ellas presionando video seguía desplegándose sobre un te- en el Reino unido, por £70 (unos u$s 100).
Sinclair Research LTD, en marzo de 1981. teclas especiales de cambio. levisor, pero esta vez el hardware era algo Como la memoria de la máquina era muy
Sería Sinclair Research LTD la res- Utilizaba un televisor a modo de mas sofisticado, y gracias a un modulador escasa, se ofrecía una ampliación de 16KB ZZ Spectrum 128 y ZZ Spectrum
ponsable del lanzamiento de una gama de monitor, y el almacenamiento de datos y de radiofrecuencia ya no se perdía la ima- de RAM (u$s 100). Más tarde, a mediado Año:1982
productos informáticos que harían histo- programas se hacía en cinta de casete. El gen mientras el ordenador “trabajaba”. de 1982, se pusieron a la venta ampliacio- Ordenador de 8 bits basado en el Z80, fun-
ria, entre los que se incluyen el ZX80 (de generador de video del ZX80 era muy pri- La pantalla mostraba texto sola- nes de 32KB y 64KB. Rápidamente se hi- cionando a 3.5 MHz
1980), el ZX81 (de 1981), el ZX Spectrum mitivo, resolviéndose la mayoría de las ta- mente, con 32 caracteres de ancho por 24 cieron famosos por la poca calidad de sus RAM de 16KB o 48KB
(de 1982), el Sinclair QL (de 1984), etc. Tal reas implicadas en la generación de la señal de alto. Sin embargo, eran posibles mos- contactos, que ante el menor movimiento o ROM 16KB
fue el éxito de la empresa y sus aportacio- de video mediante software. Esto hacia que trar gráficos con una resolución de 64 por vibración se desconectaban y hacían perder Manejaba gráficos acolor.
nes al sector tecnológico que en 1983 la rei- el ordenador solo pudiese generar imáge- 48 píxeles mediante el uso del comando los resultados de horas de programación.
na Isabel II otorgó a Clive Sinclair el título nes cuando estaba “desocupado”, es decir, PLOT, que ingeniosamente seleccionaba El ZX81 tenia la capacidad de uti-
de “Sir”, como reconocimiento por “sus cuando estaba esperando a que el usuario uno de los 16 caracteres gráficos disponi- lizar una impresora térmica, en la que un
servicios a la industria británica”. presionase una tecla. Cuando estaba co- bles, de 2x2 pixeles. alambre caliente dibujaba los puntos sobre
Estos ordenadores serian los que rriendo un programa BASIC, la pantalla se El dispositivo de almacenamiento un papel térmico color gris de 4 pulgadas
harían famoso el nombre de este inglés que ennegrecía. No era posible mostrar gráficos era el mismo que en el ZX80: un grabador de ancho.
nunca se recibió de ingeniero. A continuación, u objetos animados, y las imágenes eran en de casetes y cintas magnéticas de audio. A pesar de sus limitaciones, había
un breve resumen de cada uno de ellos. blanco y negro. Su microprocesador, un NEC compatible muchos juegos y aplicaciones que funcio-

//página 0x3B //página 0x3C


Paleotrónica Ordenadores Sinclair
Concurso
A pesar de sus
limitaciones, había Cuidemos el Planeta
muchos juegos
y aplicaciones que Enciende tu imaginación
funcionaban en la
minúscula memoria de
1 K, incluyendo un juego
básico de ajedrez.

naban en la minúscula memoria de 1 K, .ZX Spectrum en los modelos anteriores se reemplazó por
incluyendo un juego básico de ajedrez. uno de caucho que, sin ser la panacea, faci-
Para los aficionados no resultaba difícil de El 23 de abril de 1982 Sinclair litaba su uso.
conocer, entender, y controlar totalmente el lanzó el ordenador que se convertiría en El sistema de almacenamiento en
ordenador, casi imposible de lograr con los su mayor éxito, y que hoy es un objeto de cinta (casete de audio común) funcionaba a
ordenadores de hoy en día. culto: el ZX Spectrum. 1.200 baudios, y un juego de 48 KB tardaba
A los fanáticos de las compara- Al igual que sus predecesores fue unos 5 minutos en cargar. Con “turbo”, nom-
ciones les gustará saber que un bucle FOR-
NEXT, contando de 1 a 1.000, tardaba 19
un ordenador de 8 bits basado en el Z80,
funcionando a 3.5 MHz. Lo primero que
bre elegido por algunos programadores para
denominar rutinas propietarias más rápidas,
~
segundos en ejecutarse. Otra curiosidad era asombraba de esta máquina era la posibi- podía reducirse en algo este tiempo. Si que-
que, si bien no disponía de la posibilidad lidad de utilizar gráficos en colores. rías más velocidad (pero no mucha), podías
de generar sonido, algunos programadores Sinclair proporcionaba este orde- comprar una unidad de disco muy primitiva,
modulaban la interferencia que el proce- nador con dos configuraciones de RAM dife- llamada microdrive, muy popular entre los
sador causaba en la TV, creando algunos rentes: 16 KB o 48 KB. Si le sumamos los 16K desarrolladores de software.
sonidos rudimentarios. También había un de ROM, la memoria total de ambos mode- Una de las particularidades del
notorio bug que hacía que (algunos) ZX81s los era realmente de 32KB y 64 KB, al límite ZX Spectrum fue su sistema de vídeo, ca-
calcularan la raíz cuadrada de 0.25 como del direccionamiento posible con 16 bits. paz de mostrar 256x192 píxeles con 15 co-
1.3591409 en lugar de 0.5. El teclado de membrana utilizado lores en menos de 8 KB. Esto era posible
gracias a que resolución de estos colores
es a nivel de carácter (8x8 píxeles). El pro- usa tus conocimientos Los premios (1º y 2º puesto)
Arkanoid en el ZX Spectrum de 48KB para crear soluciones
blema de tener distintas resoluciones para Una licencia personal
la luminosidad y el color volvía locos a los al cambio climático. a elección de uno
programadores de juegos, que debían mi-
diseña un dispositivo que de los tres siguientes
nimizar las colisiones entre colores. Este
fenómeno era conocido como “attribute contribuya a paliar el simuladores/compiladores:
clash” en el mundo anglosajón. calentamiento global. PIC Simulator IDE,
En 1985 vio la luz el Spectrum 128, Tienes tiempo hasta PIC 18 Simulator IDE,
que era básicamente un Spectrum con más
memoria y una carcaza “de verdad”. Las
el 15.11.2008. AVR Simulator IDE.
teclas finalmente se parecían a las de un or- NO te quedes afuera!!! los trabajos se publicarán
denador actual, y la cantidad de memoria
disponible hacia innecesarios los módulos
de ampliación.
A medida que la tecnología abara-
taba los costos, Sinclair diseñó y comerciali-
zó otros modelos, llamados ZX SPECTRUM Es una iniciativa de:
128 +2 y ZX SPECTRUM 128 +3, que dentro ®
de la carcaza incorporaban la unidad de cin-
ta o de microdrives, respectivamente. www.ucontrol.com.ar
Su optimizado y compacto diseño Electrónica en General Pics en Particular
Placa principal del ZX81 hizo las delicias de miles de aficionados a
Los premios se adjudicarán al 1º y 2º puesto. El jurado estará integrado por el staff de uControl.
la informática y los videojuegos. Los resultados serán publicados en nuestra web y notificados personalmente.
Los trabajos seleccionados integrarán el Nº 5 de uControl Revista
Para más información consulta las bases disponibles en: www.ucontrol.com.ar

//página 0x3D
Diseño y Diagramación
azimut.estudio@gmail.com / la plata / bs as / argentina

You might also like