Práctica 14 – Motor DC + Infrarrojo

 

 

INTRODUCCIÓN

 

En esta práctica se implementa el control de un motor de corriente directa, usando los módulos PWM y ADC a través de un sensor SHARP para variar la velocidad. La velocidad del motor, depende de la distancia que haya entre un objeto y el sensor infrarrojo.

 

 

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 realiza el control de velocidad de un motor DC, usando los módulos internos ADC y PWM por medio de un sensor Sharp conectado a los módulos X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28, con el PIC18F45K50 o el PIC18F25K50.

 

Materiales:

1 x Módulo X-TRAINER P8 o X-TRAINER P8 DIP40 o X-TRAINER P8 DIP28. Comprar

1 x Sensor IR Sharp GP2Y0A021. Comprar

1 x Motor DC 9 a 12 volts.

1 x Transisitor NPN 2N3904.

1 x Diodo 1N4001.

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

*/

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

Esta práctica consiste en variar la velocidad de un motor por medio de un sensor

SHARP usando los modulos PWM y ADC.

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

 

#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

//-------------------------------------------------------------------------------

int VALOR_ADC;                                                         //Variable para almacenar el valor leído del ADC

void SisInit()

{

    setup_timer_2 (T2_DIV_BY_16, 254, 16);                       //Configura Timer2

    setup_ccp1 (CCP_PWM|CCP_SHUTDOWN_AC_L|CCP_SHUTDOWN_BD_L);    //Configura el módulo CCP para uso del PWM

    setup_adc_ports (sAN3);                                               //Configura solo el puerto A3 como entrada analógica

    setup_adc (ADC_CLOCK_INTERNAL);

}

void main(void)

{

     SisInit();

     while (1)

          {

               set_adc_channel (3);                                                       //Selecciona el canal 0 para la conversión

               VALOR_ADC = read_adc ()*1.53;                                     //Lee el valor del ADC y lo guarda en la variable

               set_pwm1_duty (VALOR_ADC);                                       //Salida Pin_C2

          }

}

 

 

Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 14 – PIC – Bootloader – CCS

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

 

ARDUINO

Descripción

En esta práctica se realiza el control de velocidad de un motor DC, usando los módulos internos ADC y PWM por medio de un sensor Sharp conectado a los módulos X-UNO, X-MEGA o X-NANO.

 

Materiales:

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

1 x Módulo Programador XCU. Comprar

1 x Sensor IR Sharp GP2Y0A021. Comprar

1 x Motor DC 9 a 12 volts.

1 x Transisitor NPN 2N3904.

1 x Diodo 1N4001.

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

*/

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

Esta práctica consiste en variar la velocidad de un motor por medio de un sensor

SHARP usando los modulos PWM y ADC.

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

int MOTOR = 9;                                                        //Nombramos el pin 9
int pinPot = A2;                                                        //Nombramos el pin A2
int valorPot = 0;
 
void setup()
{
pinMode(MOTOR, OUTPUT);
}
 
void loop()
{
valorPot = analogRead(pinPot);                       //Se lee valor del sensor
valorPot = map(valorPot, 0, 1024, 0, 255);      //Convertimos ese valor de 10 bits a 8 bits
analogWrite(MOTOR, valorPot);                      //Mandamos los pulsos al motor
}

 

 

Descargas

Práctica 14 – Arduino

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

Fecha

agosto 13, 2019

Categoría

Prácticas XIDE

× WhatsApp