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
AVR
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.

AVR
MikroC PRO
MikroC PRO
Programador XCU
Programador XCU

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-UNO o X-NANO.

 

Materiales:

1 x Módulo X-UNOX-NANO. Comprar

1 x Módulo Programador XCU. Comprar

1 x Módulo X-AVR. Comprar

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.

MikroC PRO for AVR. 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, verifica en el apartado de librerías que este seleccionada la necesaria para esta práctica como se muestra en la siguiente imagen y realiza la compilación. En el siguiente link encontrarás un manual para compilar en MikroC PRO for AVR.

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-UNO
X-UNO

 

Código

 

Código

 

/****************************************
AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.
FECHA OCTUBRE 2019
*****************************************
Contol de posición de un Servomotor mediante un Potenciometro con  AVR
*****************************************/

#define SERVO_ON PORTB |= (1<<PORTB1)                            //Se define SERVO_ON que envía en alto el pin B1

#define SERVO_OFF PORTB &= ~(1<<PORTB1)                       //Se define SERVO_OFF que envía  en bajo el pin B1

unsigned int ValorPot;                                                                   //Variable para la lectura del pot
unsigned int i = 0;                                                                          //Variable para los for del pulso
unsigned int Tam = 2;                                                                    //Tiempo minimo en alto
unsigned int TbM = 198;                                                               //Tiempo maximo en bajo
                                                                                                      //Tam + TbM = 200. Es igual a 20ms de ciclo de trabajo 
unsigned int Al = 0;                                                                       //Variable de tiempo en alto
unsigned int Ba = 0;                                                                      //Variable de tiempo en bajo
unsigned int Pasos = 0;                                                                //Pasos

void SERVO()                                                                               //Subrutina ciclo de trabajo
{
   for(i=0;i<=Al;i++)                                                                        //Tiempo en alto
   {
    SERVO_ON;
    Delay_us(100);                                                                          //Retardo en 100 us = .1 ms
   }
    for(i=Ba;i>=1;i--)                                                                        //Tiempo en bajo
   {
    SERVO_OFF;
    Delay_us(100);                                                                         //Retardo en 100 us = .1 ms
     }
 }
void main()
 {
   ADC_Init_Advanced (_ADC_INTERNAL_REF);                    //Voltaje de referencia a VDD
   while (1)
   {
     ValorPot = ADC_Get_Sample (0);                                      //Leer el valor del pot
     Pasos=ValorPot*.0195;                                                      //ValorPot * .0195 para que el valor de Pasos no sea mayor que 20
     Al=Tam+Pasos;                                                                  //Asigna valor de tiempo en alto de 2 a 22
     Ba=TbM-Pasos;                                                                 //Asigna valor de tiempo en bajo de 198 a 178
     SERVO();                                                                           //Se llama a la subrutina ciclo de trabajo
     }
 }

 

Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 16-XCU-AVR

Descargar el código en mikroC PRO for AVR 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