Practica 1

Práctica 5 – ADC

Introducción

En esta práctica se implementa la lectura de un puerto ADC a través de una variación de voltaje con un potenciómetro y se despliega el valor analógico a través de LEDs.


 

Descripción

En esta práctica se implementa una lectura analógica, utilizando un potenciómetro, el cual se conecta al módulo X-TRAINER LITE con el PIC18F45K50. El potenciómetro se conecta en el pin A0, el cual se configura como entrada y señal analógica. Para visualizar dicha lectura se utilizan 8 LEDs, conectados al puerto B, de tal manera que pueda observarse el incremento o decremento de voltaje del potenciómetro.


Materiales:

1 x Módulo X-TRAINER LITE. Comprar
8 x Resistencias 220 ohms. Comprar
8 x LEDs. Comprar
1 x Potenciómetro 10 Kohms. 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
MICROSIDE v1.0 Descarga


Procedimiento

1. En el apartado de “Diagrama Esquemático”, que se encuentra a continuación, 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 y realiza la compilación. En el siguiente link encontrarás un manual para compilar en PIC C Compiler.
4. Abre el Software MICROSIDE 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 MICROSIDE v1.0.
5. Al terminar de programar, el módulo se reiniciará y el programa de esta práctica se ejecutará.


Diagrama esquemático

Código


Código

/*

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

FECHA: JUNIO 2019

*/

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

Implementar una lectura analógica de un potenciómetro y desplegar el valor

en 8 LEDs

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

#include <18F45K50.h>                                    //Para PIC18F4550 cambiar por: #include <18F4550.h>

#DEVICE ADC=8                                            //Configura el ADC a 8 bits

#use delay(internal=48MHz)                           //Tipo de oscilador y frecuencia dependiendo del microcontrolador 

#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 ValorPot;                                                      //Variable para almacenar el valor leído del ADC

void SisInit(void)

{

set_tris_b (0X00);                                             //Configura todo el puerto B como salidas digitales

setup_adc_ports (sAN0);                                  //Configura solo el puerto A0 como entrada analógica

setup_adc (ADC_CLOCK_INTERNAL);     //Configura oscilador interno para la conversión

}

 

void main()

{

              SisInit () ;

 

              while (1)

                    {

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

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

                          if (ValorPot <= 28)                          //Compara el valor de el ADC con 28

                                {

                                    output_b (0b00000000);          // Leds activos
                                }

                           else if (ValorPot <= 56)                    //Compara el valor de el ADC con 56

                                {

                                    output_b (0b00000001);          // Leds activos
                                }

                            else if (ValorPot <= 84)                 //Compara el valor de el ADC con 84

                                {

                                    output_b (0b00000011);       // Leds activos

                                }

                           else if (ValorPot <= 112)                //Compara el valor de el ADC con 112

                                {

                                      output_b (0b00000111);      // Leds activos

                                }

                           else if (ValorPot <= 140)                //Compara el valor de el ADC con 140

                                {

                                      output_b (0b00001111);       // Leds activos

                                }

                            else if (ValorPot <= 168)               //Compara el valor de el ADC con 168

                                 {

                                        output_b (0b00011111);    // Leds activos

                                 }

                             else if (ValorPot <= 196)               //Compara el valor de el ADC con 196

                                 {

                                         output_b (0b00111111);    // Leds activos

                                 }

                             else if (ValorPot <= 252)               //Compara el valor de el ADC con 252

                                 {

                                       output_b (0b01111111);      // Leds activos

                                 }

                             else if (ValorPot <= 255)               //Compara el valor de el ADC con 255

                                   {

                                        output_b (0b11111111);    // Leds activos

                                    }

               }

}


Descargas

Software MICROSIDE v1.0

Descarga el software MICROSIDE v1.0 


Práctica 5 – PIC – Bootloader-PIC C Compiler

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



¿Tienes alguna duda?