Motores PAP.  
  Control de mandos de motores.  
Sensores.
  PIC 16F84.  
  Baterias.  
  Otros componentes.  

 

 

VOLVER

 

 

 

 

 

 

MOTORES PASO A PASO 

Los motores paso a paso son ideales para la construcción de mecanismos en donde se requieren movimientos muy precisos.

La característica principal de estos motores es el hecho de poder moverlos un paso a la vez por cada pulso que se le aplique. Este paso puede variar desde 90° hasta pequeños movimientos de tan solo 1.8°, es decir, que se necesitarán 4 pasos en el primer caso (90°) y 200 para el segundo caso (1.8°), para completar un giro completo de 360°.

Estos motores poseen la habilidad de poder quedar enclavados en una posición o bien totalmente libres. Si una o más de sus bobinas está energizada, el motor estará enclavado en la posición correspondiente y por el contrario quedará completamente libre si no circula corriente por ninguna de sus bobinas.

En este capítulo trataremos solamente los motores P-P del tipo de imán permanente, ya que estos son los mas usados en robótica.

 

Principio de funcionamiento

Básicamente estos motores están constituidos normalmente por un rotor sobre el que van aplicados distintos imanes permanentes y por un cierto número de bobinas excitadoras bobinadas en su estator.
Las bobinas son parte del estator y el rotor es un imán permanente. Toda la conmutación (o excitación de las bobinas) deber ser externamente manejada por un controlador.

Imagen del rotor 

 

Imagen de un estator de 4 bobinas

 

Existen dos tipos de motores paso a paso de imán permanente:

              

 

 

 

 

Secuencias para manejar motores paso a paso Bipolares

Como se dijo anteriormente, estos motores necesitan la inversión de la corriente que circula en sus bobinas en una secuencia determinada. Cada inversión de la polaridad provoca el movimiento del eje en un paso, cuyo sentido de giro está determinado por la secuencia seguida.

A continuación se puede ver la tabla con la secuencia necesaria para controlar motores paso a paso del tipo Bipolares:

PASO       TERMINALES
  A B C D
1 +V -V +V -V
2 +V -V -V +V
3 -V +V -V +V
4 -V +V +V -V

 

 

Secuencias para manejar motores paso a paso Unipolares

Existen tres secuencias posibles para este tipo de motores, las cuales se detallan a continuación. Todas las secuencias comienzan nuevamente por el paso 1 una vez alcanzado el paso final (4 u 8). Para revertir el sentido de giro, simplemente se deben ejecutar las secuencias en modo inverso.

 

Secuencia Normal: Esta es la secuencia más usada y la que generalmente recomienda el fabricante. Con esta secuencia el motor avanza un paso por vez y debido a que siempre hay al menos dos bobinas activadas, se obtiene un alto torque de paso y de retención.

PASO Bobina A Bobina B Bobina C Bobina D  
1 ON ON OFF OFF b.1
2 OFF ON ON OFF b.2
3 OFF OFF ON ON b.3
4 ON OFF OFF ON b.4

A continuación se puede apreciar la secuencia animada en modo normal:

 

Secuencia del tipo wave drive: En esta secuencia se activa solo una bobina a la vez. En algunos motores esto brinda un funcionamiento mas suave. La contrapartida es que al estar solo una bobina activada, el torque de paso y retención es menor.

PASO Bobina A Bobina B Bobina C Bobina D  
1 ON OFF OFF OFF a.1
2 OFF ON OFF OFF a.2
3 OFF OFF ON OFF a.3
4 OFF OFF OFF ON a.4

A continuación se puede apreciar la secuencia animada en modo wave drive:

 

Secuencia del tipo medio paso: En esta secuencia se activan las bobinas de tal forma de brindar un movimiento igual a la mitad del paso real. Para ello se activan primero 2 bobinas y luego solo 1 y así sucesivamente. Como vemos en la tabla la secuencia completa consta de 8 movimientos en lugar de 4.

PASO Bobina A Bobina B Bobina C Bobina D  
1 ON OFF OFF OFF a.1
2 ON ON OFF OFF b.1
3 OFF ON OFF OFF a.2
4 OFF ON ON OFF b.2
5 OFF OFF ON OFF a.3
6 OFF OFF ON ON b.3
7 OFF OFF OFF ON a.4
8 ON OFF OFF ON b.4

A continuación se puede apreciar la secuencia animada en modo medio paso:

 

 

Como comentario final, cabe destacar que debido a que los motores paso a paso son dispositivos mecánicos y como tal deben vencer ciertas inercias, el tiempo de duración y la frecuencia de los pulsos aplicados es un punto muy importante a tener en cuenta. En tal sentido el motor debe alcanzar el paso antes que la próxima secuencia de pulsos comience. Si la frecuencia de pulsos es muy elevada, el motor puede reaccionar en alguna de las siguientes formas:

Para obtener un arranque suave y preciso, es recomendable comenzar con una frecuencia de pulso baja y gradualmente ir aumentándola hasta la velocidad deseada sin superar la máxima tolerada. El giro en reversa debería también ser realizado previamente bajando la velocidad de giro y luego cambiar el sentido de rotación.

 

Una referencia importante:

