Descarga Gratuita

Embed Size (px)

Citation preview

  • 8/14/2019 Descarga Gratuita

    1/52

    Electrnica en General Pics en Particular

    Estreno!!!El u-Scilador

    El Relojito II

    Te presentamoslas nuevas secciones:

    Paleotrnica y Ludoteca

    Capaz de trabajar con frecuenciascomprendidas entre unoy varias decenas de MHz

    int ao = 1, nmero 2; /* MARZO 2008 */// DESCARGA GRATUITA //

    Analizaremos las rutinas necesariaspara la programacin de nuestro reloj.

    Lenguajes PIC BASIC y CCS

  • 8/14/2019 Descarga Gratuita

    2/52

  • 8/14/2019 Descarga Gratuita

    3/52

    nmero = 2; ao = 1;

    Direccin y Redaccin:Ariel Palazzesi

    [email protected]

    www.ucontrol.com.ar

    Edicin, Redaccin y Correccin:Reinier Torres Labrada

    [email protected]

    Diseo:

    Vernica C. LavoreArgentina

    [email protected]

    Consejo Editorial:Mario Sacco

    [email protected]

    Carlos Ortega SabioEspaa

    [email protected]

    Diego Mrquez Garca - [email protected]

    http://picmania.garcia-cuervo.net/

    Marcos LazcanoArgentina

    [email protected]

    PedroVenezuela

    [email protected]

    Contacto:[email protected]

    www.ucontrol.com.ar

    .inicio

    .editorial

    Nuevamente estoy sentado frente al ordenador,enfrentado a la tarea de escribir la editorial de la revista.Lo primero que se me ocurre es que, en esta oportunidad,

    ms que Editorial deberamos poner a este espacio elnombre de Agradecimientos. Veamos porque.

    En primer, es imprescindible agradecer a los msde 14.000 lectores que descargaron la revista en los pri-meros dos meses. No hace falta decir que un nmerosemejante ha superado con creces nuestras ms locasfantasas. El sorteo del GTP-USB+ cont con mas de 700participantes, y nuestra casilla de correo se vio inundadade mensajes expresando felicitaciones, agradecimientosy sugerencias (que sern debidamente tomadas en cuen-

    ta) para los prximos nmeros.En segundo lugar tengo que reconocer la calidady el esfuerzo de los colaboradores que han hecho posiblesestos dos nmeros de uControl. Probablemente no lo sepas,pero quienes escriben en uControl lo hacen restando tiempoa sus labores habituales, sin cobrar un centavo por ello. Estehecho, sin duda, hace an ms valiosos sus artculos.

    Algo que tambin nos ha sorprendido gratamente,y que necesario agradecer, es la buena aceptacin queha tenido esta modestsima revista en los foros y blogs detodo el mundo. Muchos sitios han colocado una copia del

    documento PDF para que sus lectores lo puedan descar-gar directamente desde sus servidores, y algunos inclusonos han honrado abriendo una seccin dedicada a estapublicacin.

    Todo esto hace que el compromiso asumido enel nmero anterior, de entregar cada 64 das una revistaprolija, fresca y til, se vea fortalecido. Haremos todo loposible por que cada nmero sea mejor que el anterior,sumando cantidad de artculos y de pginas para que to-dos encuentren en ella el dato que buscan. Para lograrlo,hemos hecho de este segundo nmero es una evolucin

    del primero. Hay nuevas secciones, hemos intentandomejorar la forma en que escribimos para que los textossean fcilmente comprensibles, y el diseo de las pgi-nas e imgenes tambin ha sido revisado para hacer masagradable la lectura.

    Este mes estrenamos colaboradores nuevos. Enrealidad, por motivos de tiempo nos han quedado sin in-cluir varios artculos de gran calidad y valor didctico quecolaboradores espontneos nos han enviado. Por supues-to, podrs leerlos en los nmeros siguientes o en nuestro

    sitio Web.En uControl esperamos que la revista que acabasde descargar sea de tu agrado. Si al menos una pagina teresulta de utilidad, el esfuerzo habr valido la pena.Hasta el prximo Nmero!

    .indice

    //pgina 0x02

    hicimosestenmero

    ...

    .st

    aff

    llave accionada al tacto

    el Protocolo Wiegand

    PICs y LEDs: una pareja perfecta

    poniendo un poco de orden en C

    simulador de circuitos digitales

    el relojito. segunda parte

    PIC BASIC. CAP. II

    hablemos de antenas

    receptor para el protocoloDMX512

    monoestable con NE555

    el bus SPI

    el u-Scilador

    dado electrnico. versin 1

    dado electrnicocon PIC 16

    el microprocesador INTEL 4004

    0x04

    0x05

    0x08

    0x0B

    0x0D

    0x10

    0x13

    0x15

    0x19

    0x1F

    0x21

    0x26

    0x28

    0x2B

    0x2E

  • 8/14/2019 Descarga Gratuita

    4/52

  • 8/14/2019 Descarga Gratuita

    5/52

    .proyectos//Mario Sacco//

    [email protected]

    llave accionada al tacto

    Es posible reemplazar nuestros viejos pulsadores utilizando solo un pua-

    do de componentes fciles de conseguir. Utilizaremos botones metlicos, eternos,

    que darn una nueva dimensin a nuestras posibilidades de desarrollo. El circuito

    que presentamos aqu puede utilizarse en casi todos los proyectos que requieran

    el accionar de interruptores.

    Al levantarnos, por la maana, apagamos eldespertador (pulsamos un botn), encendemos la luz

    (pulsamos un botn), vamos al bao y encendemos la

    luz (pulsamos un botn), nos aseamos y al salir apaga-

    mos la luz (pulsamos un botn).

    An no sabemos si ha salido el sol o est nublado y yahemos pulsado botones una innumerable cantidad de veces.

    Cuando uno de estos botones queacompaan cada da de nuestras vidas co-mienza a fallar, comenzamos a maltratar-lo hasta que logramos que el artefacto encuestin nos haga el honor de ejecutar lafuncin que deseamos. Este es un hechoestadstica comprobable a quin no le hapasado alguna vez?

    Cuando dicho aparato ya no pue-de soportar ms golpes, terminamos dndonos cuenta dela importancia que tiene un sistema como el que describi-remos en este artculo. Se trata de un sistema totalmenteestanco, sin partes mecnicas o mviles, que ser eterno.

    Nuestro circuito necesita de un elemento metlico,

    conductor, que haga las veces de sensor de toque. Hemosutilizado para ello la cabeza de un tornillo, aunque es posi-

    ble utilizar alguna otra cosa en su lugar. Al tocar este ele-mento estamos induciendo en el mismo una seal de 50Hz. que ser rectificada por los diodos identificados comoD1 y D2 en el esquema. Esto provocara que un voltaje ne-gativo se haga presenten en condensador C3, el resistor

    R3 y la compuerta ( gate) del transistorQ1. Esto hace que el transistor pase a unestado de corte.A travs del resistor R2 proporcionamosun estado lgico alto a la entrada de la pri-mer puerta del CD4069.Este 1 es invertido por la segunda com-puerta y aplicado a la entrada de control deuna de las cuatro llaves analgicas que po-

    see el circuito integrado CD4066. Estas entradas requierende un estado alto para activar la llave analgica interna.

    Dado que un CD4069 dispone de seis compuer-tas en su interior, y que un CD4066 tiene cuatro llaves, po-demos construir tres pulsadores de este tipo con solo doscircuitos integrados. Es importante recordar que con estasllaves podremos conmutar seales de baja tensin y co-

    rriente. Esto incluye seales de audio, video, circuitos decontinua, seales TTL o CMOS y toda aquella aplicacinque no requiera consumos de ms de 60 mA. Si el aparatoa conmutar consuma una corriente mayor, daaremos lallave del CD4066.

    La versatilidad de este circuito nos permitir dise-ar mdulos selectores de funciones, controles de volumen,pulsadores de reset, teclados, etc. Todo aquel proyecto querequiera el uso de un botn pulsador, dejar de tener unelemento que algn da pueda fallar.

    En la prxima entrega veremos cmo, con un pe-queo agregado, podemos transformar este pulsador mo-mentneo, en un pulsador con retencin, pudiendo susti-tuir tambin a esta clase de frgiles dispositivos.Es notable que tan pocos componentes, soluciones problemas eternos.

    //pgina 0x04

    Nuestro circuito

    necesita de un elemento

    metlico, conductor, que

    haga las vecesde sensor de toque.

  • 8/14/2019 Descarga Gratuita

    6/52

    .teora

    //pgina 0x05

    el protocolo Wiegand

    //Diego Mrquez Garca - Cuervo//[email protected]

    Una visin general de qu es, para qu sirve y cmo se utiliza el protocolo

    que implementaron los lectores de tarjetas de Efecto Wiegand.

    Primero y antes de empezar, es importante no

    confundir el Protocolo Wiegand con el Efecto Wiegand. El

    Efecto Wiegand es un concepto fsico en el que intervienen

    las distintas formas en que reaccionan magnticamente

    distintas reas de un hilo conductor ante la influencia de un

    campo magntico.

    En base a este Efecto Wiegand se construyeron cier-

    tos tipos de tarjetas de identificacin y sus correspondienteslectores de tarjetas de proximidad, para usarlos en controlde accesos y/o presencia. Estos lectores de tarjetas debanconectarse a los dispositivos de control de acceso de algnmodo (vase Fundamentos de la Comunicacin Sncronaen el nmero anterior), y en lugar de usar algn protocolo yaexistente se decidi desarrollar uno propio. As naci el Proto-colo Wiegand, que es al que se refiere este artculo.

    Como todo protocolo de comunicaciones el Wie-gand consta de dos partes fundamentales. Por un ladotenemos una descripcin del modo en que fsicamente se

    transmite la informacin digital, y por otro la forma de inter-pretar numricamente dicha informacin.

    Probablemente debido a mis propias limitacionesy/o desconocimiento no sera capaz de deciros si el protocoloWiegand es un protocolo serie Sncrono o Asncrono ya quees fundamentalmente distinto a los que conozco de estos dostipos anteriores: El ABA Track II como ejemplo de Sncrono oel RS-232 del Asncrono. En cualquier caso, describir comofunciona y ustedes mismos podrn decidir como llamarlo.

    . Sistema de transmisin

    La transmisin de datos Wiegand usa tres hilos. Lalnea para enviar los unos lgicos o DATA1, la lnea parahacer lo propio con los ceros lgicos o DATA0 y la lnea demasa de referencia de ambos o GND. Los niveles que seusan son Bajo, a nivel de GND, o Alto a +5V o VCC.

    En estado de reposo, o sea, sin transmitir, la lneade GND es exactamente lo que es: GND, y siempre est enbajo, por lo que ya no nos referiremos ms a ella. Las lneasDATA1 y DATA0 estn en alto, a nivel de +5V VCC.

    Para transmitir un Bit 1 lo que se hace es mandarun pulso a Bajo, normalmente de 50 uS (microsegundos)de duracin, por la lnea DATA1, mientras DATA0 perma-nece en Alto.

    Por el contrario, para transmitir un Bit 0 lo que sehace es mandar un pulso Bajo, tambin de la misma dura-cin 50 uS (microsegundos), por la lnea DATA0, mientras

    ahora es DATA1 la que permanece en Alto.Normalmente la separacin entre cada pulso y el

    siguiente es de unos 2 mS (milisegundos).Como podis ver, y a diferencia de los protocolos

    mencionados anteriormente, los dos tipos de Bits, ceros yunos, son transmitidos de forma idntica aunque por lneasdistintas. En el cronograma de la figura 1 vemos una repre-sentacin grfica de este sistema de transmisin.

    Y hasta aqu todo lo referente a la primera parte

    Diagrama de tiempos al transmitir la secuencia de bits 1010.

  • 8/14/2019 Descarga Gratuita

    7/52

  • 8/14/2019 Descarga Gratuita

    8/52

    .teora

    //pgina 0x07

    ext_handler() {

    if(first_exp==1){Code[nextbit]=0;if(++nextbit==CodeBits){read_complete=1;

    }}first_exp=1;

    }

    // INTERRUPCION por EXT1 Data1 ------------------------------------------------

    #int_ext1ext1_handler() {

    if(first_exp==1){Code[nextbit]=1;if(++nextbit==CodeBits){read_complete=1;

    }}first_exp=1;

    }

    void limpia_data(void){

    for(i=0;i

  • 8/14/2019 Descarga Gratuita

    9/52

    .informacin tcnica

    //pgina 0x08

    PICs y LEDs:una pareja perfecta

    Los diodos LED son seguramente la forma ms popular de sealizacin de esta-dos en los equipos electrnicos. En este pequeo artculo, veremos la manera de

    sacar todo el provecho posible a estos coloridos componentes.

    //Ariel Palazzesi//[email protected]

    En 1921 el fsico Albert Einstein recibi el pre-mio Nobel de esa ciencia. Pero contrariamente a lo

    que muchos creen no fue por su teora de la relati-

    vidad, sino por un estudio en apariencia mucho ms

    modesto: el efecto fotoelctrico.Einstein explic que algunos materiales, al ser ex-

    puestos a una fuente de luz con determinada longitud deonda, se induca una pequea corriente elctrica. Tam-bin demostr que al hacer circular por ellos una corrienteelctrica, emiten luz.

    La luz producida mediante el llamado efecto foto-elctrico tiene una frecuencia determinada (es de un slocolor), que depende del tipo de material. Algo parecido alo que ocurre en un rayo lser, pero sin la coherencia quepresenta el haz de luz de este ultimo.

    Gracias el efecto fotoelctrico el estadounidenseNick Holonyak, Jr. Invent el primer dispositivo semicon-ductor que haca uso prctico de este importante descu-brimiento fsico. Como en electrnica todo parece teneruna sigla por nombre, se los llamo LED: Light Emiting Dio-de, o Diodo Emisor de Luz en espaol. Presente en formade luz piloto en casi todos los componentes electrnicosde consumo, es la aplicacin por excelencia de un efectofsico que permite la emisin de luz (fotones) cuando serecombinan un electrn y un hueco dentro de la unin PNque forma el diodo.

    Este tipo particular de diodo se encapsula, gene-ralmente, en plstico transparente, de manera que esta ra-diacin sea visible. De acuerdo a los materiales utilizadosen su fabricacin, la luz emitida es de diferentes colores,siendo los ms frecuentes el rojo, verde y amarillo, aun-que es posible encontrarlos en gran variedad de colores,incluso blancos. Y por supuesto, algunos son capaces deemitir luz en una frecuencia que est ms all del colorrojo, tpicamente en 940 nanmetros, banda denominadainfrarrojo y que se emplean como emisores en aparatos

    de control remoto o como barreras luminosas en tareas deautomatismo y control.

    Para que todo esto funcione, necesitamos queuna corriente atraviese el LED. La intensidad de esta co-rriente debe ser cuidadosamente calculada, dado que si

    excedemos los lmites especificados en la hoja de datosdel componente, este se destruir. La lista siguiente nosda una idea de que tensin aproximada necesita la junturade los LEDs de colores comunes para funcionar:

    - Rojo = 1,6 V- Rojo alta luminosidad = 1,9v

    - Amarillo = 1,7 V a 2V

    - Verde = 2,4 V

    - Naranja = 2,4 V

    - Blanco brillante= 3,4 V

    - Azul = 3,4 V

    - Azul 430nm= 4,6 V

    Para limitar la co-

    rriente que circula por el LED,lo ms usual, es colocar unresistor en serie con l.

    El clculo del valorde esta resistencia es muy sencillo, y solo implica el usode la ley de ohm. Debemos restar la tensin del LED a latensin de la fuente, y dividir el resultado por la corrienteque deseamos atraviese el componente. Si usamos lasunidades correctas (tensiones en Volts y corrientes enAmperes), el resultado estar expresado en Ohms.

    Veamos un ejemplo concreto. Supongamos quetenemos un LED rojo de alta luminosidad, que segn su

    hoja de datos, necesita para funcionar correctamente, unacorriente de 18 mA y una tensin entre nodo y ctodo de2 V, y queremos alimentarlo con una batera de 9V Culser el valor de la resistencia limitadora?

    Bien, si aplicamos la formula anterior, obtenemos que

    Una resis-tencia en

    serie con elLED limita la

    corriente quelo atraviesa.

    Esta frmula permite calcular el valor de la resistencia limitadora.

    primera parte

  • 8/14/2019 Descarga Gratuita

    10/52//pgina 0x09

    Como puede verse, el valor para la resistencia esde 389 Ohms. Como no existen resistores comerciales deese valor, utilizaremos el ms cercano: 390 Ohms.

    A menudo es necesario colocar dos o ms LEDsen serie, entre s. En ese caso, debemos asegurarnos quetodos funcionan con la misma corriente, para evitar quealguno resulte daado. Luego, simplemente reemplaza-mos en la formula que hemos visto el valor de V(LED)

    por la suma de las tensiones de cada uno de los LEDsimplicados. Por supuesto, el valor de esta suma no debeser mayor a la tensin suministrada por la fuente.

    .LEDS y PICS

    Por supuesto, los LEDs resultan ser la lmparaideal para los microcontroladores. Su bajo consumo decorriente hace que puedan manejarse directamente consus pines (casi siempre) sin necesidad de etapas interme-dias. Pero antes de realizar cualquier diseo electrnico,

    debemos asegurarnos que la corriente suministrada porlas salidas del microcontrolador en cuestin es suficientepara el modelo de LED que vamos a emplear.

    La figura siguiente ilustra la forma en que pode-mos conectar un LED a un PIC. Vamos a suponer que latensin disponible en el pin del PIC es de 5V, que la co-rriente que atravesara el LED es de 15 mA, y que la cadade tensin en este es de 2V. Eso nos da un valor para Rde 200 Ohms, por lo que utilizaremos una de 220 Ohms,valor disponible comercialmente, ms cercano.

    Reemplazamos los valores, y calculamos R.

    Los LEDs resultan ser el complemento

    ideal para los microcontroladores

    LED conectadoentre PORTB.7 yGND.

    El siguiente programa en CCS permite probar el

    funcionamiento del circuito de ejemplo:

    #include //PIC utilizado#use delay (clock=4000000) //Oscilador a 4Mhz#use fast_io(b) //Optimizamos E/S del PORTB//------Programa principal----------------------void main(void){

    set_tris_b(0x7F); // RB7como salida,el resto como entrada.

    do{output_low(PIN_B7); //Apago el LEDdelay_ms(500); //Espero 500ms.output_high(PIN_B7); //Enciendo el LEDdelay_ms(500); //Espero 500ms.

    }while(TRUE); //Repito el bucle}

    Y el siguiente hace lo mismo, pero est escrito enel BASIC del PIC SIMULATOR IDE:

    AllDigital Desabilitamos comparadoresTRISB = %01111111 RB7como salida, el resto comoentrada.loop:

    PORTB.0 = 0 Apago el LED

    WaitMs 500 Espero 500ms.PORTB.0 = 1 Enciendo el LEDWaitMs 500 Espero 500ms.

    Goto loopEND

    En el ejemplo anterior, el LED encender cuandoel pin 7 del puerto B se ponga en nivel alto. Pero tambinpodemos conectar el LED de manera que se encienda alponer el pin en nivel bajo:

    .informacin tcnica

    LED conectadoentre PORTB.7y Vcc.

  • 8/14/2019 Descarga Gratuita

    11/52//pgina 0x0A

    .informacin tcnica

    Si probamos cualquiera de los dos programasprecedentes con este circuito, tambin funcionar, soloque el LED encender cuando debera estar apagado, yviceversa.

    Nada impide manejar ms de un LED a la vez.De hecho, se trata simplemente de repetir el esquemaresistencia limitadora LED tantas veces como sea ne-

    cesario:

    El cdigo siguiente, en el mismo BASIC que usa-mos antes, permite realizar una cuenta en binario desde 0a 255, al tiempo que muestra el resultado en los 8 LEDSconectados al puerto B:

    AllDigital Desabilitamos comparadoresTRISB = %00000000 Todo el puerto b como salida.Dim i As Byte

    For i = 1 To 255PORTB = i Enciendo leds WaitMs 500 Espero 500ms.Next iEnd

    Tambin podemos ver un ejemplo en CCS. Elprograma siguiente consiste en un bucle infinito, que encada repeticin cambia el estado de las salidas del puer-to B, encendiendo uno de los LEDs a la vez. Cuandollega a uno de los pines del extremo del puerto, realiza

    el efecto inverso hasta llegar nuevamente al otro. Luegose repite todo el ciclo. Se han empleado los operadores para desplazar el contenido del puerto en unoy otro sentido.

    AllDigital Desabilitamos comparadoresRISB = %00000000 Todo el puerto b como salida.Dim i As Byte

    For i = 1 To 255PORTB = i Enciendo leds WaitMs 500 Espero 500ms.Next iEnd

    Hay casos en que se necesitan manejar un n-mero elevado de LEDs, y los pines disponibles en el mi-crocontrolador de turno resultan insuficientes. La solucin

    es utilizar alguna tcnica de multiplexado. En el prximonmero veremos cmo hacerlo.

    #include //PIC utilizado#use delay (clock=4000000) //Oscilador a 4Mhz#use fast_io(b) //Optimizamos E/Sdel PORTB#byte portb = 0x6 //Direccion delPORTB//------Programa principal-----void main(void){

    int i; //Declaro la va-riable del for

    set_tris_b(0x00); //Todo PORTB comosalida.

    disable_interrupts(GLOBAL);//todas lasinterrupciones desactivadas

    do{ //Bucle infinitoportb = 0x01; //Estado inicial del puerto

    //----Bucle de ida ---------for (i=0;i> 1; /Desplazo valor

    de PORTB una pos. a la der.delay_ms(500) //Espero medio segundo y...

    }} while(TRUE); //...repito el bucle

    }

    8 LEDs conectados al puerto B del PIC16F628A

  • 8/14/2019 Descarga Gratuita

    12/52

    .programacin //Jess Fernndez Hernndez//[email protected]

    poniendo un poco de orden en C

    Mantener ordenadas aquellas libreras que compartimos entre distintos proyec-

    tos, puede ser una tarea a veces complicada, sobre todo cuando desconocemos

    mtodos eficaces para realizar este trabajo. Este problema existe desde hace

    muchos aos y los desarrolladores de compiladores para C, fueron incluyendo

    mecanismos eficientes para dar solucin a este problema. Las siguientes lneas

    nos ayudarn a sacar provecho de esas simples, pero poderosas herramientas.

    El uso de las libreras es fundamental para eldesarrollo de proyectos en C. Sin embargo, cuando

    tenemos varios proyectos que comparten las mismas li-

    breras, una gestin deficiente, puede llevarnos al caos.

    Donde reside el problema?En aquellas libreras que necesitamos reutilizar, y

    que por su naturaleza, tenemos que modificar para adap-tarlas a nuestros proyectos. Un claro ejemplo de este tipode libreras es la Flex_LCD.c desarrollada por CCS, quenos permite utilizar los muy comunes LCDs de 2 lneas.

    Habitualmente, esta librera debe ser modificada paraadaptarla a nuestras necesidades en cada proyecto. Estasituacin se presenta cuando nuestrosproyectos requieren el uso de distintos mi-crocontroladores o cuando necesitamosdeterminados mdulos del microcontro-lador, cuyos pines de E/S, han sido asig-nados al LCD dentro de Flex_LCD.c. Deaqu en adelante, utilizaremos la libreraFlex_LCD.c como modelo para el restodel artculo, pero todo lo expuesto es apli-cable cualquier librera.

    Como se modifican estas libreras para su uso?Aqu es donde surge el caos entre los distintos pro-

    yectos que tenemos entre manos o que hemos realizado.Analicemos las tres alternativas, de uso ms frecuente:

    .La forma usual e inecaz.

    Tenemos una nica librera ubicada en el directoriode libreras (library), y cuando nos hace falta, la modifica-

    mos. Esta suele ser una prctica muy habitual. Cada vez queempezamos un nuevo proyecto modificamos la librera y laadaptamos a la necesidad del momento

    Pero: qu ocurre cuando debemos modificar y re-compilar un proyecto hecho con anterioridad? Si los pines

    utilizados en el proyecto anterior y el actual coinciden, notendremos problema alguno. Sin embargo, es frecuente queno coincidan los pines asignados al LCD del antiguo proyec-to con los del actual. Por lo que si compilamos un proyectoantiguo, es muy probable que no funcione correctamente.

    La solucin comn al problema anterior, es teneranotado en algn lugar la asignacin de pines para cadaproyecto y modificar la librera antes de compilar cadauno. Como se pude ver, es un proceso tedioso que exigeun alto grado de orden para mantener la funcionalidad de

    nuestros proyectos.

    .El mtodo de la copia

    Una alternativa que puede solu-cionar el problema anterior, es tener unacopia de la librera en el directorio de cadaproyecto. Luego modificamos la copia, paraajustarla a la configuracin segn sea elcaso. Esto permite que podamos compilarcada proyecto una y otra vez, sin necesidad

    de modificar la librera, ya que cada proyecto tiene unacopia adaptada segn sus necesidades.

    Es una solucin tambin bastante habitual, pero noidnea; qu ocurre si necesitamos modificar la librera por-que tenemos una nueva versin de la misma? Tendremosque ir buscando por el laberinto de directorios de proyectoscada copia de la librera vieja y sustituirla por la nueva.

    Se puede argumentar que hoy en da con la veloci-dad de proceso y las herramientas de bsqueda de las PC,este trabajo no ser en extremo tedioso. Pero aunque lo-

    grsemos encontrar y sustituir todas las copias en un cortoespacio de tiempo, tendremos otro problema aadido, y esque cada copia de la librera est personalizada para suproyecto. La situacin anterior nos obliga a reconfigurar lanueva versin de la copia, de acuerdo a la configuracin

    Estas directivas son

    una herramienta muy

    poderosa para crear

    variables, reservar

    memoria, etc.

    //pgina 0x0B

  • 8/14/2019 Descarga Gratuita

    13/52pgina 0x0C

    de cada proyecto, trabajo que hicimos la primera vez quecopiamos la librera hacia el directorio del proyecto.

    .Utilizando las directivasdel pre-procesador

    Esta es la forma correcta y eficaz de hacerlo. Este

    mtodo es el que adoptaremos y nos permitir manejar laslibreras sin sufrir dolores de cabeza. Consiste en definirla asignacin de pines, en algn lugar fuera de la librera,bien en fichero aparte, o bien en el programa principal delproyecto. Cmo podemos modificar la asignacin de pi-nes fuera de la librera? La forma de hacerlo es utilizandolas directivas del pre-procesador.

    Las directivas del pre-procesador son un conjun-to de instrucciones que se utilizan para indicarle al com-pilador, que debe hacer, ante determinadas situaciones.

    Aunque generalmente muchos programadores descono-cen su utilidad con profundidad, estas directivas son unaherramienta muy poderosa para crear variables, reservarmemoria, definir constantes, utilizar macros e incluso indi-carle al compilador que secciones de cdigo debe compi-lar y enlazar. En nuestro caso, utilizaremos las directivasdel pre-procesador #ifndef #endif.

    Cuando el pre-procesador se topa con la directiva#ifndef, comprueba si ya existe el identificador , si ste no existiese, entonces creauno con ese nombre, lo agrega a su lista

    de identificadores y procesa el cdigo ubi-cado entre #ifndef y #endif, en caso queel identificador exista, se ig-nora todo el cdigo ubicado en el cuerpo dela llamada a la directiva.

    La tcnica descrita anteriormen-te es precisamente la que vamos a utilizarpara gestionar de manera eficiente, el uso de nuestraslibreras. Al revisar la seccin de Flex_LCD, donde seasignan los pines al microcontrolador, nos topamos con elsiguiente cdigo:

    Ahora simplemente metemos esta seccin de c-digo en el cuerpo de una llamada a #ifndef con nombrede identificador_FLEX_LCD, el cdigo resultante quedar

    de la siguiente forma:

    Si no definimos nada en el programa principal oen su fichero de cabecera, el pre-procesador asignar a la

    LCD los pines segn el cdigo de la librera Flex_LCD. Siqueremos modificar la asignacin de pines para nuestroproyecto, escribiremos en el fichero principal de nuestroproyecto, o en su fichero de cabecera, el siguiente frag-mento de cdigo:

    Esto hace que se asignen los pines del micro-controlador a la LCD tal y como se especifica en nuestroprograma principal y que la definicin de la librera seaignorada. Como puede verse, la librera ha sufrido un pe-queo cambio que nos ayudar a mantener gestionadosu uso y nos facilitar la vida a partir de este momento.

    Es muy importante que esta asignacin sehaga antes de incluir la librera (#include

    Flex_LCD.c), ya que de no hacerlo as, elpre-procesador asignar los pines segn ladefinicin que se hace dentro de la libreray se producir un conflicto con la definicinrealizada en el programa principal.

    Con este mtodo, solo tendremos unalibrera para todos nuestros proyectos y la

    personalizacin se realizar dentro de cada proyecto; sinque por ello tengamos que hacer copias o modificar el fi-chero original. Adems, la librera estar perfectamentelocalizable dentro de su directorio, por lo que si obtuvise-mos una nueva versin, bastar con actualizar y modificaruna sola copia.

    Otra razn para utilizar esta forma de proceder,es la posibilidad de reconocer la dependencia entre losdistintos archivos de nuestros proyectos o entre distintaslibreras. Por ejemplo, si creamos una librera que utiliceel display como salida, podremos escribir en el cdigo denuestra librera:

    De esta forma enviamos un mensaje de error paraavisar que es preciso incluir una o varias libreras.

    .programacin

    Estas directivas son

    una herramienta muy

    poderosa para crear

    variables, reservar

    memoria, etc.

    #define LCD_DB4 PIN_B4#define LCD_DB5 PIN_B5#define LCD_DB6 PIN_B6#define LCD_DB7 PIN_B7#define LCD_RS PIN_C0#define LCD_RW PIN_C1#define LCD_E PIN_C2

    #define _FLEX_LCD#define LCD_DB4 PIN_B4#define LCD_DB5 PIN_B5#define LCD_DB6 PIN_B6

    #define LCD_DB7 PIN_B7#define LCD_RS PIN_C0#define LCD_RW PIN_C1#define LCD_E PIN_C2

    #endif

    #define _FLEX_LCD#define LCD_DB4 PIN_C4#define LCD_DB5 PIN_C5#define LCD_DB6 PIN_C6#define LCD_DB7 PIN_C7#define LCD_RS PIN_A0#define LCD_RW PIN_A1#define LCD_E PIN_A2#include Flex_LCD.c

    #ifndef _FLEX_LCD

    #error Es necesario incluir la librera Flex_LCD

    #endif

  • 8/14/2019 Descarga Gratuita

    14/52

    .caja de herramientas

    pgina 0x0D

    //Ariel Palazzesi//[email protected]

    simulador de circuitos digitales

    El nombre completo del software que vamos a analizar hoy es Simulador de Con-

    struccin de Circuitos Digitales con Escenarios Virtuales y Tutoriales Interactivos.

    Como su nombre lo indica, es un programa que nos permite construir y evaluar

    circuitos digitales utilizando para ello un mdulo digital virtual.

    Todos los que alguna vez hemos diseado uncircuito digital sabemos de lo importante que es con-

    tar con una herramienta que nos permita llevar a cabo

    una simulacin del funcionamiento del circuito en queestamos trabajando. Estas herramientas suelen ser

    bastante caras, y muchas veces el hobbysta o aficio-

    nado a la electrnica no tiene acceso a ellas. Afortu-

    nadamente, existe el Simulador de Construccin de

    Circuitos Digitales con Escenarios Virtuales y Tutoria-

    les Interactivos (el Simulador, de aqu en adelante),

    que es completamente gratis y no tiene nada que en-

    vidiarle a muchas de las herramientas de pago.

    Este programa ha sido desarrollado por ArturoJavier Miguel De Priego Paz Soldn, Ingeniero Electr-

    nico de la Pontificia Universidad Catlica del Per. Laversin que evaluaremos es la 0.94, la ltima disponi-

    ble al momento de escribir este articulo. El programa

    corre bajo Windows, y necesita de una resolucin de

    pantalla de por lo menos 1024 x 768 pxeles.

    .El programa

    El software permite construir y simular circui-tos digitales, a partir de modelos lgicos de circui-tos integrados estndares (de la familia TTL LS)y de aplicacin especfica (conocidos como ASIC).Los circuitos que construye el usuario pueden sersimulados directamente sobre el mdulo digital queprovee el programa o, en algunos casos, ser valida-dos sobre los Escenarios Virtuales. Estos escena-rios representan el entorno en el que los circuitosoperarn. Por supuesto, los esquemas construidospueden ser almacenados, recuperados y editados.

    El programa tambin provee una serie deTutoriales Interactivos, que se encargan de ilustrar-

    nos sobre el funcionamiento de algunos circuitoslgicos tpicos. Muchos de ellos incluyen descripcio-nes VHDL. Segn nos cuenta Arturo, el software hasido diseado para ser empleado como una herra-mienta de enseanza y aprendizaje del diseo digi-

    tal, y actualmente est orientado a los cursos bsicos ode introduccin a los circuitos digitales, tanto en el nivelescolar como universitario.

    Entre los puntos sobresalientes de este programa,podemos destacar el gran nmero de modelos de circuitosintegrados TTL que el autor ha incluido (y sigue incluyen-do). La posibilidad de almacenar y recuperar nuestros pro-yectos permite la verificacin y reutilizacin de los mismos,tanto en la enseanza como en el aprendizaje del diseodigital. La existencia de los tutoriales, que se muestran a laderecha del mdulo digital permite validar rpidamente elconocimiento adquirido. Los escenarios, aunque pocos porahora (el programa se encuentra en permanente desarro-llo), nos brindan una mejor perspectiva y facilitan una mejor

    primera especificacin del diseo lgico.La inclusin de mdulos ASIC simplifican los dise-

    os, a la vez que ahorran espacio en el protoboard virtual.El usuario puede crear nuevos modelos de ASIC, a partirde descripciones VHDL o programas C++.

    El autor comenta que todava resta trabajo por ha-cer, para que el producto sea aun ms flexible. Por ejem-plo, no es posible por ahora que el usuario disee nuevosmodelos de circuitos integrados TTL para agregarlo a la

    Epgrafe: Pantalla principal del programa, mostrando el Mdulo Digital.

  • 8/14/2019 Descarga Gratuita

    15/52

    biblioteca del programa. Esto ser subsana-do en las prximas versiones, las que permi-tirn usar VHDL tambin para esta tarea.

    Tampoco se han considerado losefectos elctricos (retardos en la propaga-cin de las seales, abanicos de entrada ysalida, ruido, etc.), y los chips modelados no

    cuentan con pines de tres estados ni bidirec-cionales.

    Esto no representa una limitacin de-masiado grabe. El simulador, tal como se en-cuentra en la actualidad, es perfectamenteoperativo y cumple a la perfeccin su misineducativa. Cuenta con cuatro modelos de ASICsy casi 100 integrados TTL listos para usar.

    .El Mdulo Digital

    De alguna manera, este es el cora-zn del programa. Sobre el, el usuario va desplegan-do los componentes y conexiones que conforman suproyecto. Esta compuesto por una tarjeta para alam-brar circuitos (tambin conocida como protoboardo breadboard), 18 LEDs, 3 visualizadores de sietesegmentos, generadores de reloj, entradas digitales(12 interruptores y 4 pulsadores), bornes de alimen-tacin (VCC y GND), una bornera de expansin de18 lneas (a la que se conectan los escenarios vir-

    tuales) y un interruptor principal para el encendido yapagado del sistema

    Para montar un circuito, simplemente vamosseleccionando los chips necesrios desde un men(que los agrupa por categoras) y los insertamossobre el protoboard. Las conexiones entre ellos sedibujan trazando lneas con el ratn. De ser necesa-rio, tanto los cables como los chips pueden retirarsesimplemente pulsando con el botn derecho sobreel chip en cuestin o sobre uno de los extremos delcable a remover.

    .Escenarios y tutoriales

    Como decamos, el programa proporcionaescenarios sobre los que probar nuestros circuitos.Estos pueden elegirse e insertarse desde un men.Cuando el interruptor principal se encuentra en laposicin de apagado, el escenario trabaja en modoindependiente, siguiendo un comportamiento predefi-nido. En este modo el usuario puede observar cmo

    debe interactuar el circuito con el medio ambiente vir-tual. Cuando el interruptor se enciende, el escenariose controla mediante las seales que provienen des-de el Mdulo Digital

    Los tutoriales nos muestran los aspectos b-

    Ejemplo del tutorial correspondiente a la puerta AND

    Circuito de prueba, basado en un contador con puertas lgicas simples.

    Decodificador binario y displays de siete segmentos.

    .caja de herramientas

    pgina 0x0E

  • 8/14/2019 Descarga Gratuita

    16/52

    sicos de algunos temas relacionados con la electrnica di-gital. En muchos casos podemos ver la descripcin VHDLcorrespondiente. Los hay enfocados al funcionamientode las puertas bsicas, descodificadores, multiplexores,sumadores, comparadores, latches y flipflops.

    Contador BCD con habilitacin de cuenta ascendente/descendente, de 0 a 999.

    Escenario de un cruce de avenida con calle de bajo trnsito.

    Referencias:El programa puede ser descargado desde SimuladorDigital_094.zip

    Una gua preliminar est en GuiaPreliminar_094.zip

    Ejemplos de algunos circuitos estn en EjemplosDeCircuitos_094.zip

    Correo electrnico: [email protected]

    Pgina WEB: www.geocities.com/tourdigital

    pgina 0x0F

  • 8/14/2019 Descarga Gratuita

    17/52

  • 8/14/2019 Descarga Gratuita

    18/52

    .nota de tapa

    //pgina 0x10

    //Ariel Palazzesi//[email protected]

    el relojito

    En esta segunda entrega analizaremos a fondo las rutinas necesarias para la progra-

    macin de nuestro reloj. Utilizaremos los lenguajes PIC BASIC y CCS, lo que permiti-

    r a una gran cantidad de lectores comprender el funcionamiento de este proyecto.

    segunda parte

    En el nmero anterior de la revista vimos

    como desarrollar el hardware necesario para la cons-

    truccin de un completo reloj digital, que adems de

    la hora, era capaz de mostrar la temperatura ambiente

    gracias a la inclusin de un sensor de temperatura Da-

    llas DS1820. Tambin se inclua un RTC (Real Time

    Clock, o Reloj de Tiempo Real) DS1307, encargado

    de proporcionar al PIC16F628A la necesaria y precisa

    referencia temporal. Un grupo de 60 diodos LED, indi-

    cando cada uno de los segundos, dotaban al proyecto

    de un atractivo especial.

    A partir de este numero, comenzaremos a

    ver como sacar provecho de este diseo, explican-

    do cada una de las rutinas necesarias para transfor-

    mar ese montn de hardware en algo til. Escribi-

    remos el software desde cero, explicando cada uno

    de los pasos a seguir, de forma que todos puedan

    comprender a fondo cada una de las rutinas, y as

    ser capaces de modificarlas a gusto. Hemos decidi-

    do presentar versiones en PIC BASIC y CCS de cada

    trozo de cdigo, como una manera de llegar a un

    mayor numero de lectores.

    En el nmero anterior de uControl vimos comodesarrollar el hardware necesario para la construccinde un completo reloj digital, que adems de la hora, eracapaz de mostrar la temperatura ambiente gracias a lainclusin de un sensor de temperatura Dallas DS1820.

    Tambin se inclua un RTC (Real Time Clock, o Relojde Tiempo Real) DS1307, encargado de proporcionar alPIC16F628A la necesaria y precisa referencia temporal.Un grupo de 60 diodos LED, indicando cada uno de lossegundos, dotaban al proyecto de un atractivo especial.

    A partir de este nmero, comenzaremos a vercomo sacar provecho de este diseo, explicando cadauna de las rutinas necesarias para transformar ese mon-tn de hardware en algo til. Escribiremos el software des-de cero, explicando cada uno de los pasos a seguir, de

    forma que todos puedan comprender a fondo cada una delas rutinas, y as ser capaces de modificarlas a gusto. He-mos decidido presentar versiones en PIC BASIC y CCSde cada trozo de cdigo, como una manera de llegar a unmayor numero de lectores.

    .Conguracin de los pines de E/S

    El primer paso antes de comenzar a utilizar lospines de entrada o salida, es configurar correctamente sufuncin. Este es un paso muy simple, y que no requiere dedemasiadas explicaciones. Los comentarios incluidos enel cdigo fuente sern suficientes para entender que hacecada lnea de programa.

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

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

    Configuro el PORTA:TRISA.0 = 0 DATA SegunderoTRISA.1 = 0 CLOCK SegunderoTRISA.2 = 0 DATA HH:MMTRISA.3 = 0 CLOCK HH:MMTRISA.4 = 0 SalidaTRISA.5 = 0 DS1820

  • 8/14/2019 Descarga Gratuita

    19/52

    .nota de tapa

    //pgina 0x11

    Ahora, vemos como hacer la misma tarea en CCS:

    Una vez listo este tramite, pasemos a las rutinaspropiamente dichas.

    .Escribiendo los segundos.

    La caracterstica ms sobresaliente de este reloj

    es su segundero. Compuesto por 60 LEDs ubicados sobrela circunferencia del reloj, se controlan mediante solo dospines del microcontrolador. Esto es posible gracias a lautilizacin de un registro de desplazamiento.

    Como ya hemos visto, este tipo de registro incor-pora los datos presentes en su entrada con cada pulso dereloj que se aplica a su terminal CLOCK.Debemos respetar los tiempos de respuesta de los circui-tos integrados que conforman los registros de desplaza-miento. En este caso, el 74HC164N que henos utilizadopuede funcionar a una frecuencia mas elevada que los 4MHz (o el MIP) a los que funciona el 16F628A, por lo queno sern necesarios los tiempos de espera entre el envide un dato y el siguiente.

    Los pines implicados en el control de los LEDs delsegundero son los correspondientes a PORTA.0 (o RA0,pin 17) y PORTA.1 (o RA1, pin 18), para las funciones deDATA y CLOCK respectivamente. Como no es el nicoregistro de desplazamiento presente en el proyecto, nosreferiremos a estas seales como DATA2 y CLOCK2.

    Concretamente, el dato presente en la entrada del

    registro de desplazamiento se hace presente en la primerade sus salidas (empujando a los dems una posicin haciadelante) cuando el pin CLOCK pasa de estado bajo a estadoalto. Esto quiere decir que deberemos seguir el siguiente or-den para cada bit que queramos enviar al registro:

    Cada_74HC164N_se_encarga_de_8_LEDs.JPG

    Configuro el PORTB:TRISB.0 = 1 Entrada pulsos del DS1307TRISB.1 = 0 Salida, LEDs : en displayHH:MMTRISB.2 = 0 pin SCA del DS1307TRISB.3 = 0 pin SCL del DS1307

    TRISB.4 = 1 Entrada Pulsador 1TRISB.5 = 1 Entrada Pulsador 2TRISB.6 = 1 Entrada Pulsador 3TRISB.7 = 1 Entrada Pulsador 4

    Inicializacin de puertos en PIC BASIC.

    Inicializacin de puertos en CCS

    //Device/Fuses/Etc.---------------------------#INCLUDE //Usamos un 16F628A#FUSES NOWDT //No Watch Dog Timer#FUSES XT //Con oscilador a

    cristal...#use delay(clock=4000000) //..de 4MHz.#FUSES NOPUT //No Power Up Timer#FUSES NOPROTECT //No protegemos el cdigo.#FUSES NOBROWNOUT //No Brownout Reset#FUSES NOLVP //No low voltage prgming#FUSES NOCPD //No EE protection

    //Declaramos la posicin de los puertos-------#BYTE PORTA = 0x05#BYTE PORTB = 0x06#BYTE PORTA_TRIS = 0x85#BYTE PORTB_TRIS = 0x86

    //Y asignamos cada pin como E/S segn corresponda:PORTA_TRIS = 0b00000000; //1=ENTRADA, 0=SALIDAPORTB_TRIS = 0b11110001; //1=ENTRADA, 0=SALIDA

  • 8/14/2019 Descarga Gratuita

    20/52

    .nota de tapa

    //pgina 0x12

    1)Poner el dato a enviar en el pin DATA2 (PORTA.0)

    2)Poner CLOCK2 (PORTA.1) en estado bajo.

    3)Poner CLOCK2 (PORTA.1) en estado alto.

    Como se ve, es algo muy sencillo de implementar.Veamos como hacerlo en PIC BASIC:

    La subrutina supone que antes de llamarla hemosdeclarado las variables (usando DIM) y las macros (me-diante SYMBOL) necesarias:

    Veamos la forma de hacer esto en CCS.

    En CCS, para hacer uso de la funcin escribo_segundo, basta con invocarla desde el programa princi-

    pal, de la siguiente manera:

    Donde valor ser 0 o 1 dependiendo si que-remos apagar o encender el LED correspondiente a la pri-mera posicin del registro de desplazamiento.

    .Haciendo limpieza

    Antes de comenzar a enviar datos tiles al regis-tro de desplazamiento, conviene limpiar el contenido desus 60 bits, dado que al alimentar El Relojitopueden con-tener informacin aleatoria, que en la practica se verancomo una serie de LEDs encendidos. Si no lo hiciramos,cada dato que enviemos al registro empujara a los bit-basura una posicin hacia delante, algo que no quedarademasiado bien.

    La forma de evitar esto es bien simple: ni bien co-mienza nuestro programa, debemos escribir 60 ceros enel registro de desplazamiento, asegurndonos que todoslos LEDs se encuentran apagados.

    Dado que puede se trata de una accin que puederequerirse mas de una vez en nuestro programa, tambinla vamos a implementar como una subrutina (en PIC BA-SIC) o como una funcin (en CCS). Dado que ya tenemosel codito necesario para escribir un valor en el registro dedesplazamiento, la nueva rutina/funcin solo deber en-cargarse de llamar 60 veces seguidas a la que vimos

    antes, con el valor 0.Veamos como hacerlo en PIC BASIC:

    Y ahora, lo mismo pero en CCS:

    Esto es todo lo que necesitamos saber para ma-nejar correctamente los 60 LEDs del relojito.

    escribo_segundo:

    data1 = bit_aux Pongo el valor en DATAclock1 = 0 Pongo el CLOCK en bajo...clock1 = 1 ...y de nuevo en alto. Listo!

    Return

    Esta rutina enva el valor de la variablebit_aux al registro de desplazamiento.

    ------DECLARO VARIABLES y MACROS--------------

    Dim bit_aux As Bit Declaro la variable auxiliarSymbol data1 = PORTA.0 Nos referimos a PORTA.0como data1Symbol clock1 = PORTA.1 Nos referimos a PORTA.1como clock1

    Declaracin de variables y macros necesaria antes dellamar a la subrutina escribo_segundo.

    //Declaramos la Variable:int1 bit_aux; //Declaro la variableauxiliar

    //--------------------------------------------//---Envia un DATO al registro de desplazamiento://--------------------------------------------void escribo_segundo(int1){

    if (bit_aux) {output_high(DATA2);} //Si es1, lo escribo en DATA2.

    if (!bit_aux) {output_low(DATA2);} //Si es0, lo escribo en DATA2.

    output_low(CLOCK2); //Pongo el CLOCK enbajo...

    output_high(CLOCK2); //...y de nuevo enalto. Listo!}

    main(){//Asignamos cada pin como E/S segn corres-

    ponda:PORTA_TRIS = 0b00000000; //1=ENTRADA,

    0=SALIDAPORTB_TRIS = 0b11110001; //1=ENTRADA,

    0=SALIDA}

    escribo_segundo (valor);

    borro_segundero:bit_aux = 0 Asigno el valor a enviar a

    la variable auxiliar...For i = 0 To 59 i ir de 0 a 59, de 1 en 1.

    Gosub escribo_segundo envo bit_auxal registro

    Next iReturn

    Cdigo BASIC de la subrutina borro_segundero.

    void borro_segundero(void){int i;for (i=0;i

  • 8/14/2019 Descarga Gratuita

    21/52

  • 8/14/2019 Descarga Gratuita

    22/52

    Justamente es esa la lnea principal dentro denuestro programa. Como ya habrs deducido, la instruc-cin PORTB.0 = PORTA.0 hace que el valor del bit 0 delPORTB tome el valor del bit 0 del PORTA. Que ambosbits sean el cero es solo una coincidencia, se podran ha-ber elegido otros valores.

    Al ejecutarse el programa, cada vez que se accio-

    ne el pulsador conectado a PORTA.0 (SW2, en el diagra-ma), ese pin se pondr a estado alto, ya que la corrientecirculara desde +V al pin 17 del PIC a travs suyo. Eseestado alto se interpreta dentro del PIC como un 1, yes el valor que se le asigna a PORTB.0, con lo que eltambin pasara a estado alto. Eso provocara que el LEDconectado en ese pin se ilumine.

    Cuando soltamos el pulsador, PORTA.0 vuelve aestado bajo, ya que se pone a masa a travs del resistorde 10K (R2 en el diagrama), y PORTB.0 har lo propio,

    apagando el LED. Todo lo que hace nuestro sencillo pro-grama es copiar en el LED el estado del pulsador.Vamos a simularlo en el PIC SIMULATOR IDE,

    que para eso lo hemos comprado. Lo primero es abrir laventana del compilador BASIC, y copiar en ella el cdigode ms arriba. Debera quedar ms o menos como vemosen la figura 2. Luego, lo compilamos y cargamos en elemulador presionando la tecla F9.

    PIC SIMULATOR IDE transformar nuestro cdi-go BASIC en un archivo HEX listo para grabar en un PICreal o para ser simulado. Aparecer el cuadro de dialogo

    que nos informa que no han ocurrido errores y que el ta-mao del programa es de 20 words.Si volvemos a la ventana principal del PIC SIMU-

    LATOR IDE, y desde Tools -> Microcontroller Viewabrimos la vista del microcontrolador, al darle Start a la

    simulacin tendremos algo parecido a lo que muestra lafigura 3: el pin 6, correspondiente a RB0 est en OFFporque el pulsador del pin 17 (RA0) est en OFF. Si conel mouse hacemos un clic sobre la T que est al lado delpin 17, la vista del microcontrolador pasar al estado quemuestra la figura 4.

    Recordemos que el botn T significa cambio(Toggle) por lo que el estado del pin 17 permanecer enalto hasta que lo pulsemos otra vez, y el estado del mi-crocontrolador volver a ser el inicial. Como en cualquiercurso, conviene realizar estas prcticas, que aunque pue-dan parecer muy sencillas nos ayudaran a conocer las he-rramientas disponibles y tomar confianza al programa.Tambin es interesante el realizar cambios en el progra-ma BASIC, recompilar y analizar los resultados. En la prxima entrega comenzaremos a ver lasestructuras de control de flujo del programa que dispone

    PIC BASIC. Estas nos permitirn encarar programas ms

    tiles y complejos.

    .tutorial

    //pgina 0x14

    Figura 2: Este es el esquema que utilizamos para nuestros ejemplos

    Figura 3: Pulsador abierto, LED apagado.

    Figura 4: Pulsador cerrado, LED encendido.

  • 8/14/2019 Descarga Gratuita

    23/52

    Entre los cables ms populares que encontramosen el mercado estn el RG-58, de 50

    Ohms de impedancia caracterstica, y elRG-59, de 75 Ohms. Este ltimo se hapopularizado gracias a su uso en insta-laciones de TV. El anterior, en cambio,se lo conoce ms por su amplio uso enel mbito de las telecomunicaciones yes del cul encontraremos mayor varie-dad de calidades constructivas.ste es un punto muy importante a te-

    ner en cuenta al momento de seleccionar el modelo decable a utilizar, ya que los coaxiles poseen una caracters-tica nociva para nuestros propsitos, que es la de atenuarlas seales de radiofrecuencia que lo atraviesen. Esta ate-nuacin es directamente proporcional a la frecuencia detrabajo y a la longitud del cable mismo. Dicho en palabrassimples: A mayor frecuencia, mayor atenuacin.

    Las frecuencias libres de uso asignadas dentrodel Espectro Radioelctrico, y por lo tanto ideales paranuestros propsitos, son las consideradas altas y se en-cuentran en la banda conocida cmo UHF y Microondas.Estas frecuencias son 305 MHz., 418 MHz., 433 MHz. y

    2,4 GHz., por mencionar algunas.Existen otras, en otras bandas, cmo 27 MHz. Y72 MHz., pero se encuentran en desuso en la actualidad,en gran parte gracias a que los pequeos mdulos deUHF, han venido a resolver muchos de los problemas y

    //pgina 0x15

    .informacin tcnica

    hablemos deantenas

    Cuando pensamos en controlar un dispositivo a distancia a travs de RF, nos en-contramos con la difcil eleccin de la antena apropiada y la posterior construccin

    de la misma. Veamos cmo develar sta ciencia oculta.

    //Mario Sacco//[email protected]

    Cada vez que intentamos controlar un dispo-

    sitivo de forma remota, mediante ondas de radio, bus-

    camos cumplir con la ley fundamental que rige las co-

    municaciones: Llegar con nuestra seal, lo ms lejos

    posible.Muchos de stos intentos de maximizar la distancia

    til y efectiva de nuestro control, han finalizado con resulta-dos nefastos. Esto es especialmente cierto en el hobby delos aviones radiocontrolados, por mencionar algn ejemplo,ya que no siempre el dispositivo remoto se quedar quieto se detendr sin ocasionar daos as mismo a terceros.Muy por el contrario, pueden llegar a actuar de forma tanimpredecible, que nos arruinara el trabajo e ilusin de me-ses, en un instante.

    Por lo tanto ser muy til apren-der las sencillas y elementales tcnicasde construccin de antenas, para aspoder manejar los robots sistemasinteligentes que construyamos, muchoms all de lo que nuestro elemental juego de mdulos de RF nos permitanpor s solos.

    A medida que vayamos leyendosobre el tema, iremos aclarando ciertos conceptos y nom-bres tcnicamente correctos, que usaremos a lo largo delas explicaciones para no slo aprender de antenas, sinotambin referirnos a ellas y su entorno de forma apropia-da.

    Podemos definir que un Receptor (en adelan-te Rx), podr recibir seales desde un Transmisor (enadelante Tx), el que estar apropiadamente conectado,mediante una Lnea de Transmisin, a una Antena. Estadeber ser instalada a la mayor altura posible.

    Lgicamente si es necesario, nuestro Rx tambinestar conectado a una Antena para optimizar los alcan-

    ces del enlace radioelctrico.Tal cmo habamos mencionado, el medio que unirnuestro equipo (sea Rx Tx) con la Antena, ser una Lneade Transmisin, que por su simpleza de uso y fcil adquisi-cin, construiremos utilizando Cable Coaxil o Coaxial.

    El coaxil utilizado en larealizacin de la antena

    posee una atenuacin a

    las seales de radio que es

    proporcional a la longitud

    del mismo

    El conductor central y la malla trenzada exterior sern el nexo con nuestro equipo.

  • 8/14/2019 Descarga Gratuita

    24/52//pgina 0x16

    .informacin tcnica

    limitaciones que se planteaban al momento de pensar enun enlace va radio.

    Un cable RG-59 de buena calidad, nos proporcio-nar menor atenuacin que un cable RG-58 comn, ade-ms de ser ms econmico, por lo que para nuestros finesy mientras manejemos bajas potencias (valores menoresa 1 Watt), ser una eleccin acertada, obteniendo un buen

    equilibrio Precio/Performance.

    .Ahora s, Las Antenas

    Existen tres modelos prcticos de antenas, reali-zables de forma sencilla en no ms de un par de horas,que enumerarlas de la siguiente forma:

    - Vertical de de Onda

    - Dipolo deOnda

    - Direccional Yagi

    La ms sencilla de construir, y porlo tanto la primera que desarrollaremos, esla Antena Vertical de de Onda, tambinconocida cmo Ground-Plane o con el sim-ptico nombre de paragitas, en alusinal formato que le dan los planos de tierra.

    En su nombre encontramos resumida la arquitec-tura constructiva de sta antena: un Elemento Irradiante,en posicin vertical, conectado al conductor central de la

    Lnea de Transmisin, y un segundo elemento conforma-do por un Plano de Tierra, donde ir conectada la mallaexterior de nuestro coaxil.

    El anlisis de las imgenes de la figura anterior

    nos revela muchos aspectos de sta sencilla, pero alta-mente efectiva, antena.

    Una primera observacin nos muestra que, por laposicin vertical del Elemento Irradiante, la radiacin deenerga se dar en forma Omnidireccional, es decir, nuestraseal transmitida saldr de la antena y viajar en todas lasdirecciones por igual, cubriendo los 360 a su alrededor.

    La segunda apreciacin nos dice que la seal es-tar Polarizada en forma vertical, lo que significa que laotra antena que se enlazar con sta deber poseer lamisma Polarizacin, ya que si no coincide con ella, la se-al sufrir una importante atenuacin.

    Un Elemento Irradiante montado en forma parale-la al suelo trabaja polarizado en forma horizontal, mientras

    que si est montado en forma vertical trabaja, como esobvio, polarizado en sentido vertical.

    Este concepto parece superfluo ahora, paro ten-dr una gran importancia cuando realicemos un enlaceFull-Duplex.

    Otro detalle no menor es la posicin que otorgue-mos respecto a la vertical al plano de tierra de nuestraantena. Distintos ngulos de inclinacin de este plano nos

    proveern distintos valores de Impedan-cia de la antena.

    Por simple deduccin podemos entoncesdecir que cuanto ms se aproximen entres los valores de impedancia de nuestraantena con el correspondiente al coaxilseleccionado, mejor acoplamiento obten-dremos entre ambos dispositivos y mayorser la energa transmitida hacia la ante-na. Es decir, menores sern las desadap-

    taciones que impedirn la llegada de nuestra seal a laantena. Esto es muy importante que lo tengamos claropara cualquier tipo de antena que intentemos construir.

    Las dimensiones de los Elementos que formannuestra antena, la forma mecnica de su construccin y elmedio circundante para el emplazamiento elegido, regirnel valor final obtenido de la Impedancia de nuestra antena.Una antena ubicada a ras del suelo y rodeada de edificios,no tendr el mismo rendimiento que si la emplazramosen una elevacin libre de obstculos y con un enlace vi-sual con su compaera Rx / Tx

    .El enemigo acecha y se llama R.O.E.

    Una antena desadaptada respecto del cablecoaxil que la enlaza al equipo, una mala construccin me-cnica, las deficiencias provocadas por el paso del tiempoy el clima, el envejecimiento de los materiales y muchosotros factores sern los que al cabo del tiempo, irn dete-riorando nuestro sistema de antena. Este hecho se repre-sentar como una variacin de la impedancia caractersti-ca del sistema conectado al equipo.

    En estos casos, una parte proporcional de la ener-ga que entregamos a nuestra antena para que sta se

    encargue de irradiarla al espacio, ser devuelta al trans-misor, ya que nuestro sistema no irradiar al 100% debidoa los posibles defectos mencionados.

    Tcnica hablando podemos decir que cuando unaparte de la Potencia Incidente, que estamos enviando a

    Vista terica de la misma antena vertical con dos planos de tierra de diferentes formas.

    ROE ( SWR, por

    Standing Wave Ratioen Ingls), es la rela-

    cin que existe entre

    las Potencias Incidente

    y Reflejada

  • 8/14/2019 Descarga Gratuita

    25/52//pgina 0x17

    nuestra antena retorna al equipo como Potencia Reflejada,estamos siendo presas de lo que se conoce como Relacinde Ondas Estacionarias, comnmente llamada ROE.

    ROE ( SWR, por Standing Wave Ratio en In-gls), es la relacin que existe entre las Potencias Inci-dente y Reflejada y su valor est regido por frmulas ma-temticas y conceptos mecnicos que sera innecesario

    explicar ahora, aunque s es bueno saber de la existenciade ste fenmeno.

    Foto: Reflejada.GifEpgrafe:

    Cuando los valores de ROE son altos corremosun serio riesgo de destruir la etapa de potencia de salidade nuestro transmisor, ya que el mismo est pensado ypreparado para entregar energa y no para recibirla.

    Comprendamos entonces cun importante es leer

    muy bien la hoja de datos del fabricante de nuestro Txy Rx, para conocer las Impedancias caractersticas queellos nos recomiendan utilizar a la salida de los mdulos,y as obtener el mximo beneficio de ellos.

    .Manos a la Obra

    Para construir nuestra antena debemos conocer lasmedidas apropiadas que debe tener la misma. Para el caso dela antena vertical de de onda, la formula es la siguiente:

    72/Frecuencia (Mhz.) = H = L (Metros)

    Conociendo sta frmula ya podemos saber las

    dimensiones de los elementos que compondrn la misma.Por ejemplo para un mdulo que transmita recepcioneen una frecuencia de 433,920 Mhz., la frmula resultaraen lo siguiente:

    72/433,920 Mhz. = 0,1659 Metros = 16,59 Centmetros

    O lo que es lo mismo, aproximadamente 6.53 pulgadas.Ahora es el momento de decidir con qu materia-

    les construiremos la misma. Cualquier material metlicopuede sernos til para ste fin. Cobre, hierro, aluminio,zinc, bronce y/o cualquier otro que tenga propiedades

    conductivas y posea la rigidez mecnica suficiente cmopara entregarnos una construccin robusta, firme y dura-dera. Eso siempre quedar a criterio de cada uno de Uds.y lo realizarn con los elementos que posean al momentode la construccin.

    Otra opcin, es seleccionar con antelacin losmateriales y acopiar los mismos de a poco, a los efectos

    de realizarla con materiales seleccionados especialmen-te, cmo por ejemplo, buenos aluminios, buenos soportes,buenos mstiles, etc.

    Un ejemplo de construccin podemos ver en lasiguiente figura:

    Puede observarse en el grfico que a partir de unconector UHF Hembra, conocido como SO239, podemosarmar nuestra antena.

    Los planos a tierra podrn ser soldados a los ori-ficios que posee el conector hembra, que nos servir debase constructiva, y doblados suavemente hacia abajo,dndoles un ngulo a los elementos (planos de tierra) deentre 30 grados (mnimos) hasta 60grados (mximo).

    Al terminal de conexindel conductor central le solda-remos el elemento irradiante (lavarilla que quedar en posi-cin vertical), se la adosa-remos mecnicamente de

    la forma que creamos msconveniente, efectiva y firme.

    La llegada de laseal a transmitir, elenvo al receptor de la

    .informacin tcnica

    La energa que no puede ser irradiada al espacio retornar por elmismo coaxil hacia el Tx, pudiendo deteriorarlo.

    Un poco de aluminio, un juego de conectores apropiados,y nuestra antena estar lista.

    Imagen delConector SO239.

  • 8/14/2019 Descarga Gratuita

    26/52//pgina 0x18

    seal captada, se logra a travs del coaxil que recorre in-ternamente el mstil de plstico o cualquier otro materialaislante, para terminar en un conector PL259 roscado conjusteza a nuestra base original de construccin que es lahembra SO239.

    Una sencilla abrazadera de material inoxidable,concluye la construccin.

    .ConsideracionesFinales

    Una vez finalizada laconstruccin, si hemoscomprendido y seguido

    las instrucciones vertidas en s-tas pginas, estaremos listos para

    conectar nuestra/s antena/s a los mdulos que estarn

    instalados en nuestros sistemas microcontrolador. Lo pri-mero que haremos es tratar de dotar a la instalacin denuestro sistema irradiante (recordemos que se llama deigual forma, sea para Tx, cmo para Rx), de la mayor al-tura posible y alejada de obstculos circundantes que im-pidan la correcta emisin en algn sentido y que puedanafectar la impedancia del sistema provocndonos ROE.

    Un aspecto importante a recordar es que el coaxilutilizado en la realizacin posee una determinada atenua-cin a las seales de radio, la que es proporcional a la lon-gitud del mismo, por lo que para las frecuencias de UHF y

    para los mdulos comerciales de algunos pocos miliWatts

    .informacin tcnica

    de potencia, no podremosabusar de la cantidad demetros que utilicemos.

    Una medida deaproximadamente entre 5y 10 metros nos dar unabuena relacin entre lon-

    gitud/atenuacin de sealy los resultados obtenidossern ms que sorpren-dentes.Siempre querremosllegar ms all.

    Slo nos falta darnos cuenta, dnde y cmo uti-lizaremos sta antena simple pero que nos har ganarmuchos metros en nuestro enlace de mando. Si con losmdulos originales, sin antena, o con algn trozo de cablesencillo logrbamos varias decenas de metros, tengan por

    seguro que con antenas exteriores, esta distancia puedellegar a ser de varias centenas o ms.Esto significa nuevos horizontes en la aplicacin y uso demdulos de UHF, en sistemas enlazados va radio.

    No se pierdan el prximo nmero de Control,donde veremos cmo realizar antenas direccionales deganancias muy altas, para llegar mucho ms lejos an.Que la disfruten.

    Referencias:

    Antenas Yagui: http://es.wikipedia.org/wiki/Antena_Yagi

    ROE: http://www.solred.com.ar/lu6etj/tecnicos/roe/roe.htm

    Imagen delConector PL259.

  • 8/14/2019 Descarga Gratuita

    27/52

    .proyectos//Manuel Jimnez Franco//

    [email protected]

    //pgina 0x19

    receptor para el protocolo DMX512

    El protocolo DMX512 es el estndar por excelencia para el intercambio de

    informacin entre el equipamiento de tecnologas teatrales. De diseo sencillo, fcil

    uso y gran difusin en el mercado de tecnologa para el entretenimiento, DMX512

    lleg para quedarse en cualquier tipo de escenario moderno. En el presente art-

    culo aprenderemos un poco acerca de este protocolo y como construir y utilizar un

    receptor-visualizador DMX512.

    .El protocoloEl protocolo DMX512 naci en 1986 en la USITT

    (Instituto americano de tecnologas teatrales) para

    convertir el sistema de comunicacin entre consolas y

    dimmers en un estndar eficiente. Ha sufrido diversas

    revisiones hasta evolucionar al estndar actual, cono-

    cido oficialmente como Entertainment Technology

    USITT DMX512A Asynchronous Serial Digital

    Data Transmission Standard for Controlling Lighting

    Equipment and Accessories, que fue aprobado por

    ANSI en noviembre de 2004. El actual estndar estambin conocido como E1.11, USITT DMX512A, o

    solo DMX512-A, y es mantenido por la ESTA (The

    Entertainment Services & Technology Association).

    DMX fue originalmente pensado para controla-

    dores de enlace y dimmers de diferentes fabricantes. La

    sencillez de su diseo y la licencia GNU, han provocado

    que en la actualidad sea un estndar, de amplia difusin

    en el mercado, para el control de todo tipo de dispositivos

    de iluminacin, scanners, mquinas de humo, cabezas

    mviles. Prcticamente todos los dispositivos utilizados

    en espectculos incorporan DMX.

    .Nivel Fsico

    El DMX512 es un protocolo de transmisin de da-tos serie que se basa en el estndar internacional EIA

    485 o RS485, ste se emplea en aquellas aplicaciones

    donde se necesita una transmisin serie fiable y simple.

    A diferencia del conocido RS232, RS485 permite cubrir

    distancias superiores y tiene una serie de ventajas que lo

    hacen superior a RS232 para muchas aplicaciones donde

    la distancia y fiabilidad de la comunicacin son requisitos

    importantes.

    La informacin se transmite por una pareja de

    conductores y no mediante un solo conductor. Este tipo de

    canales de transmisin se conoce como: lneas balancea-

    das o diferenciales; su caracterstica es la elevada inmu-

    nidad a los ruidos elctricos y electromagnticos comunes

    (referidos a masa).

    Como las seales que nos interesan son las rela-

    tivas a la informacin de los canales DMX, estas sealesson trasmitidas, ex profeso, de modo diferencial y poste-

    riormente son amplificadas sin aumentar el ruido que se

    presenta, generalmente, de modo comn (con la misma

    polaridad respecto a masa). Los amplificadores diferen-

    ciales utilizados actualmente en RS485 son en realidad

    pequeos circuitos integrados llamados line driver y line

    river. El primero es el emisor que est instalado en la con-

    sola y el segundo es el receptor que estar instalado en

    cada uno de los dispositivos a controlar.

    .Nivel Lgico

    El protocolo DMX512 se basa en la utilizacin de

    canales para transmitir comandos a los dispositivos re-

    ceptores. DMX512 tiene un lmite de 512 canales por uni-

    verso (DMX universe), y cada canal ocupa un byte. Por lo

    que el valor transmitido por canal se puede regular desde

    0 hasta 255: son los valores DMX (DMX values). Cada

    trama DMX512 lleva los 512 bytes correspondientes al dato

    de cada canal, independientemente de que se utilicen o no

    todos los canales. Las mesas profesionales que usan DMXpueden soportar hasta 8 universos DMX y con la tecnologa

    EtherDMX estos pueden ser ampliados an ms.

    En DMX512 se transmiten los datos de modo

    asincrnico, a 250Kbit por segundo. Esto significa que las

    Advertencia:Como DMX512 es un sistema

    de transmisin de datos sin mecanismos para

    el control de errores, no debe ser usado para

    controlar pirotecnia.!

  • 8/14/2019 Descarga Gratuita

    28/52//pgina 0x1A

    seales del transmisor y de los receptores no estn en sin-

    crona, pero los receptores se sincronizan al mando de la

    consola cada vez que sta enva una determinada seal.

    Bsicamente, y aunque luego lo veremos en pro-

    fundidad, la trama DMX completa se compone de una se-

    al de sincronizacin y a continuacin los 512 bytes de in-

    formacin que se corresponden con los 512 valores DMX.

    Los receptores reciben toda la trama, pero procesan slo

    la informacin relativa a los canales para los que estn

    configurados.

    La informacin se transmite siguiendo este diagra-

    ma de tiempos:

    Como se observa, la trama completa tiene varias partes:

    - seal BREAK:es un nivel bajo con un mnimo de 88us

    - marca tras BREAK:nivel alto con un mnimo de 8us

    - byte Start:el byte Start siempre vale 0- tiempo entre bytes:es un nivel alto que puede llegar

    hasta 1 s

    - trama de 512 bytes:aqu aparecen los datos de los 512

    canales

    Cada byte se transmite con:

    - un bit de starta nivel bajo

    - los 8 bits de datos

    - dos bits de stopa nivel alto

    De esta manera, algunas consideraciones de

    tiempo respecto al protocolo son las siguientes:

    - duracin mnima para una trama completa: 22,7ms

    - mxima velocidad de refresco de la informacin: 44 ve-

    ces por segundo

    .Instalaciones DMX

    Topologa

    Con DMX512 se pueden

    alcanzar distancias de comunica-

    cin, entre los extremos del BUS,

    de hasta 500m. Sin embargo estadistancia es para un caso ms o

    menos ideal, pero en la prctica es

    raro encontrar lneas de transmi-

    sin con ms de 100m de longitud.

    Si fuese necesario aumentar las distancias es preciso uti-

    lizar buffers o splitters.

    Habitualmente, los dispositivos DMX tienen una

    entrada y una salida, de manera que es fcil configurar-

    los en cadena, uno tras otro. Es obligatorio colocar en

    los extremos del BUS una resistencia de terminacin de

    120ohm 1/4W, entre los conductores de las seales de

    dato. Olvidar colocar esta resistencia suele ser causa fre-

    cuente de averas en instalaciones DMX o fallas en la co-

    municacin.

    .Cables y conectores

    Los cables habitualmente

    utilizados en DMX son los de par

    trenzado, dado que ofrecen una

    mayor inmunidad al ruido. Como

    hemos comentado antes, ambos

    hilos reciben la misma cantidad deruido y ello permite a los amplifica-

    dores diferenciales eliminarlo para

    quedarse con la informacin vli-

    da.

    Los conectores estndar son los

    XLR, de los que hay dos modelos:

    con 3 o con 5 pines. Antiguamente

    se utilizaban mucho los de 3, pero en la actualidad son

    ms frecuentes los de 5 pines.

    Diagrama de seales y tiempos del protocolo DMX512.

    Topologa de una instalacin DMX512.

    Conectores XLR de 5 pines. stos son los msutilizados en las instalaciones DMX512.

    .proyectos

  • 8/14/2019 Descarga Gratuita

    29/52//pgina 0x1B

    La configuracin de los pines 1 al 3 en un cable de

    3 pines es la misma a la de los pines 1 al 3 en un cable de

    5 pines.

    Un cable de 5 pines est configurado de la si-

    guiente forma:

    Pin 1 = seal de referencia = revestimiento del cable (

    malla o pantalla );

    Pin 2 = seal invertida = - polo negativo;

    Pin 3 = seal = + polo positivo;

    Pin 4 = opcional (la utilizacin de este pin vara de acuer-

    do con el aparato en operacin y los fabricantes nunca

    llegaron a un acuerdo sobre cmo utilizarlo. La intencin

    original era tener realimentacin de los aparatos y esta-

    blecer son estos un enlace bidireccional).

    Pin 5 = opcional (la utilizacin de este pin vara de acuer-

    do con el aparato en operacin y los fabricantes nunca

    llegaron a un acuerdo sobre cmo utilizarlo. La intencin

    original era tener realimentacin de los aparatos y esta-blecer son estos un enlace bidireccional).

    Si bien es cierto que en la industria del entreteni-

    miento el cable del tipo XLR es el cable estndar, en algu-

    nas aplicaciones por motivos prcticos y estticos es muy

    comn la utilizacn de cables del tipo UTP Cat5e (cable

    de red).

    El armazn de los dispositivos nunca se conecta

    al pin 1, la seal de referencia, ya que podra provocarse

    un anillo de masas y afectar el correcto funcionamiento

    del sistema. Sin entrar al tema de los fenmenos causa-

    dos por una equivocada conexin a tierra, de la funda de-fensiva del cable de transmisin de datos, es importante

    decir que una eventual conexin a tierra de este conductor

    se puede realizar en un slo punto de todo el sistema y

    que normalmente este procedimiento se realiza slo en

    las instalaciones fijas.

    De todas maneras, es una buena prctica que los

    equipos dispongan en su entrada DMX

    de optoacopladores que eliminen la po-

    sibilidad de contacto elctrico entre el

    bus DMX y la circuitera del dispositivo.

    La mayora de los equipos profesiona-

    les disponen de aislamiento optoaco-

    plado.

    .Direccin DMX

    Puesto que en el bus DMX via-

    ja la informacin de 512 canales, cada

    dispositivo debe ser configurado para escuchar los que

    necesite. Cuando un dispositivo necesita la utilizacin de

    varios canales, suele configurarse slo la direccin del pri-

    mero de ellos, quedando reservados para dicho dispositi-vo todos los que necesite a partir del primero.

    Lo habitual es que un dispositivo utilice varios ca-

    nales, y se identifique fsicamente con el cdigo del canal

    de inicio. De esta manera, si un cabezal proyector utiliza,

    por ejemplo, 16 canales, y est identificado con el cdigo

    128, automticamente reservar los canales 128 a 143

    para s mismo. Lo nico que hay que tener en cuenta es

    que las direcciones DMX de los aparatos nunca deben

    estar superpuestas.

    .Construyamos un receptor DMX

    El ReceptorDMX que presentamos es de carcter

    puramente experimental, y slo sirve para probar a interp-

    retar el protocolo DMX512 y mostrar en su display el valor

    del canal seleccionado en cada momento.

    Diseo

    El circuito est compuesto por un PIC, como corazn,

    un arreglo de transistores Darlington ULN2003 para las

    lmparas de siete segmentos y un driver MAX485 para el

    bus DMX. Se ha utilizado un PIC 18F2550, pero el soft-

    ware podra compilarse para uno mucho

    ms pequeo porque requiere muy poca

    memoria de programa.

    El PIC almacena en su RAM los

    512 valores de todos los canales DMX, lo

    que le permite absorber la informacin

    de la trama completa. El canal DMX se

    selecciona mediante el teclado matricial.

    Hay otro dispositivo de salida:

    el LED. Ese LED est gestionado por

    PWM y su ciclo til viene dado por el

    dato DMX del canal seleccionado. En este caso, no

    hay esperas: la informacin se muestra en tiempo real

    a la vez que se est escribiendo el canal selecciona-

    do.El conector DMX slo necesita tres seales:

    DMX+, DMX- y GND. Se ha aadido Vdd porque permite

    alimentar algn circuito auxiliar que se pueda conectar al

    bus, aunque no es imprescindible.

    Nuestro receptor DMX512.

    El ReceptorDMX que pre-

    sentamos es de carcter

    puramente experimental,

    y slo sirve para probar

    a interpretar el protocolo

    DMX512

    .proyectos

  • 8/14/2019 Descarga Gratuita

    30/52//pgina 0x1C

    El receptor DMX512 conel teclado y las baterasde alimentacin.

    Uso

    Utilizar el dispositivo es muy fcil. Al encender el

    dispositivo este comienza a capturar todas las tramas que

    le lleguen por el conector DMX. En el display aparece la

    palabra OFF, hasta que el usuario seleccione un canal

    con el teclado matricial.

    A medida que se va pulsando el teclado, el display

    va mostrando el canal seleccionado. Mientras se toca el

    teclado, parpadean los puntos decimales de los displays

    para advertir que estamos viendo el selector de canal, en

    lugar del dato DMX. Al cabo de unos segundos la infor-

    macin aparece en los displays. El valor del canal selec-

    cionado tambin se representa en el led, cuya intensidad

    es regulada mediante PWM.

    Puesto que el dispositivo memoriza toda la trama

    (512 bytes) puede ser desconectado del bus y examinado

    a posteriori como si estuviera fsicamente conectado.

    ConstruccinLa construccin del receptor se basa en este es-

    quema:

    Circuito electrnico del receptor DMX512.

    .proyectos

  • 8/14/2019 Descarga Gratuita

    31/52//pgina 0x1D

    Del cdigo fuente, slo veremos aqu la rutina de

    atencin a la interrupcin de la USART, que es donde

    est el meollo de la cuestin.

    El programa completo est disponible para

    descargar; las explicaciones del cdigo estn en los

    comentarios.

    /************************************************************************* Interrupcin RDA: dato recibido por la USART *

    * Esta interrupcin se activa cada vez que se recibe un dato en la ** USART. Mediante el control de una mquina de estados se determina ** la validez y el significado del dato recibido, y se obra en ** consecuencia. ** Nocturno 2008 www.micropic.es *************************************************************************/#int_rdavoid Dato_Recibido_USART(void){while (RCIF) // ejecutamos mientras haya un dato pendiente de procesar{// Hacemos una copia del registro RCSTA porque sus bits cambian de valor// al leer RCREG y modificar CREN

    Copia_RCSTA.registro = RCSTA;// En RCREG est el dato que acaba de recibir la USARTDatoRX = RCREG;// Si se reciben ms de 3 bytes sin haberlos procesado, se produce un error// de Overrun. En este caso, se borra el error reiniciando CREN y dejamos// la interrupcin preparada para procesar la siguiente trama DMXif (Copia_RCSTA.bits.OERR){CREN=0;CREN=1;DMX_Estado = DMX_ESPERA_BYTE;return;

    }// Mquina de estados

    switch (DMX_Estado){case DMX_ESPERA_BYTE: // si estamos en este estado y hay error FRAME

    // es que nos ha pillado en medio de un Byte. Hay que seguir esperando// hasta que desaparezca el error.

    if (!Copia_RCSTA.bits.FERR)// Ha llegado un byte. Ahora esperaremos la seal BreakDMX_Estado = DMX_ESPERA_BREAK;

    break;

    case DMX_ESPERA_BREAK: // estamos esperando la seal Break// Esta seal se identifica porque aparece el error de Frameif (Copia_RCSTA.bits.FERR)

    // Tras recibir el error de Break, hay que esperar un byte de valor 0if (!DatoRX)DMX_Estado = DMX_ESPERA_START;

    break;case DMX_ESPERA_START: // ya hemos recibido el Break y ahora hay que// esperar un Byte con valor 0, que ser la seal de Start// Mientras tanto, si recibimos un error de Frame, hay que volver a// empezar para recibir la seal de comienzo de trama.if (Copia_RCSTA.bits.FERR)

    DMX_Estado = DMX_ESPERA_BYTE;else {if (!DatoRX){// Llegados a este punto, ya hemos recibido el Byte Start=0

    // y comenzamos la trama de valores DMX.DMX_Indice = 0;DMX_Estado = DMX_RECEPCION_DATOS;

    } else

    .proyectos

  • 8/14/2019 Descarga Gratuita

    32/52//pgina 0x1E

    // Si el dato recibido no es 0, volvemos a empezarDMX_Estado = DMX_ESPERA_BREAK;

    }break;

    case DMX_RECEPCION_DATOS:// En este estado estamos recibiendo la trama de datos DMX// Si se detecta un error de Frame es que ha habido un error y estamos// al principio

    if (Copia_RCSTA.bits.FERR)if (!DatoRX)DMX_Estado = DMX_ESPERA_START;

    elseDMX_Estado = DMX_ESPERA_BYTE;

    else{// Almacenamos el dato recibido en nuestro arrayTramaDMX[DMX_Indice++] = DatoRX;// Si ha llegado al final de la capacidad, cambiamos al estado de espera// de nueva trama

    if (DMX_Indice >= TotalCanales)DMX_Estado = DMX_ESPERA_BREAK;

    }break;}

    }return;}

    .Emisor DMX

    Para comprobar que nuestro receptor funcio-

    na adecuadamente, es aconsejable contar con emisor

    DMX512. Si no se dispone de un dispositivo de prueba,

    es posible construir el receptor Manolator 256, cuyos es-

    quemas y mtodo de construccin se encuentra alojado

    en http://www.freedmx.com. Tambin deben descargarse

    alguno de los programas de emulacin de consolas DMX,

    que estn alojados en FreeDMX.

    .proyectos

  • 8/14/2019 Descarga Gratuita

    33/52//pgina 0x1F

    .circuiteca

    monoestable con NE555

    Existen algunos circuitos integrados que a pesar de permanecer durante aosen el mercado, su gran utilidad hace que permanezcan vigentes, tal es el caso

    del temporizador NE555. Es por eso que lo hemos elegido para inaugurar esta

    nueva seccin de la revista.

    //Ariel Palazzesi//[email protected]

    A pesar de ser un circuito integrado suma-

    mente econmico, se consiguen tiempos de tempo-

    rizacin muy estables frente a variaciones de tensin

    de alimentacin y de temperatura. La estabilidad en

    frecuencia es de 0,005% por C. La precisin final es-

    tar dada por la calidad del condensador C1.

    Un circuito monoestable recibe ese nombre por

    permanecer estable en un solo estado:

    el nivel bajo. En efecto, si conectamos el

    NE555 de manera que se comporte como

    un monoestable (figura 1), su salida per-

    manecer en estado bajo, salvo en el mo-

    mento en que reciba una seal en su pin

    numero 2, denominado TRIGGER (gati-

    llo o disparador), en cuyo caso la salida

    pasara a nivel alto durante un tiempo T.

    Este tiempo est determinado por los valores del resistor

    R1 y el condensador C1, de acuerdo a la formula de la

    figura 1. En ella, el periodo T se expresa en segundos, R1

    en Ohms y la capacidad de C1 en Faradios.

    Al presionar el pulsador identificado como TRI-GGER, la salida (pin 3) del NE555 pasar a estado

    alto y permanecer as hasta que transcurra el tiempo

    fijado por el valor de R1 y C1 o hasta que se presione el

    pulsador RESET (lo que ocurra primero). En general,

    no se desea interrumpir el periodo en que el integrado

    tiene su salida en nivel alto, por lo que

    el pulsador conectado al RESET puede

    no ser necesario.

    Dado que para obtener largos

    periodos en estado alto (superiores a

    los 10 minutos) se deben utilizar con-

    densadores electrolticos, y estos pre-

    sentan fugas que afectan su confiabili-

    dad, es que tenemos que recordar en

    el momento de hacer nuestros diseos que pueden ser

    posibles errores de hasta un 20% en los tiempos deter-

    minados por R1 y C1.

    Como puede verse, el esquema de nuestro osciladormonoestable es sumamente simple.

    Este circuito impreso servir para montarnuestro temporizador.

    Un circuito monoestable

    recibe ese nombre por

    permanecer estable enun solo estado:

    el nivel bajo

  • 8/14/2019 Descarga Gratuita

    34/52//pgina 0x20

    .circuiteca

    Es importante aclarar que una vez disparado el

    monoestable, hasta que no transcurra el tiempo T (o se re-

    setee el temporizador) cualquier actividad en el TRIGGER

    es ignorada, por lo que un disparo efectuado durante el

    estado alto de la salida no ser tenido en cuenta.

    El circuito puede alimentarse con tensiones com-

    prendidas entre 3 y 15V, y el valor de T es independiente

    del valor de VCC.

    Las aplicaciones para este circuito son muchas.

    Por ejemplo, buscando los valores adecuados de R1 y C1

    podra utilizarse para, mediante un rel, activar las luces

    de un pasillo, o la luz de cortesa de un automvil.

    Una vez montados los componentes, nuestroproyecto se ver ms o menos as.

    Remeras pasamensajescon panel de leds.

    Contactos:Tel: 15 6803 6152

    [email protected]

    www.remerasleds.com.ar

    ideal para barman, fiestas electrnicas,marketing directo y publicidad y ms!!!

  • 8/14/2019 Descarga Gratuita

    35/52

    .informacin tcnica

    //pgina 0x21

    el bus SPI

    El BUS SPI (Serial Peripheral Interface) constituye un estndar desarrollado porMotorola con el objetivo de comunicar dispositivos electrnicos ubicados en la

    misma placa de circuito impreso. SPI establece un enlace serie sincrnico para la

    comunicacin bidireccional, en modo full duplex, y configuracin Maestro/Esclavo.

    Solo el Maestro puede iniciar la comunicacin y se permite la existencia de varios

    esclavos, con dos configuraciones circuitales posibles. Este BUS tambin es cono-

    cido como BUS serie de 4 hilos.

    //Reinier Torres Labrada//[email protected]

    .La idea fundamental tras SPI

    SPI utiliza un registro de desplazamiento circular

    distribuido para el intercambio de datos entre el maestro y

    el esclavo. Con dos lneas de datos y una de reloj, es po-

    sible transmitir simultneamente, con cada pulso de reloj,

    un bit del maestro al esclavo y otro bit del esclavo al maes-

    tro. Esta configuracin podemos observarla en la Figura 1,

    y hace posible la transmisin de datos en ambos sentidos

    a altas velocidades.

    El anlisis de la Figura 1 sugiere que la longitud

    del registro de desplazamiento de cada uno de los circui-

    tos involucrados en la comunicacin puede ser cualquiera,

    siempre que ambos dispositivos tengan la misma longitud.

    De hecho la especificacin original no establece una lon-

    gitud determinada, pero por cuestiones prcticas, la ms

    utilizada es 8 bits.

    .Seales del BUS SPI

    SPI establece el uso de 4 seales, cada una de

    ellas con su identificador y funcin especfica:

    - SCK (Serial Clock): Es la seal de reloj, se utiliza para

    sincronizar el intercambio de datos entre los dispositivos

    que se estn comunicando. El maestro es el nico que

    puede generar esta seal.

    - MOSI (Master Output Slave Input): Flujo de bits que el

    maestro transmite al esclavo

    - MISO (Master Input Slave Output): Flujo de bits que el

    maestro recibe del esclavo

    - SS (Slave Select): Entrada de seleccin del esclavo, en

    los maestros esta seal se utiliza para el control y manejo

    de errores en sistemas con ms de un maestro.

    Adems de la especificacin de nombres anterio-

    Figura 1: SPI utiliza un buffer circular distribuido para intercambiar datos entre el dispositivo maestro y el esclavo.

  • 8/14/2019 Descarga Gratuita

    36/52

  • 8/14/2019 Descarga Gratuita

    37/52//pgina 0x23

    .informacin tcnica

    esclavo ira directamente a tierra y solamente se utilizarn

    para comunicarse las lneas MOSI y MISO.

    Hay situaciones en que el maestro solamente rea-

    lizar un tipo de operacin con el esclavo. En este caso

    no se requiere conectar las lneas MOSI y MISO, sino so-

    lamente una de ellas, en funcin del tipo de operacin a

    realizar; existen adems dispositivos con modos de comu-

    nicacin bidireccional que utilizan una sola lnea de datos.

    Pero por ser configuraciones no habituales, quedan fuera

    del alcance de este trabajo.

    .Comunicacin entre dispositivos

    La transferencia de datos solamente puede ser

    realizada por el maestro, nico dispositivo que tiene el

    control de la seal de reloj y que usualmente tendr el

    control de la seal de seleccin del esclavo.

    Para iniciar la comunicacin con un esclavo cual-quiera, el maestro debe en primer lugar, establecer la fre-

    cuencia que tendr la seal de reloj. Para ello debe confi-

    gurar adecuadamente su generador de baudios, de modo

    que ste genere una seal de reloj con una frecuencia igual

    o inferior a la frecuencia mxima que permite el esclavo.

    Posteriormente el maestro pondr a nivel lgico

    bajo la seal SS del esclavo con el cul desea establecer

    la comunicacin. Si fuese necesario esperar un tiempo

    determinado, por ejemplo, para que un conversor AD ter-

    mine el proceso de conversin o para que el esclavo se

    encuentre listo para la transferencia. El maestro debe im-plementar algn mecanismo de demora para estos casos,

    antes de comenzar a transmitir o recibir datos.

    El siguiente paso es transmitir y recibir un bit de

    datos con cada pulso de reloj, los bits son empujados por

    la lnea MOSI, uno a uno en el registro de desplazamiento

    del esclavo y el mismo proceso se produce en sentido in-

    verso por la lnea MISO.

    La cantidad de pulsos de reloj de cada transmi-

    sin no est limitada y depende de las caractersticas de

    la comunicacin entre los distintos dispositivos, sin embar-

    go las longitudes de palabra ms utilizadas son 8, 12, 16

    y 32 bits, por trama de datos.

    Una vez terminada la transmisin el maestro deja

    de generar la seal de reloj y habitualmente llevar la se-

    al SS a estado alto para desactivar la comunicacin con

    el esclavo previamente seleccionado.

    Para garantizar la comunicacin en un sistema

    que utilice varios esclavos, se precisa el uso de disposi-

    tivos cuyas entradas y salidas sean de tercer estado, de

    modo que para los efectos de la comunicacin, el disposi-

    tivo aparezca desconectado cuando su seal SS est en

    estado alto.

    .Los detalles del reloj y la fase

    Asociados al la seal de reloj existen dos aspec-

    tos importantes que se tienen en cuenta en las implemen-taciones de un BUS SPI. Estos dos aspectos, la polaridad

    y la fase, determina