Práctica 8 – PWM

INTRODUCCIÓN

 

En esta práctica se regula la intensidad luminosa de un LED, para ello se configura un PWM (modulación por ancho de pulso).

 

Selecciona la plataforma y entorno de programación.

 

 

PIC
AVR
PIC
PIC C Compiler
PIC C Compiler
Bootloader X-TRAINER
Bootloader X-TRAINER

Descripción

En esta práctica se implementa un control PWM para regular la intensidad luminosa de un LED, el cual está conectado al pin C2 de 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 Resistencia 220 ohms. Comprar

1 x LED. Comprar

1 x Protoboard de 830 puntos. Comprar

1 x Juego de cables Dupont. 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 practica consiste en realizar un control PWM

para regular la luminosidad de un led

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

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

#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

unsigned int16 Duty=0;                                                 //Variable para guardar el valor para PWM

void SisInit(void)

{

setup_timer_2 (T2_DIV_BY_16, 254, 1);                        //Configura Timer2, periodo ajustado a 342uS

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

}

 

void main()

   {

     SisInit();

 

      while (TRUE)

         {

             for (Duty = 0; Duty < 255; Duty++)

                  {

                      set_pwm1_duty (Duty);                       //Asigna el valor del Duty al PWM

                      delay_ms (5);                                      //Retardo de 5ms

                  }


              for (Duty = 255; Duty > 0; Duty–)                 // Ciclo para disminuir el valor de la variable

                   {

                       set_pwm1_duty (Duty);                       //Asigna el valor del Duty al PWM

                       delay_ms (5);                                     //Retardo de 5ms

              }
        }
}

 

 

 

Descargas

Software XIDE v1.0

Descarga el software XIDE v1.0 

Práctica 8 – PIC – Bootloader – CCS

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

AVR
Atmel Studio 7
Atmel Studio 7
Programador XCU
Programador XCU

Descripción

En esta práctica se implementa un control PWM para regular la intensidad luminosa de un LED, el cual está conectado al pin D6 de 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 Resistencia 220 ohms. Comprar

1 x LED. Comprar

1 x Juego de cables 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-NANO
X-UNO

X-NANO

 

Código 

Código
“]

/**

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

FECHA: JUNIO 2019

*/

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

Esta práctica consiste en realizar un control PWM para regular la luminosidad de un LED

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

#define F_CPU 16000000

#include <avr/io.h>

#include <util/delay.h>

int c;

int main(void)

{

     DDRD|=(1<<6);                                                                             //PIN OC0A como salida oblifatorio para PWM

     TCCR0A=0b10000011;                                                                //PWM por el OC0A, no invertido,

     TCCR0B=0b00000001;

     OCR0A=0;

while(1)

     {

         for (OCR0A=0;OCR0A<255;OCR0A++)

         {

         _delay_ms(2);

         }

         for (OCR0A=255;OCR0A>0;OCR0A–)

         {

         _delay_ms(2);

         }

     }

}

 

Descargas

Práctica 8-AVR-XCU

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

 

Fecha

julio 16, 2019

Categoría

Prácticas CCS-AS7

EnglishSpanish