Cuando se trabaja con motores P-P usados o bien nuevos, pero de los cuales no tenemos hojas de datos. Es posible averiguar la distribución de los cables a los bobinados y el cable común en un motor de paso unipolar de 5 o 6 cables siguiendo las instrucciones que se detallan a continuación:

     

 

1. Aislando el cable(s) común que va a la fuente de alimentación: Como se aprecia en las figuras anteriores, en el caso de motores con 6 cables, estos poseen dos cables comunes, pero generalmente poseen el mismo color, por lo que lo mejor es unirlos antes de comenzar las pruebas.

Usando un tester para chequear la resistencia entre pares de cables, el cable común será el único que tenga la mitad del valor de la resistencia entre ella y el resto de los cables. 

Esto es debido a que el cable común tiene una bobina entre ella y cualquier otro cable, mientras que cada uno de los otros cables tienen dos bobinas entre ellos. De ahí la mitad de la resistencia medida en el cable común.

2.Identificando los cables de las bobinas (A, B, C y D): aplicar un voltaje al cable común  (generalmente 12 volts, pero puede ser más o menos) y manteniendo uno de los otros cables a masa (GND) mientras vamos poniendo a masa cada uno de los demás cables de forma alternada y observando los resultados.

El proceso se puede apreciar en el siguiente cuadro:

Seleccionar un cable y conectarlo a masa. Ese será llamado cable A.

 

Manteniendo el cable A conectado a masa, probar cuál de los tres cables restantes provoca un paso en sentido antihorario al ser conectado también a masa. Ese será el cable B.

 

Manteniendo el cable A conectado a masa, probar cuál de los dos cables restantes provoca un paso en sentido horario al ser conectado a masa. Ese será el cable D.

 

El último cable debería ser el cable C. Para comprobarlo, basta con conectarlo a masa, lo que no debería generar movimiento alguno debido a que es la bobina opuesta a la A. 

 

Nota: La nomenclatura de los cables (A, B, C, D) es totalmente arbitraria.

 

Identificando los cables en Motores P-P Bipolares:

Para el caso de motores paso a paso bipolares (generalmente de 4 cables de salida), la identificación es más sencilla. Simplemente tomando un tester en modo ohmetro (para medir resistencias), podemos hallar los pares de cables que corresponden a cada bobina, debido a que entre ellos deberá haber continuidad (en realidad una resistencia muy baja). Luego solo deberemos averiguar la polaridad de la misma, la cual se obtiene fácilmente probando. Es decir, si conectado de una manera no funciona, simplemente damos vuelta los cables de una de las bobinas y entonces ya debería funcionar correctamente. Si el sentido de giro es inverso a lo esperado, simplemente se deben invertir las conexiones de ambas bobinas y el H-Bridge.

 

