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
AVR
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 5 a 12 volts. Comprar

1 x Transistor NPN 2N3904. Comprar

1 x Diodo 1N4001. 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 LITE
X-TRAINER P8
X-TRAINER P8 DIP 40
X-TRAINER P8 DIP 28
X-TRAINER P8 LITE

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 módulos PWM y ADC.

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

 

#include <18F45K50.h>                                                // Incluye la librería para el PIC ( para X-TRAINERp8 DIP28: #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 3 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.

 

AVR
Atmel Studio 7
Atmel Studio 7
Programador XCU
Programador XCU

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 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 Sensor IR Sharp GP2Y0A021. Comprar

1 x Motor DC 9 a 12 volts. Comprar

1 x Transistor NPN 2N3904. Comprar

1 x Diodo 1N4001. Comprar

1 x Pila de 9 volts. Comprar

1 x Conector para pila cuadrada de 9 volts. 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.

Atmel Studio 7. 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, ejecuta Atmel Studio 7, pega el código en un nuevo proyecto y 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 tu proyecto en Atmel Studio 7. En el siguiente link encontrarás un manual de Atmel Studio para programador XCU.

5. Al terminar de programar, 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: JUNIO 2019
*/
/**************************************************************************
Esta práctica consiste en variar la velocidad de un motor por medio de un sensor SHARP usando los módulos PWM y ADC.
**************************************************************************/
#define F_CPU 16000000
#include <avr/io.h>
#include <util/delay.h>
int Sharp;

void SistIni ()
{
    ADMUX|= (1<<REFS0);                                                                  // Selecciona Vref
    ADCSRA|= (1<<ADPS2)| (1<<ADPS1)| (1<<ADPS0)| (1<<ADEN); //Habilita ADC.
    DDRD = 0xFF;                                                                                  //Inicializa el puerto D como salida.
}

   uint16_t ReadADC (uint8_t ADCchannel)
{
     ADMUX = (ADMUX&0xF0)| (ADCchannel&0x0F);                         //Selecciona el canal del ADC.
     ADCSRA|= (1<<ADSC);                                                                 //Modo de conversión única.
     while (ADCSRA& (1<<ADSC));                                                      //Espera hasta que se complete la conversión de ADC.
     return ADC;
}

int main(void)
{
  SistIni ();
    DDRD|=(1<<6);                                                                                //PIN OC0A como salida obligatorio para PWM.
    TCCR0A=0b10000011;                                                                    //PWM por el OC0A, no invertido.
    TCCR0B=0b00000001;
    OCR0A=0;


  while(1)
 {
   Sharp = ReadADC(0);                                                                          //Lectura del valor del potenciómetro.
   Sharp = Sharp/2;                                                                                 //Convertimos ese valor a 8 bits.
   OCR0A = Sharp;                                                                                  //Asignamos el valor.
   _delay_ms(2);                                                                                     //Retardo de 2 milisegundos.
  }
}

 

 

Descargas

Práctica 14-AVR-XCU

Descargar código en Atmel Studio 7 de la práctica 14.

 

Fecha

agosto 13, 2019

Categoría

Prácticas CCS-AS7

EnglishSpanish