6.4 Cellsnake
6.4.4 Combining the Forces
Los PIC poseen un oscilador configurable por programa de características muy amplias. Cuando no se requiere mucha precisión se puede trabajar con un oscilador a RC conectado según la figura 5.8.
Figura 5.8. Clock a RC.
Para circuitos que requieran una gran precisión se puede trabajar con un cristal de frecuencia baja, media o alta (figura 5.9). Como máximo el PIC16C84 puede trabajar con un cristal de 10MHz. Internamente la frecuencia del cristal se divide por 4, por lo tanto, es muy común la utilización de un cristal de 4MHz para obtener un CLOCK interno de 1MHz que garantiza que cada instrucción dure exactamente 1mS. Para temporizadores de período largo se utilizan cristales de baja frecuencia.
Figura 5.9. Clock a cristal.
5.2.5 El reset.
El PIC “se resetea” cuando la pata 4 (MCLR negada) se pone a potencial bajo. Para simplificar el circuito de reset el PIC posee un temporizador interno que permite realizar un reset automático cuando se aplica tensión de 5V. En estos casos el circuito externo de reset sólo implica el uso de un resistor de 10kΩ entre la pata 4 y fuente tal como se
muestra en la figura 5.10.
Figura 5.10. Reset automático.
En muchos circuitos es necesario realizar un reset manual y para ello existen dos posibilidades, una es utilizar sólo el temporizador interno (por programa) y la otra es agregar una constante de tiempo exterior como se muestra en la figura 5.11.1.
Instituto Po lité c nic o Na c io na l E S I M E
En la figura 5.11.2 C1 provee un retardo al encendido o posterior al pulsado de reset porque C1 se cargará lentamente a través de R1 con una constante de tiempo de 22kx 10µF = 220mS. El resistor R3 limita la corriente de descarga de C1 a valores compatibles con sus características de corriente de pico máxima.
D1 descarga a C1 cuando la tensión de fuente decae para permitir un reset inmediato cuando la fuente se apaga y se enciende en rápida sucesión. R2 limita la corriente de reset, tomada desde el microprocesador. Este segundo sistema se suele utilizar cuando se requiere un reseteado remoto a través de varios metros de cable que podrían captar zumbido (C1 reduce la impedancia del circuito de reset).
Figura 5.11.2. Circuito de reset manual 2.
5.2.6 Conversor analógico digital (A/D).
Se utiliza para tomar datos de varias entradas diferentes que se seleccionan mediante un multiplexor. Como es muy frecuente el trabajo con señales analógicas, éstas deben ser convertidas a digital
5.2.7 Puerto serie.
Este periférico está presente en forma de UART (Universal Asynchronous Receiver Transmitter) o USART (Universal Synchronous Asynchronous Receiver Transmitter) dependiendo de si permiten o no el modo sincrónico de comunicación serial.
El destino común de este periférico es la comunicación con otro microcontrolador o con una PC y en la mayoría de los casos hay que agregar circuitos externos para completar la interfaz de comunicación.
5.2.8 Modulador de Ancho de Pulsos(PWM).
Los PWM (Pulse Width Modulator) son periféricos muy útiles sobre todo para el control de motores, sin embargo hay un grupo de aplicaciones que pueden realizarse con este periférico, dentro de las cuales podemos citar: la conversión digital analógica D/A, el control regulado de luz (dimming) entre otras.
5.3 Características de un microcontrolador.
De acuerdo a la estructura de un PIC, este debe presentar las siguientes características:
Memoria Flash y ROM disponible desde 256 bytes a 256 kilobytes.
Memoria RAM de hasta 224 Bytes.
Puertos de E/S (típicamente 0 a 5,5 voltios).
Temporizadores de 8/16 bits.
Periféricos serie síncronos y asíncronos: USART, UART.
Conversores analógico/digital de 8-10-12 bits.
Comparadores de tensión.
Módulos de captura y comparación PWM.
Memoria EEPROM interna con duración de hasta un millón de ciclos de
lectura/escritura.
Periféricos de control de motores.
Oscilador interno corriendo a una frecuencia de 4MHz.
5.4
PIC’s más utilizados.
Los microcontroladores son diseñados para disminuir el costo económico y el consumo de energía de un sistema en particular. Por eso el tamaño de la CPU, la cantidad de memoria y los periféricos incluidos dependerán de la aplicación.
A continuación se presentan los PIC`s más utilizados de acuerdo a las propiedades mencionadas anteriormente:
-PIC12C508/509 (encapsulamiento reducido de 8 pines, oscilador interno, popular en pequeños diseños como el iPod remoto).
Instituto Po lité c nic o Na c io na l E S I M E
-PIC16F84A (Buena actualización del anterior, algunas versiones funcionan a 20 MHz, compatible 1:1).
-PIC12F629/675. -PIC16F628.
-PIC16F88 (Nuevo sustituto del PIC16F84A con más memoria, oscilador interno, PWM, etc. que podría convertirse en popular como su hermana menor).
-La familia PIC16F87X y PIC16F87XA (los hermanos mayores del PIC16F84 y PIC16F84A, con cantidad de mejoras incluidas en hardware. Bastante común en proyectos de aficionados).
-PIC18F2455 y similares con puerto USB 2.0. -PIC18F2550.
-PIC18F452. -PIC18F4550.
-dsPIC30F3011 (Ideales para control electrónico de motores eléctricos de inducción). -PIC32 (Nueva gama de PIC de 32 bits).
5.5 Programadores.
Para transferir el código de un ordenador al PIC normalmente se usa un dispositivo llamado programador.
Para que un PIC funcione como el usuario quiere es preciso “cargarle” un programa en la “memoria de programa”. El programa debe estar en un lenguaje comprensible por el chip, o sea un lenguaje de máquina en código binario. Aunque en realidad al PIC se le debe introducir un programa en código hexadecimal e internamente lo convierte a binario para realizar su interpretación. El programa que debemos cargarle al PIC en código hexadecimal tiene que tener la terminación “hex”.
Sin embargo, normalmente se debe escribir “editar” el programa en un lenguaje entendible por el usuario, normalmente conocido como “assembler”. Los PIC basan su programación en un set reducido de instrucciones que permiten editar el programa generando un archivo con extensión “asm”.
Existen programas que se encargan de “traducir” el programa escrito en lenguaje assembler (asm) a programa escrito en lenguaje de máquina (hex); a estos programas se los denomina traductores o ensambladores. Por lo tanto, para escribir un programa y cargarlo en un PIC se precisa:
• Un utilitario o programa que nos permita escribir el juego de sentencias a cargar en la memoria de programa del PIC. Este utilitario es un “editor” y como ejemplo tenemos el MPLAB.
• Un utilitario o programa que nos permita “traducir” el programa escrito en assembler a lenguaje de máquina para que podamos cargarlo en el PIC. A ese programa se lo denomina “ensamblador” y como ejemplo tenemos al MPASM.
• Un utilitario para “cargar” el archivo que tiene el programa en lenguaje de máquina (archivo con extensión hex) en la memoria del PIC. A estos programas se los denomina “cargadores” y como ejemplo tenemos al NOPPP, al PIC PRO y a tantos otros.
Pero también existen otros utilitarios que permiten “simular” y “emular” un programa para ver cómo se comporta antes de cargarlo en el PIC.
El simulador permite detectar errores en el programa (el MPLAB permite simular) para poder corregirlos. El emulador permite que “una computadora se comporte como PIC” siendo las patas del puerto, las correspondientes a las del PIC. Esto quiere decir que si se quiere hacer circuitos con PICs, para poder predisponerlo adecuadamente se precisa:
• Programa MPLAB: Para editar (escribir) un programa en lenguaje assembler y así generar el archivo con extensión asm. El MPLAB también permite “simular” el funcionamiento del programa para detectar errores y corregirlos.
• Programa MPASM: Para “ensamblar” o convertir el archivo asm en archivo hex con el objeto de cargarlo en el PIC.
• Programa NOPPP: O cualquier otro cargador que permita ingresar el archivo con extensión hex en la memoria de programa del PIC. También se puede emplear cualquier otro cargador, hasta incluso se podrían cargar los datos manualmente.
Todos los programas cargadores precisarán de un circuito “eléctrico” o hardware para poder realizar la función de carga.
5.5.1 Cargadores de PIC`s.
Anteriormente se mencionó que un cargador de PIC debe poseer por un lado el circuito que permita cargar el programa desde una computadora (hardware) y el - programa que permita manejar a dicho circuito para realizar la operación de carga (software). El circuito debe ser muy simple.
Instituto Po lité c nic o Na c io na l E S I M E
Entre los cargadores de PIC`s más conocidos se encuentran:
PICStart Plus (puerto serie y USB).
Se conecta a través de la serie de puerto RS-232 a la PC y es operado con Microchip del entorno de desarrollo integrado del paquete de software llamado MPLAB IDE que se incluye con el programador.
Promate II (puerto serie).
Se ejecuta bajo MPLAB IDE y funciona como una unidad independiente o en combinación con una PC compatible con sistema host. En la actualidad ya no se encuentra en producción.
MPLAB PM3 (puerto serie y USB).
Funciona con una PC o como una unidad autónoma. Cuando se usa independiente, los datos pueden ser cargados y guardados en la tarjeta SD/MMC. Se ejecuta bajo toda la línea Microchip PIC. Se conecta a través de la serie puerto RS-232 o interfaz USB
ICD2 (puerto serie y USB).
Se ejecuta bajo MPLAB IDE y se conecta a un puerto USB o a la interfaz RS-232. Ahora bien, si no se cuenta con un dispositivo programador ya sea porque es muy costoso, o no se encuentran al alcance del mercado, entonces se puede armar también un dispositivo programador de PICs que se conecte al puerto paralelo de una PC (el puerto de impresora, por ejemplo).
La intención es que se construya un dispositivo para programar PIC`s que sea muy sencillo de modo que se pueda armar en el mismo protoboard y se conecte a la PC por medio de un cable (USB, por ejemplo).
Como se mencionó anteriormente, un dispositivo para una PC (hardware), siempre necesita un programa que lo controle (software). La intención es que no se compre nada más que lo imprescindible; así que se puede usar un software gratuito llamado NOPPP que puede bajarse por Internet. Además de bajar este programa, se puede encontrar también el MPLAB, el MPASM y otros programas y utilitarios.
Hay que recordar que cuando se dice “programar” se está refiriendo a diseñar un programa para un PIC y a la persona que realizó ese trabajo se le llama “programador”; cuando se dice “cargar” se está refiriendo a llenar con datos la memoria de un PIC y el dispositivo que realiza esta función se le llama “cargador de PICs”.
Navegando por Internet es posible encontrar gran cantidad de programas cargadores de PICs de manera gratuita, Algunos de estos programadores se presentan a continuación:
NOPPP es un programa de uso libre ampliamente difundido que sirve para cargar PICs del tipo 16C84, 16F83 y 16F84, pero también se dan otros cargadores con sus respectivos programas, que sirven para otros componentes.
PICPRO es un programador avanzado en relación con el NOPPP y sirve para ser montado cuando no se quieren correr riesgos con la PC que se está utilizando para cargar PICs y cuando se desea tener un trabajo libre de errores (el NOPPP es un programa para aprendizaje).
El Programador Universal sirve para programar: 12C508, 12C509, 12C67X, 16C55X, 16C61, 16C62X, 16C71, 16C71X, 16C8X, 16F8X, 16F873/4/6/7, 16C73/74/76/77. También programa memorias EEPROM de la serie 24LCXX.
PIC800 es un programador para 16C84, 16F84, 16F873/74/76/77.
C
APÍTULO 6
I
CAPITULO 6
SERVOMOTORES
6.1 SERVOMOTOR
Un servomotor — conocido generalmente como servo — es un dispositivo electromecánico actuador que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y de mantenerse estable en dicha posición. Está formado por un motor de corriente continua, una caja reductora y un circuito de control, y su margen de funcionamiento generalmente es de menos de una vuelta completa. En la figura 1 se muestra el diagrama de un servomotor.
El servomotor se utiliza frecuentemente en la práctica para posicionar superficies de control como el movimiento de palancas, pequeños ascensores y timones. Ellos también se usan en radio control, títeres, y por supuesto, en robots, pero su uso no está limitado a estos.
6.1.1 Características generales
Los servomotores tienen un amplificador de error, servo motor, conversor de ancho de pulso, motor y un potenciómetro de realimentación; todo incorporado en el mismo conjunto.
Un servomotor de posición tiene tres cables de conexión eléctrica; VCC, GND, y entrada de control. En la figura 6.1 se muestra el diagrama de un servomotor.
Instituto Po lité c nic o Na c io na l E S I M E
La línea punteada indica un acople mecánico, mientras que las líneas continuas indican conexión eléctrica
El ángulo de posición de un servomotor está determinado por el ancho de pulso que tiene la señal de entrada, lo cual también se determinara al mismo tiempo el grado de posición del servomotor.
. En la siguiente figura se muestra la estructura física de un servomotor.
Figura 6.2. Estructura física interna de un servomotor.
6.2 Funcionamiento de un servomotor.
El motor del servo tiene algunos circuitos de control y un potenciómetro (una resistencia variable) esta es conectada al eje central del servo motor.
En la figura se puede observar al lado derecho del circuito. Este potenciómetro permite a la circuitería de control, supervisar el ángulo actual del servo motor. Si el eje está en el ángulo correcto, entonces el motor está apagado. Si el circuito chequea que el ángulo no es el correcto, el motor girará en la dirección adecuada hasta llegar al ángulo correcto.
El eje del servo es capaz de llegar alrededor de los 180 grados. Normalmente, en algunos llega a los 210 grados, pero varía según el fabricante. Un servo normal se usa para controlar un movimiento angular de entre 0 y 180 grados. Un servo normal no es mecánicamente capaz de retornar a su lugar, si hay un mayor peso que el sugerido por las especificaciones del fabricante.
Dependiendo del modelo del servo, la tensión de alimentación puede estar comprendida entre los 4 y 8 voltios. El control de un servo se reduce a indicar su posición mediante una señal cuadrada de voltaje: el ángulo de ubicación del motor depende de la duración del nivel alto de la señal.
6.2.1 Angulo de posición del servomotor.
El cable de control se usa para comunicar el ángulo. El ángulo está determinado por la duración de un pulso que se aplica al alambre de control. A esto se le llama PCM Modulación codificada de Pulsos. El servo espera ver un pulso cada 20 milisegundos (0.02 segundos). La longitud del pulso determinará los giros de motor. Un pulso de 1.5 ms., por ejemplo, hará que el motor se torne a la posición de 90 grados (llamado la posición neutra). Si el pulso es menor de 1.5 ms., entonces el motor se acercará a los 0 grados. Si el pulso es mayor de 1.5ms, el eje se acercará a los 180 grados.
Cada servo, dependiendo de la marca y modelo utilizado, tiene sus propios márgenes de operación. Por ejemplo, para algunos servos los valores de tiempo de la señal en alto están entre 1 y 2 ms, que posicionan al motor en ambos extremos de giro (0° y 180°, respectivamente) como se muestra en la figura 6.3. Los valores de tiempo de alto para ubicar el motor en otras posiciones se halla mediante una relación completamente lineal: el valor 1,5 ms indica la posición central, y otros valores de duración del pulso dejarían al motor en la posición proporcional a dicha duración.
Figura 6.3. Ejemplos de señales de control utilizadas, y sus respectivos resultados de posición del servomotor
Es sencillo notar que, para el caso del motor anteriormente mencionado, la duración del pulso alto para conseguir un ángulo de posición θ estará dada por la fórmula:
Instituto Po lité c nic o Na c io na l E S I M E
Sin embargo, debe tenerse en cuenta que ningún valor —de ángulo o de duración de pulso— puede estar fuera del rango de operación del dispositivo: en efecto, el servo tiene un límite de giro —de modo que no puede girar más de cierto ángulo en un mismo sentido— debido a la limitación física que impone el potenciómetro del control de posición.
Para bloquear el servomotor en una posición, es necesario enviarle continuamente la señal con la posición deseada. De esta forma, el sistema de control seguirá operando, y el servo conservará su posición y se resistirá a fuerzas externas que intenten cambiarlo de posición. Si los pulsos no se envían, el servomotor quedará liberado, y cualquier fuerza externa puede cambiarlo de posición fácilmente.
La figura 6.4 se muestra como la posición del servo tiene una proporción lineal con el ancho del pulso utilizado.
Figura 6.4. Ejemplo de una comparación entre el funcionamiento interno de un servomotor
En la figura 6.5 mostrada a continuación se representa el tiempo al que el servomotor responde para tener una acción o movimiento adecuado, ya que no se le puede asignar un nivel de grados muy cercano al que estamos tomando como referencia, porque no daría tiempo a que la señal respondiera adecuadamente y por lo tanto no se daría el movimiento deseado por el usuario.
.
Figura 6.5. Tiempos de respuesta de un Servomotor.
6.3 Tipos de servomotores.
En este tema se describen las características mas comunes referente a los tipos de servomotores y su construcción de cd y ca.
6.3.1 Servomotores de CD
Los servomotores de CD son motores impulsados por una corriente que procede de amplificadores eléctricos de CD o CA con demoduladores internos o externos, reactores saturables o amplificadores rectificadores controlados de silicio.
Los servomotores de CD son de muchos tamaños, desde .05 hp hasta 1000 hp.
Las características fundamentales que se deben buscar en cualquier servomotor de cd o ca, son las siguientes:
Que el par de salida del motor sea aproximadamente proporcional a su voltaje de
control aplicado (desarrollado por el amplificador).
Que la dirección del par éste determinada por la polaridad instantánea del voltaje de
control.
Se usan cinco tipos de servomotores de CD, que son los más importantes, los cuales son los que en los temas posteriores se enunciaran.
6.3.1.1 Servomotor de corriente continúa.
Un servomotor de este tipo es básicamente un motor eléctrico que sólo se puede girar en un ángulo de aproximadamente 180 grados (no dan vueltas completas como los motores normales). De los tres cables que salen de su cubierta.
El rojo es de voltaje de alimentación (+5V), el negro es de tierra (0V ó GND). El cable blanco (a veces amarillo) es el cable por el cual se le instruye al servomotor en qué posición ubicarse (entre 0 grados y 180).
6.3.1.2 Servomotor de cd de campo controlado.
El par que produce este motor es cero cuando el amplificador de error de cd no le suministra excitación de campo. Como la corriente de armadura es constante, el par varía directamente de acuerdo con el flujo del campo y también de acuerdo con la corriente de campo hasta la saturación.
Instituto Po lité c nic o Na c io na l E S I M E
Si se invierte la polaridad del campo, se invierte la dirección del motor. El control de la corriente del campo mediante este método se usa solo en servomotores muy pequeños, debido a que no es deseable suministrar una corriente de armadura grande y fija como la que se necesitaría para los servomotores de cd.
6.3.1.3 Servomotor de cd de armadura controlada.
Este servomotor emplea una excitación de campo de cd fija que suministra una fuente de corriente constante. Este tipo de control, posee determinadas ventajas dinámicas que no tienen el método de control de campo.
Un cambio súbito en el voltaje de armadura que ocasiones una señal de error provocara una respuesta casi instantánea en el par debido a que el circuito de armadura es esencialmente resistivo en comparación con el circuito de campo altamente inductivo. El campo de este motor se trabaja en forma normal bastante más allá del punto máximo de la curva de saturación, para mantener el par menos sensible a pequeños cambios en el voltaje de la fuente de corriente constante.