Práctica 15 – Servomotor

 

INTRODUCCIÓN

 

En esta práctica se implementa el control de giro de un servomotor usando el módulo PWM. El servomotor podrá girar a las siguientes posiciones: 0°, 90° y 180°.

 

 

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, usando el PWM de los módulos X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28 con el PIC18F45K50 o PIC18F25K50. El servomotor podrá girar en las siguientes posiciones: 0º, 90º, 180º.

 

Materiales:

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

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.

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 posicíon de un servo por medio del módulo PWM interno
**************************************************************************/

#include <18F45K50.h>                      // Incluye la librería para el PIC ( para X-TRAINERp8DIP28: #include <18F25K50.h> )
#device ADC=8                                  // 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 DURY;                                       //variable para ajustar el valor del PWM
int1 SUBE;
int i;

void SisInit()
{
  set_tris_c(0xFB);                                 // C2 salida
  setup_timer_0( T0_INTERNAL|T0_DIV_4);
  enable_interrupts(INT_TIMER0);
  enable_interrupts(GLOBAL);

}

#int_TIMER0

 
void TIMER0_isr(){
output_high( PIN_C2);                              //Salida Pin_C2 50Hz
SUBE=1;
set_timer0(5780);                                      // 20 miliSegundos
}

void main()
{
        SisInit();
        while(1)
              {

                    for(i=0;i<255;i++)
                         {
                             if(SUBE==1)
                             {
                                delay_us(500); //0°
                                 output_low( PIN_C2);
                                 SUBE=0;
                              }
                                while(SUBE==0);
                            }

                      for(i=0;i<255;i++)
                           {
                              if(SUBE==1)
                               {
                                  delay_us(1500); //90°
                                   output_low( PIN_C2);
                                   SUBE=0;
                                }
                                while(SUBE==0);
                          } 

                        for(i=0;i<255;i++)
                               {
                                  if(SUBE==1)
                                  {
                                      delay_us(2500); //180°
                                      output_low( PIN_C2);
                                       SUBE=0;
                                   }
                                  while(SUBE==0);
                                    }

                 }
}

 

 

Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 15 – PIC – Bootloader – CCS

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

AVR
MikroC PRO
MikroC PRO
Programador XCU
Programador XCU

Descripción

En esta práctica se implementa el control de giro de un servomotor, usando el PWM de los módulos X-UNO o X-NANO. El servomotor podrá girar en las siguientes posiciones: 0º, 90º, 180º.

 

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 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
      *****************************************
      Control de la posición de un Servomotor con PWM con un  AVR
      *****************************************/

      #define SERVO_ON PORTB |= (1<<PORTB1)                          //Se define SERVO_ON que envia en alto el pin B1
      #define SERVO_OFF PORTB &= ~(1<<PORTB1)                     //Se define SERVO_OFF  que envia en bajo el pin B1
      unsigned int i = 0;                                                                        //Variable para los for
      unsigned int q = 0;                                                                       //Variable para los for principal
      unsigned int Ta = 2;                                                                     //Tiempo minimo en alto
      unsigned int Tb = 198;                                                                //Tiempo maximo en bajo
                                                                                                          //Ta+Tb = 200. Es igual a 20ms de ciclo de trabajo 

      void PWM()                                                                                 //Subrutina ciclo de trabajo
      {
        for(i=0;i<=Ta;i++)                                                                      //Tiempo en alto
        {
          SERVO_ON;
          Delay_us(100);                                                                      //Retardo en 100 us = .1 ms
        }
        for(i=Tb;i>=1;i--)                                                                      //Tiempo en bajo
        {
          SERVO_OFF;
          Delay_us(100);                                                                     //Retardo en 100 us = .1 ms
        }
      }
      void main() {
        while(1)
        {
         PWM();                                                                                  //Se llama a la subrutina ciclo de trabajo
         Delay_ms(1000);
         Ta=10; 
         Tb=190;                                                                                //Tiempo de ciclo para 90°
         PWM();                                                                                 //Se llama a la subrutina ciclo de trabajo
         Delay_ms(1000);
         Ta=20; 
         Tb=180;                                                                               //Tiempo de ciclo para 180°
         PWM();                                                                                //Se llama a la subrutina ciclo de trabajo
         Delay_ms(1000);
         Ta=2; 
         Tb=198;                                                                               //Tiempo de ciclo inicial 0°
         }
       }

 

 

Descargas

 

Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 15-XCU-AVR

Descargar el código en mikroC PRO for AVR de la práctica 15.

ARDUINO

Descripción

En esta práctica se implementa el control de giro de un servomotor usando el PWM de los módulos X-UNO, X-MEGA o X-NANO. El servomotor podrá girar a las siguientes posiciones: 0º, 90º, 180º. 

 

Materiales:

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

1 x Módulo Programador XCU. 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 servo por medio del módulo PWM interno.

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

#include <Servo.h>                                                        // Incluimos la librería para poder controlar el servo
Servo servoMotor;                                                         // Declaramos la variable para controlar el servo
void setup() {
  servoMotor.attach(9);                                                   // Iniciamos el servo para que empiece a trabajar con el pin 9
}

void loop() {
   servoMotor.write(0);                                                    // Desplazamos a la posición 0º
   delay(1000);                                                                // Esperamos 1 segundos
   servoMotor.write(90);                                                  // Desplazamos a la posición 90º
   delay(1000);                                                                // Esperamos 1 segundo
   servoMotor.write(180);                                                // Desplazamos a la posición 180º
   delay(1000);                                                                // Esperamos 1 segundo
}

 

 

Descargas

Práctica 15 – Arduino

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

Fecha

agosto 13, 2019

Categoría

Prácticas XIDE

× WhatsApp