Para recordar
  • Un motor de paso con 5 cables es casi seguro de 4 fases y unipolar.
  • Un motor de paso con 6 cables también puede ser de 4 fases y unipolar, pero con 2 cables comunes para alimentación. pueden ser del mismo color.
  • Un motor de pasos con solo 4 cables es comúnmente bipolar.
  •  

    VOLVER

     

     CONTROL DE MOTORES

     

    La parate electrónica utiliza el circuito MC8031 que está basado en los MCS 8 bits, contiene internamente un CPU (Unidad de Control de Procesamiento) de 8 bits, 3 puertos de entrada/salida paralelo, un puerto de control el cual a su vez contiene un puerto serie, 2 entradas para timer contador de 16 bits, 2 entradas para interrupciones externas, las señales de RD y WR para la toma o almacenamiento de datos externos en RAM, la señal de PSEN para la lectura de instrucciones almacenadas en EPROM externo. Gracias a estas tres señales el MC8031 puede direccionar 64 Kb de programa y 64 Kb de datos separadamente. Además cuenta con 128 bytes de memoria RAM interna. El puerto tres (P3) se utiliza para detectar el pulso emitido, por lo tanto este puerto se utiliza como puerto de entrada de datos.[8].

    Los motores paso a paso o simplemente PAP, son un tipo especial de motores que permiten el avance de su eje en ángulos muy precisos y por pasos en las dos posibles direcciones de movimiento, izquierda o derecha. Cada paso tiene un ángulo muy preciso, determinado por la construcción del motor, lo que permite realizar movimientos exactos sin necesidad de un sistema de control por lazo cerrado.[5]. También presentan grandes ventajas con respecto a la utilización de servomotores debido a que se pueden manejar digitalmente sin realimentación, su velocidad se puede controlar con facilidad, son pequeños y de larga vida ya que poseen un elevado torque en bajas revoluciones, permitiendo un bajo consumo tanto en vacío como en plena carga, su mantenimiento es mínimo debido a que no tienen escobillas.
     

     
     

    Un motor paso a paso es una máquina eléctrica en la que sus devanados se energizan uno después del otro, estas excitaciones provocan un giro discontinuo en un ángulo que se determina por la posición que toma el eje. En la figura 1 se muestra un motor que utiliza cuatro bobinas mediante las cuales podemos hacer girar el rotor en ángulos de 90°.

    Los motores a pasos tanto unipolares como bipolares, pueden trabajar en dos modos de operación, de paso completo y de medio paso. En el primer caso, con cada secuencia el rotor gira un determinado ángulo que depende de la fabricación; en el modo de medio paso, cada secuencia produce un giro en grados correspondiente a la mitad de su paso normal. Además del sentido del giro, cuya posición queda determinada por la secuencia de los pulsos transmitidos, variando la frecuencia de los pulsos aplicados a las bobinas.

    Los motores PAP poseen 5 terminales y los niveles de tensión que deben estar presentes en cada terminal para encontrar una secuencia. Para invertir el sentido de giro sólo hay que invertir la secuencia. En la figura 2 se da la secuencia que el software tiene que generar para que el motor gire correctamente.

    Para realizar el control de velocidad del motor, lo único que se debe hacer es variar la frecuencia de desplazamiento de la secuencia. Si por el contrario la frecuencia disminuye, la velocidad del motor también lo hace. Para realizar el control del sentido de giro, se debe invertir las variables de la forma sugerida en la figura 2.

    Para realizar el control de posición del motor, se debe conocer la cantidad de grados que el mismo gira por paso, ya que se debe realizar una función por software, tal que al ingresar una variable de N cantidad de grados, el motor gire la cantidad de pasos que esto significa.

    El sistema cuenta con un dispositivo emisor/receptor de láser, el cual se utiliza para detectar un vehículo y asegurar de esta forma que la aguja no caiga sobre él.

    DESCRIPCIÓN DEL SISTEMA
    Controlaccess es un proyecto que controla las entradas y salidas tanto de empleados como visitantes en una institución privada mediante el uso de sistemas electrónicos y de computo, llevando el control de la información de todos los empleados que asceden a dicho estacionamiento por medio de una Base de datos que está relacionada directamente con el sistema electrónico, es decir, cuando se activa una señal de un control manipulado por el usuario, éste envía una señal al Microcontrolador 8031 que la identifica y posteriormente activa la aguja mediante un motor a pasos, permitiendo el acceso al usuario.

    Este proyecto de seguridad cuenta con varias terminales las cuales se comunican mediante el MAX232 en serie, un Microcontrolador 8031 y un dispositivo de seguridad especial manejado mediante láser y un control remoto para activar las agujas. El MC8031 actúa como intermediario entre la Computadora y los motores a pasos, controlando el giro de los motores ya que cada motor cuenta con una etapa de potencia. Cuando las agujas se abren aceptando la clave del usuario, activan una alarma para que el motor no se mueva y pueda caer y dañar al vehículo, estos motores vuelven a su posición inicial después de determinado tiempo. Los motores trabajan por separado, es decir un motor controla la aguja del estacionamiento para visitantes y otro maneja las dos agujas en conjunto para los trabajadores de la empresa, encontrándose los dos en reposo hasta que un usuario llegue al estacionamiento.

    Este proyecto ha sido desarrollado pensando en la facilidad de implementación, manejo, mantenimiento y costos accesibles del mismo, ya que se utilizaron componentes fáciles de conseguir, de bajo costo y de fácil manejo.

    Para lograr la conectividad del sistema con la base de datos se utilizan los ODBC o manejadores de bases de datos de conectividad abierta. Así mismo se cuenta con herramientas de consulta SQL (Structured Query Language, "Lenguaje estructurado de consultas"), cuyos componentes y características son utilizadas y modificadas siguiendo el principio de herencia y polimorfismo de la programación orientada a objetos.
     

     

     


     
     

    Figura 3 Diagrama a Bloques del Sistema.

    CONCLUSIONES
    El sistema de control de accesos "Controlaccess" permite que en un estacionamiento privado mantenga la seguridad en el control de vehículos y personal (tanto empleados como visitantes) en base a un sistema se agiliza el acceso y provee información seleccionada a través de una base de datos, la cual contiene datos de vehículos y empleados. El sistema de las agujas cuenta con un procedimiento de seguridad en caso de falla de energía eléctrica asegurando de esta forma al vehículo en el momento de la entrada y salida al estacionamiento.

    RECOMENDACIONES
    "Controlaccess" está enfocado directamente a aaquellas empresas grandes que cuenten con estacionamiento. Al manejar este sistema, sugerimos el siguiente equipo, como requerimientos mínimos un Procesador 486 DX2 66 Mhz con 16 MB RAM, 20 MB en disco duro y monitor a 256 colores.

     

     

    DIRECCIÓN Y TRACCIÓN

    La dirección y tracción diseñada debe funcionar mediante dos motores paso a paso(stepper) que según un patrón tabulado permite todo tipo de movimientos. Esto es, avanzar y retroceder, tanto en línea recta como doblando.

    El detalle de esto sigue a continuación:

    Tracción:( Se optó como solución el uso de dos motores steppers, como sistema de tracción - dirección. Cada motor tiene 2 pares de bobinas y dos tierras independientes, las cuales se conectan en común.).

    Para el control de estos motores, se usó un PIC16F84, debido a su bajo costo, facilidad de programación y a que usando la entrada de 5 bits era capaz de manejar perfectamente los steppers a través de 8 bits de datos.

     

     

     

    VOLVER

     

     

    SENSORES

    Descripción: Sensor basado en el dispositivo  SHARP IS471F inmune a interferencias de luz normal. Este sensor incorpora un modulador/demodulador integrado en su carcasa y a través de su patilla 4 controla un diodo LED de infrarrojos externo, modulando la señal que este emitirá, para ser captada por el IS471F que contiene el receptor. cuando un objeto se sitúa enfrente del conjunto emisor/receptor parte de la luz emitida es reflejada y demodulada para activar la salida en la patilla 2 que pasará a nivel bajo si la señal captada es suficientemente fuerte.

     

    El uso de luz IR modulada tiene por objeto hacer al sensor relativamente inmune a las interferencias causadas por la luz normal de una bombilla o la luz del sol.

    Funcionamiento: Como puede verse en el esquema, el sensor se alimenta por sus patitas 1, 3 y estas corresponden a Vcc y Gnd respectivamente, la patita 2 es la salida del detector y la patita 4 es la salida que modula al led emisor externo. Mediante el potenciómetro P1 se varia la distancia a la que es detectado el objeto. Contra mas baja sea la resistencia de este potenciómetro, mas intensa será la luz emitida por el diodo de IR y por lo tanto mayor la distancia a la que puede detectar el objeto.

    El el siguiente esquema vemos el simple circuito necesario para hacer funcionar al sensor.

     

     

     

    Usos: Creo que estos se usan para detección de obstáculos por reflexión y detección de oponentes en combates de sumo. (digo creo porque aun no e probado este dispositivo y no se que sensibilidad tiene y si es adecuado para esto)

    Ideas y mejoras: En el circuito anterior lo que vemos es un detector de distancia fija ajustable por un potenciómetro, pero seria posible hacerlo de varias distancias o incluso un detector gradual de distancias. Para varias distancias se podría conmutar  varias resistencias y así calcular la distancia del objeto haciendo pruebas antes, y creando una tabla de equivalencias. Para el detector gradual también seria posible controlando la corriente que le llega al diodo emisor mediante un conversor D/A y un circuito de potencia basado el algún transistor, todo esto controlado por un  Controlador.

    VOLVER

     

    Microcontroladores Pic 16F84.

    Los PIC son una extensa familia de microcontroladores divididos en tres gamas, la gama baja con memoria de programa de 12 bits, la gama media y la gama alta con memoria de programa de 14 bits. En la tabla 1 se presentan algunos miembros de cada una de estas gamas con resumen de sus principales características.

    Nosotros utilizaremos el PIC 16f84 por sus especiales características. Los microcontroladores PIC 16f84 com memoria tipo FLASH y PIC 16c84 con memoria EEPROM, son potentes, flexibles y fáciles de emplear debido entre otras carcterísticas a que este tipo de memoria permite su grabación y su borrado miles de veces de forma casi instantánea al realizarse eléctricamente a diferencia de los microcontroladores basados en memoria EPROM que necesita un borrador ultravioleta. Pueden utilizarse tanto en el desarrollo como en la producción. Su coste se reduce frente a otros modelos ya que no necesitan encapsulados cerámicos con ventana de programación como los chips EPRPOMs. Disponen ademas de una EEPROM de 64 bytes para datos, lo que elimina la necesidad de una memoria EEPROM externa, y aun mas importante, pueden ser programados "en circuito" sin necesidad de ser retirados, lo que permite su grabación después del ensamblado y que los programas pueden ser actualizados o modificados para eliminar errores detectados con posterioridad o para introducir versiones mas actualizadas del programa.

    El PIC 16f84 pertenece a la gama media del fabricante, poseyendo unas características óptimas para su empleo en el aprendizaje. Este microntrolador con memoria FLASH ésta fabricado con tecnología CMOS. Su consumo es muy reducido siendo el circuito completamente estático por lo que su reloj puede detenerse completamente sin pérdida de los contenidos de los registros. Un consumo típico es de 2 mA a 4 Mhz y unos 40 microamperios en modo Sleep. Al ser un circuito CMOS, todas las entradas no usadas deben ser llevadas a +5V. El encapsulado de 18 pines así como la descripción del patillaje puede verse en la figura 1

    Set de instrucciones Microcontrolador PIC.

     

    Estas son las todas las instrucciones que hay para poder programar el Pic 16c5x, 16c64, 16c71, 16c74, 16c84, 16f84, 16f873.

     Las encontraremos en orden alfabético.

    En total son 37 y haciendo un clic sobre una de ellas podemos acceder a su respectiva descripción:

    NOTA: Las instrucciones OPTION y TRIS incluidas en este listado, no forman parte del set de instrucciones de los PIC 16f84 y 16f873.

      TABLA:

    ADDLW 

    ADDWF  
    ANDLW  
    ANDWF 
    BCF  
    BSF 
    BTFSC  
    BTFSS

    CALL

    CLRF 
    CLRW  
    CLRWDT  
    COMF  
    DECF 
    DECFSZ  
    GOTO

    INCF

    INCFSZ  
    IORLW  
    IORWF 
    MOVF  
    MOVLW 
    MOVWF

    NOP

    OPTION  
    RETFIE 
    RETLW  
    RETURN 
    RLF  
    RRF

    SLEEP

    SUBLW 
    SUBWF  
    SWAPF 
    TRIS  
    XORLW 
    XORWF

     

     

     

     

     

     

     

     

     

     

    ADDLW

    ADD Literal to W

    Sintaxis

    ADDLW   k

    Codificación

    11

    111x

    kkkk

    kkkk

     

     

    Palabras, Ciclos

    1, 1

    Operación

    W + k -> W

    Bit de estado

    C, DC, Z

    Descripción

    Añade el contenido de W al contenido de k, y almacena el resultado en W

     

    Atención: Esta instrucción no existe en los Pic 16c5X

     

     

     

     

     

     

    ADDWF

    ADD W to F

    Sintaxis

    ADDWF f, d

    Codificación

    0001

    11df

     

     

    ffff

    00

    0111

    dfff

    ffff

     

     

     

    Palabras, Ciclos

    1, 1

    Operación

    W + f -> f si d=1

     

    W + f -> W si d=0 

    Bit de estado

    C, DC, Z

    Descripción

    Añade el contenido de W al contenido de f, y almacena el resultado en W si d=0, y en f si d=1

     

     

     

    ANDLW

    AND Literal and W

    Sintaxis

    ANDLW k

    Codificación

     

    1110

    kkkk

    kkkk

     

    11

    1001

    kkkk

    Kkkk

     

     

    Palabras, Ciclos

    1, 1

    Operación

    W AND k -> W

    Bit de estado

    Z

    Descripción

    Efectúa un AND lógico entre el contenido de W y el literal k, y lo almacena en W

     

     

     

     

     

     

    ANDWF

    AND W with F

    Sintaxis

    ANDWF f, d

    Codificación

     

    0001

    01df

    ffff

     

    00

    0101

    dfff

    ffff

     

     

    Palabras, Ciclos

    1, 1

    Operación

    W AND f -> f si d=1

    W AND f -> W si d=0 

    Bit de estado

    Z

    Descripción

    Efectúa un AND lógico entre el contenido de W y el contenido de f, y almacena el resultado en W si d=0, y en f si d=1

     

     

     

    VOLVER

     
       

     

    BCF

    Bit Clear F

    Sintaxis

    BCF f, b

    Codificación

     

    0100

    bbbf

    ffff

     

    01

    00bb

    bfff

    ffff

     
     
     

    Palabras, Ciclos

    1, 1

    Operación

    0 -> b(f)

    Bit de estado

    Ninguno

    Descripción

    Pone a cero el bit numero b de f

     

     

     

     

     

    BSF

    Bit Set F

    Sintaxis

    BSF f, b

    Codificación

     

    0101

    bbbf

    ffff

     

    01

    01bb

    bfff

    ffff

     
     
     

    Palabras, Ciclos

    1, 1

    Operación

    1 -> b(f) 

    Bit de estado

    Ninguno

    Descripción

    Pone a uno el bit numero b de f

     

     

    VOLVER

     
      

    BTFSC

    Bit Test, Skip If Clear

    Sintaxis

    BTFSC f, b

    Codificación

     

    0110

    bbbf

    ffff

     

    01

    10bb

    bfff

    ffff

     
     

     

    Palabras, Ciclos

    1, 1 o 2

    Operación

    Salta si b(f)=0

    Bit de estado

    Ninguno

    Descripción

    Si el bit numero b de f es nulo, la instrucción que sigue a esta se ignora y se trata como un NOP. En este caso, y solo en este caso, la instrucción BTFSC precisa dos ciclos para ejecutarse.

     

     

     

     

     

    BTFSS

    Bit Test, Skip If Set

    Sintaxis

    BTFSS f, b

    Codificación

     

    0111

    bbbf

    ffff

     

    01

    11bb

    bfff

    ffff

     

    Palabras, Ciclos

    1, 1 o 2

    Operación

    Salta si b(f)=1

    Bit de estado

    Ninguno

    Descripción

    Si el bit numero b de f esta en uno, la instrucción que sigue a esta se ignora y se trata como un NOP. En este caso, y solo en este caso, la instrucción BTFSC precisa dos ciclos para ejecutarse.

     

     

    VOLVER

       

     

    CALL

    Subrutina Call

    Sintaxis

    CALL k

    Codificación

     

    1001

    kkkk

    kkkk

     

    10

    0kkk

    kkkk

    kkkk

     

     

    Palabras, Ciclos

    1, 2

    Operación

    En el caso de los 16c5X:

     

    PC + 1 -> Pila, k -> PC(0-7), 0 -> PC(8), PA2 a PA0 -> PC(9-11) 
    En el caso de los 16c64, 71, 74, 84: PC + 1 -> Pila, k -> PC(0-10), PCLATH(3,4) -> PC(11,12)

    Bit de estado

    Ninguno

    Descripción

    Guarda la dirección de vuelta en la pila y despues llama a la subrutina situada en la dirección cargada en el PC.

     

    Atención: El modo de calculo de la dirección difiere según la familia PIC utilizada. También hay que posicionar bien PA2, PA1, PA0 (16c5X) o el registro PCLATH (en los demas PIC), antes de ejecutar la instrucción CALL

     

     

     

     

     

     

    CLRF

    Clear F with F

    Sintaxis

    CLRF f

    Codificación

    0000

    011f

    ffff


     

     

    00

    0001

    1fff

    ffff

     

     

    Palabras, Ciclos

    1, 1

    Operación

    00 -> f

    Bit de estado

    Z

    Descripción

    Pone el contenido de f a cero y activa el bit Z.

     

     

    VOLVER

       

     

    CLRW

    Clear W register

    Sintaxis

    CLRW

    Codificación

     

    0000

    0100

    0000

     

    00

    0001

    0xxx

    xxxx

     

     

    Palabras, Ciclos

    1, 1

    Operación

    00 -> W

    Bit de estado

    Z

    Descripción

    Pone el registro W a cero y activa el bit Z

     

     

     

     

     

     

    CLRWDT

    Clear Watchdog Timer

    Sintaxis

    CLRWDT

    Codificación

     

    0000

    0000

    0100

     

    00

    0000

    0110

    0100

     

     

    Palabras, Ciclos

    1, 1

    Operación

    00 -> WDT y 0 -> predivisor del temporizador

    Bit de estado

    1 -> TO y 1 -> PD

    Descripción

    Pone a cero el registro contador del temporizador watchdog, asi como el predivisor

     

     

    VOLVER

       

     

    COMF

    Complement F

    Sintaxis

    COMF f, d

    Codificación

    0010

    01df

    ffff

     

    00

    1001

    dfff

    ffff

     

     

    Palabras, Ciclos

    1, 1

    Operación

    ~f -> f su d=1

     

    ~f -> W si d=0

    Bit de estado

    Z

    Descripción

    Hace un complemento de f bit a bit. El resultado lo almacena de nuevo en f si d=1 (borra el anterior), o en W si d=0 (f no varía)

     

     

     

     

     

     

    DECF

    Decrement F to F

    Sintaxis

    DECF f, d

    Codificación

     

    0000

    11df

    ffff

     

    00

    0011

    dfff

    ffff

     

     

    Palabras, Ciclos

    1, 1

    Operación

    f - 1 -> f si d=1

     

    f - 1 -> W si d=0 

    Bit de estado

    Z

    Descripción

    Decrementa el contenido de f en una unidad. El resultado se guarda en W si d=0 (f no varia), y en f si d=1

     

     

    VOLVER

       

     

    DECFSZ

    Decrement F, Skip If Zero

    Sintaxis

    DECFSZ f, d

    Codificación

     

    0010

    11df

    ffff

     

    00

    1011

    dfff

    ffff

     

     

    Palabras, Ciclos

    1, 1(2)

    Operación

    f - 1 -> f si d=1

     

    f - 1 -> W si d=0

    Bit de estado

    Ninguno

    Descripción

    Decrementa el contenido de f en una unidad. El resultado se guarda en W si d=0 (f no varia), y en f si d=1

     

    Si el reusltado es nulo, se ignora la siguiente instrucción y en este caso la instrucción dura dos ciclos.

     

     

     

     

     

     

    GOTO

    Salto Incondicionalwith F

    Sintaxis

    GOTO k

    Codificación

     

    101k

    kkkk

    kkkk

     

    10

    1kkk

    kkkk

    kkkk

     

     

    Palabras, Ciclos

    1, 2

    Operación

    En el caso de los 16c5X:

     

    k -> PC(0-8), PA2 PA1, PA0 -> PC(9-11) 
    En el caso de los 16c64,71,74 y 84: 
    k -> PC(0-10), PCLATH(3,4) -> PC(11,12)

    Bit de estado

    Ninguno

    Descripción

    LLama a la subrutina situada en la dirección cargada en el PC

     

    Atención: El modo de cálculo de la dirección difiere según la familia de PIC utilizada. También hay que posicionar correctamente PA2, PA1, PA0 (16c5X) o el registro PCLATH (en los demas PIC) antes de ejecutar la instrucción GOTO

     

     

    VOLVER

       

     

    INCF

    Increment F

    Sintaxis

    INCF f, d

    Codificación

    0010

    10df

    ffff

     

    00

    1010

    dfff

    ffff

     

     

    Palabras, Ciclos

    1, 1

    Operación

    f + 1 -> f si d=1

     

    f + 1 -> W si d=0

    Bit de estado

    Z

    Descripción

    Incrementa el contenido de f en una unidad. El resultado se almacena de nuebo en f si d=1 y en W si d=0(en este caso f no varía)

     

     

     

     

     

     

    INCFSZ

    Increment F, Skip if Zero

    Sintaxis

    INCFSZ f, d

    Codificación

    0011

    11df

    ffff

     

    00

    1111

    dfff

    ffff

     

     

    Palabras, Ciclos

    1, 1(2)

    Operación

    f + 1 -> f si d=1

     

    f + 1 -> W si d=0 
    En ambos casos: Salto si f + 1 = 0

    Bit de estado

    Ninguno

    Descripción

    Incrementa el contenido de f en una unidad. El resultado se guarda de nuevo en f si d=1 y en w si d=0 (en este caso f no varia). Si el resultado es nulo, se ignora la siguiente instrucción y en este caso, esta instrucción dura dos ciclos

     

     

    VOLVER

       

     

    IORLW

    Inclusive OR Literal With W

    Sintaxis

    IORLW k

    Codificación

     

    1101

    kkkk

    kkkk

     

    11

    1000

    kkkk

    kkkk

     

     

    Palabras, Ciclos

    1, 1

    Operación

    W OR k -> W

    Bit de estado

    Z

    Descripción

    Efectúa un OR lógico inclusivo entre el contenido de W y el literal K, y almacena el resultado en W

     

     

     

     

     

     

    IORWF

    Inclusive OR W With f

    Sintaxis

    IORWF f, d

    Codificación

     

    0001

    00df

    ffff

     

    11

    0100

    dfff

    ffff

     

     

    Palabras, Ciclos

    1, 1

    Operación

    W OR f -> f si d=1

     

    W OR f -> W si d=0

    Bit de estado

    Z

    Descripción

    Efectúa un OR lógico inclusivo entre el contenido de W y el contenido de f, y almacena el resultado en f si d=1 o en W si d=0

     

     

    VOLVER

       

     

    MOVF

    Move F

    Sintaxis

    MOVF f, d

    Codificación

    0010

    00df

    ffff

     

    00

    1000

    dfff

    ffff

     

     

    Palabras, Ciclos

    1, 1

    Operación

    f -> f si d=1

     

    f -> W si d=0

    Bit de estado

    Z

    Descripción

    Pone el contenido de f en f si d=1 o f en W si d=0

     

    Atención: El desplazamiento de f en f que pareceria inutil, permite comprobar el contenido de f con respecto a cero ya que esta instucción actúa sobre el bit Z

     

     

     

     

     

     

    MOVLW

    Move Literal to W with F

    Sintaxis

    MOVLW k

    Codificación

     

    1100

    kkkk

    kkkk

     

    11

    00xx

    kkkk

    kkkk

     

     

    Palabras, Ciclos

    1, 1

    Operación

    k -> W

    Bit de estado

    Ninguno

    Descripción

    Carga W con el literal k

     

     

    VOLVER

       

     

    MOVWF

    Move W to F

    Sintaxis

    MOVWF f

    Codificación

    0000

    001f

    ffff

     

    00

    0000

    1fff

    ffff

     

     

    Palabras, Ciclos

    1, 1

    Operación

    W -> f

    Bit de estado

    Ninguno

    Descripción

    Carga f con el contenido de W

     

     

     

     

     

     

    NOP

    No Operation

    Sintaxis

    NOP

    Codificación

     

    0000

    0000

    0000

     

    00

    0xx0

    0000

     

     

     

    Palabras, Ciclos

    1, 1

    Operación

    Ninguna

    Bit de estado

    Ninguna

    Descripción

    Consume tiempo de la maquina y ocupa un lugar en la memoria de programa.

     

     

    VOLVER

       

     

    OPTION

    Load Option Register

    Sintaxis

    Option

    Codificación

     

    0000

    0000

    0010

     

    00

    0000

    0110

    0010

     

     

    Palabras, Ciclos

    1, 1

    Operación

    W -> OPTION

    Bit de estado

    Ninguno

    Descripción

    Carga el registro OPTION con el contenido de W

     

    Atención: Esta instrucción no debe utilizarse en otros circuitos que no sean los PIC 16c5x. Sin embargo, es correctamente interpretada por los circuitos 16c64, 71, 74, 84 con el fin de asegurar una compatibilidad ascendente

     

     

     

     

     

     

    RETFIE

    Return From Interrupt

    Sintaxis

    RETFIE

    Codificación

    00

    0000

    0000

    1001

     

     

    Palabras, Ciclos

    1, 2

    Operación

    Pila -> PC, 1 -> GIE

    Bit de estado

    Ninguno

    Descripción

    Carga el PC con el valor que se encuentra en la parte superior de la pila, asegurando asi la vuelta de la interrupción. Pone a 1 el bit GIE, con el fin de autorizar de nuevo que se tengan en cuenta las interrupciones

     

    Atención: Esta interrupción dura dos ciclos 
    Esta instrucción no existe para los PIC 16c5X

     

     

    VOLVER

     

     

     

    RETLW

    Return Literal to W

    Sintaxis

    RETLW k

    Codificación

     

    1000

    kkkk

    kkkk

     

    11

    01xx

    kkkk

    kkkk

     

    Palabras, Ciclos

    1, 2

    Operación

    k -> W, Pila -> PC

    Bit de estado

    Ninguno

    Descripción

    Carga W con el literal k, y después carga el PC con el valor que se encuentra en la parte superior de la pila, efectuando asi un retorno de subrutina

     

    Atención: Esta instrucción dura dos ciclos

     

     

     

     

     

     

    RETURN

    Return from Subroutinewith F

    Sintaxis

    RETURN

    Codificación

    00

    0000

    0000

    0000

     

     

    Palabras, Ciclos

    1, 2

    Operación

    Pila -> PC

    Bit de estado

    Ninguno

    Descripción

    Carga el PC con el valor que se encuentra en la parte superior de la pila, efectuando asi una vuelta a la subrutina. Se trata de la instrucción RETLW simplificada

     

    Atención:Esta instrucción dura dos ciclos 
    Esta instrucción no existe en los PIC 16c5X

     

     

    VOLVER

     

     

     

    RLF

    Rotate Left F through Carry

    Sintaxis

    RLF f,d

    Codificación

     

    0011

    01df

    ffff

     

    00

    1101

    dfff

    ffff

     

    Palabras, Ciclos

    1, 1

    Operación

    ver descr.

    Bit de estado

    C

    Descripción

    Rotación de un bit a la izquierda del contenido de f, pasando por el bit de acarreo C. Si d=1 el resultado se almacena en f si d=0 el resultado se almancena en W

     

     

     

     

     

     

    RRF

    Rotate Right F through Carry

    Sintaxis

    RRF f, d

    Codificación

    0011

    00df

    ffff

     

    00

    1100

    dfff

    ffff

     

     

    Palabras, Ciclos

    1, 1

    Operación

    Ver descr.

    Bit de estado

    C

    Descripción

    Rotación de un bit a la derecha del contenido de f, pasando por el bit de acarreo C. Si d=1 el resultado se introduce en f, si d=0 el resultado se amacena en W

     

     

    VOLVER

     

     

    SLEEP

    Sleep

    Sintaxis

    SLEEP

    Codificación

     

    0000

    0000

    0011

     

    00

    0000

    0110

    0011

     

     

    Palabras, Ciclos

    1, 1

    Operación

    0 -> PD, 1 -> TO, 00 -> WDT, 0 -> Predivisor del WDT

    Bit de estado

    PD, TO

    Descripción

    Pone el circuito a dormir con parada del oscilador. Su consumo es inferior.

     

    Atención: Use esta instrucción con mucho cuidado, pues puede provocar que el micro no despierte si no se ha seteado correctamente.

     

     

     

     

     

    SUBLW

    Substract W from Literal

    Sintaxis

    SUBLW k

    Codificación

    11

    110x

    kkkk

    kkkk

     

     

    Palabras, Ciclos

    1, 1

    Operación

    k - W -> W

    Bit de estado

    C, DC, Z

    Descripción

    Sustrae el contenido de W del literal k, y almacena el resultado en W. La sustracción se realiza en complemento a dos

     

    Atención: Esta instrucción no existe en los Pic 16c5X

     

     

    VOLVER

     

     

     

    SUBWF

    Substract W from F

    Sintaxis

    SUBWF f, d

    Codificación

    0000

    10df

    ffff

     

    00

    0010

    dfff

    ffff

     

    Palabras, Ciclos

    1, 1

    Operación

    f - W -> f si d=1

     

    f - W -> W si d=0

    Bit de estado

    C, DC, Z

    Descripción

    Sustrae el contenido de W del contenido de f, y almacena el resultado en W si d=0 y en f si d=1. La sustracción se realiza en complemento a dos

     

     

     

     

     

     

    SWAPF

    Swap F to F

    Sintaxis

    SWAPF f, d

    Codificación

     

    0011

    11df

    ffff

     

    00

    1110

    dfff

    ffff

     

    Palabras, Ciclos

    1, 1

    Operación

    f(0-3) -> f(4-7) y f(4-7) -> f(0-3)

     

    Resultado -> f si d=1 
    Resultado -> W si d=0 

    Bit de estado

    Ninguno

    Descripción

    Intercambia los cuatro bit de mayor peso por los cuatro de menor peso de f, y almacena el resultado en W si d=0, y en f si d=1

     

     

    VOLVER

     

     

    TRIS

    Load TRIS Register

    Sintaxis

    TRIS f

    Codificación

     

    0000

    0000

    0fff

     

    00

    0000

    0110

    0fff

     

     

    Palabras, Ciclos

    1, 1

    Operación

    W -> registro TRIS del puerto f 

    Bit de estado

    Ninguno

    Descripción

    Carga el contenido de W en el registro TRIS del puerto f.

     

    Atención: Esta instrucción no debe utilizarse en otros circuitos que no sean los Pic 16c5X. No obstante, es correctamente interpretada por los circuitos 16c64, 71, 74, 84, con el fin de asegurar una compatibilidad ascendente

     

     

     

     

     

     

    XORLW

    Exclusive OR Literal With W

    Sintaxis

    XORLW k

    Codificación

     

    1111

    kkkk

    kkkk

     

    11

    1010

    kkkk

    kkkk

     

     

    Palabras, Ciclos

    1, 1

    Operación

    W OR (Exclusivo) k -> W

    Bit de estado

    Z

    Descripción

    Efectúa un OR lógico exclusivo entre el contenido de W y el contenido del Literal K y almacena el resultado en W

     

     

    VOLVER

     

     

    XORWF

    Exclusive Or W with F

    Sintaxis

    XORWF f,d

    Codificación

    0001

    10df

    ffff

     

    00

    0110

    dfff

    ffff

     

    Palabras, Ciclos

    1, 1

    Operación

    W OR (Exclusivo) f -> f si d=1

     
    W OR (Exclusivo) f -> W si d=0

    Bit de estado

    Z

    Descripción

     

    Efectúa un Or lógico exclusivo entre el contenido de W y el contenido de f y almacena el resultado en f si d=1 o en W si d=0

     

     

     

     

    VOLVER

     

    BATERÍAS

    La batería que vamos a utilizar es la R6(Ni-mH).

    A continuación vemos sus características y sus dimensiones:

    R6 (Ni-mH) 4,9 x 1,4 cm 1.2 V 1400 mA 603-217 4,74

     

    VOLVER

     

    OTROS COMPONENTES

     

    Otros componentes son:

    L293 (Control de mando de motores)
    Condensadores 10uF
    BC547: transistor
    Cristal de cuarzo 4MHZ
    Condensadores 15-18pF
    LM317T: comparador

     

    VOLVER