Control de servo

Niple es un entorno de programación para microcontroladores PIC de Microchip que permite programar los mismos mediante diagrama de flujo. Es muy intuitivo y sencillo de utilizar, lo que nos va a permitir realizar cosas complejas en poco tiempo. En este tutorial veremos como configurar y utilizar un servo motor.

En nuestro proyecto utilizaremos además del servo motor: un display LCD de 16 caracteres por 2 filas, un microcontrolador PIC16F648A, un par de resistencias y dos pulsadores.

Paso 1: Configurando los dispositivos

El primer paso será declarar los dispositivos a utilizar. Para esto vamos a la barra de herramientas y pulsamos el botón «Declaración de dispositivos».

F54KZDVIJ353C48.LARGE

Display LCD:

Declaramos el display LCD siguiendo la ruta: «Nuevo Dispositivo – Visualización – LCD». En el campo tipo elegimos el valor «16×2», y en bus de datos «4 bits». La configuración de pines es la siguiente:

RB7 >>> DATO 7
RB6 >>> DATO 6
RB5 >>> DATO 5
RB4 >>> DATO 4
RB3 >>> E
RB2 >>> RS

FUDCA39IJ3537YF.LARGE

Servo Motor:

Declaramos el servo motor siguiendo la ruta: «Nuevo Dispositivo – Motor – Motor Servo». Luego configuramos el «Pin de control» RA0 y un registro donde almacenaremos el control (de 0 a 180 grados) con el rango de valores de 0 a 255.

FKQWOU7IJ353AAL.LARGE

Paso 2: Programación visual

La primer parte de nuestro programa es la configuración de puertos, es decir, decirle al microcontrolador que pines serán entradas y cuales serán salida.

FWZU0GUIJ353FW9.LARGE

Además de los pines que ya ocupamos para el servo y el display, necesitaremos dos adicionales para los pulsadores. La función de los mismos será incrementar el ángulo de giro en un sentido u otro. Conectaremos de la siguiente forma:

RA6 >>> Pulsador incremento (+)
RA7 >>> Pulsador decremento (-)

Una vez declarados los pines, debemos insertar el bloque de inicialización del display LCD. El mismo tiene las rutinas necesarias para el buen funcionamiento del dispositivo. Insertamos desde «Bloques > Dispositivos > Pantalla LCD > Inicializar».

FQBWKZGIJ353G4Q.LARGE

Paso 3: Control del servo

Para controlar el servo, simplemente incrementamos (o decrementamos) el valor del registro de control mediante la acción de un pulsador y enviamos mediante el bloque «Motores Servo > Control». En nuestro código de ejemplo enviamos el valor del registro control a la pantalla LCD para poder compararlo con el ángulo de giro que nos mostrará el simulador Proteus.

FI7I50JIJ353IVR.LARGE

Paso 4: Simulación en Proteus

Niple genera el archivo HEX que podremos cargar en la memoria de nuestro microcontrolador virtual y realizar la simulación.

A tener en cuenta que para que el dispositivo servo de Proteus funcione adecuadamente, hay que configurar algunos parámetros:

Minimum Angle: 0
Maximum Angle: 180
Rotional Speed: 50
Minimum Control Pulse: 544u
Maximum Control Pulse: 2400u

FM555J5IJ35352P.LARGE

Una vez cargado el código y configurado el servo, solo resta presionar la tecla «Play» del simulador, e interactuar con los pulsadores para mover en uno u otro sentido el servo.

FPRUN2SIJ3536C0.LARGE

El archivo «Ejemplo de control de un servo.zip» contiene el esquema, el código fuente, el archivo HEX, el proyecto Niple y el proyecto de simulación.

Ejemplo de control de un servo

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on TumblrPin on PinterestDigg thisShare on RedditEmail this to someonePrint this page