Práctica 16 – Servomotor + Potenciómetro

 

INTRODUCCIÓN

 

En esta práctica se implementa el control de giro de un servomotor a través de un potenciómetro. Se usa el módulo PWM para el control del servomotor y el módulo ADC para variar la posición por medio del potenciómetro.

 

 

Selecciona la plataforma y entorno de programación.

 

 

PIC
ARDUINO
PIC
PIC C Compiler
PIC C Compiler
Bootloader PIC18FX5K50
Bootloader PIC18FX5K50

Descripción

En esta práctica se implementa el control de giro de un servomotor, a través de un potenciómetro. Se usa el módulo PWM para el control del servomotor y el módulo ADC para variar la posición por medio del potenciómetro conectado a los módulos X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28 con el PIC18F45K50 o PIC18F25K50.

 

Materiales:

1 x Módulo X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28Comprar

1 x Servomotor SG90.

1 x Potenciometro de 10 KOhms. Comprar

1 x Juego de cable Dupont. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Cable micro USB.

 

Software:

Windows 7 o posterior.

PIC C Compiler v5.069 o posterior. Descarga

XIDE v1.0 Descarga

 

Procedimiento

1. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu módulo, realiza las conexiones que se muestran en la imagen y conéctalo a la computadora.

2. Al final de esta práctica, en el apartado de "Descargas", puedes encontrar los archivos del código fuente, o bien copiarlo del apartado de "Código" que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, abre el compilador, pega el código en un nuevo proyecto. En el siguiente link encontrarás un manual para compilar en PIC C Compiler.

4.Abre el Software XIDE v1.0 y programa el código que descargaste o compilaste en el módulo. En el siguiente link encontrarás el manual de usuario para el Software XIDE v1.0. 

5.Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.

 

Diagrama esquemático

 

X-TRAINER P8
X-TRAINER P8 DIP 40
X-TRAINER P8 DIP 28
X-TRAINER P8

X-TRAINER P8 DIP 40

X-TRAINER P8 DIP 28

 

Código

Código

/*

AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

FECHA: JUNIO 2019

*/

/**************************************************************************

Controlar la posición de un servomotor por medio de un potenciometro

utilizando los modulos PWM y ADC

**************************************************************************/

#include <18F45K50.h>                                         // Incluye la librería para el PIC ( para X-TRAINERp8DIP28: #include <18F25K50.h> )

#device ADC=10                                                   // Configura el ADC a 8 bits

#use delay(internal=48MHz)                                   // Configura frecuencia del oscilador interno

#build(reset=0x02000,interrupt=0x02008)               // Asigna los vectores de reset e interrupción para la versión con bootloader

#org 0x0000,0x1FFF {}                                         // Reserva espacio en memoria para el bootloader

 

//-------------------------------------------------------------------------------
int16 Duty;                                                             //variable para ajustar el valor del PWM

int1 SUBE;

#int_TIMER0

void TIMER0_isr()

{

output_high( PIN_C2);                                                //Salida Pin_C2 50Hz

SUBE=1;

set_timer0(5780);                                                         // 20 miliSegundos

}

void main()

{

  set_tris_c (0xFB);                                                           // C2 salida de pulsos

  setup_timer_0 (T0_INTERNAL|T0_DIV_4);

  enable_interrupts (int_TIMER0) ;

enable_interrupts (GLOBAL) ;

  setup_adc_ports (sAN3);                                                  //configuracion deL canal ADC en A0

  setup_adc (ADC_CLOCK_INTERNAL);

  set_adc_channel (3);                                                         //conversion analogica por canal 0

    while(1)

         {

                if (SUBE == 1)

               {

                    delay_us (DUTY);

                    output_low (PIN_C2) ;

                     SUBE = 0;

                 }

 

                  if (SUBE == 0)

                      {

                          DUTY = read_adc ();                                                            //lectura del potenciometro

                          DUTY = DUTY * 2;                                                             //ajuste de rango según cada motor

                          DUTY += 500;

                          }

 

                           while (SUBE == 0) ;

                }

}

 

 

Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 16– PIC – Bootloader – CCS

Descargar código en PIC C Compiler de la práctica 16.

ARDUINO

Descripción

En esta práctica se implementa el control de giro de un servomotor, a través de un potenciómetro. Se usa el módulo PWM para el control del servomotor y el módulo ADC para variar la posición por medio del potenciometro conectado a los módulos X-UNO o X-MEGA o X-NANO.

 

Materiales:

1 x Módulo X-UNO o X-MEGA o X-NANO. Comprar

1 x Módulo Programador XCU. Comprar

1 x Potenciometro de 10 KOhms. Comprar

1 x Servomotor SG90.

1 x Juego de cable Dupont. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Cable micro USB.

 

Software:

Windows 7 o posterior.

Arduino IDE. Descarga

 

Procedimiento

1. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu módulo, realiza las conexiones que se muestran en la imagen y conéctalo a la computadora.

2. Al final de esta práctica, en el apartado de "Descargas", puedes encontrar los archivos del código fuente, o bien copiarlo del apartado de "Código" que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, abre el software Arduino IDE, pega el código en un nuevo proyecto, realiza la compilación. 

4. Programa el código que descargaste o compilaste, en el módulo. En el siguiente link encontrarás un manual para compilar y programar en Arduino IDE.

5. Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.

 

Diagrama esquemático

 

X-UNO
X-MEGA
X-NANO
X-UNO

X-MEGA

X-NANO

 

Código

Código

/*

AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

FECHA: JUNIO 2019

*/

/**************************************************************************

Controlar la posición de un servomotor por medio de un potenciometro

utilizando los módulos PWM y ADC.

**************************************************************************/

#include <Servo.h>

Servo servoMotor;                                          // Declaramos la variable para controlar el servo

int POSICION;

void setup() {

   servoMotor.attach(9);                                     // Iniciamos el servo para que empiece a trabajar con el pin 9

}


void loop() {

   POSICION = analogRead(A0);                       // Lee voltaje del potenciometro

   POSICION = POSICION/3;                            // acopla el paso para el motor

   servoMotor.write(POSICION);                        // Desplaza a la posición

}

 

 

Descargas

Práctica 16 – Arduino

Descarga código en Arduino de la práctica 16.

Fecha

agosto 13, 2019

Categoría

Prácticas XIDE

× WhatsApp