You are on page 1of 21

Capacitacin Certificada, Componentes & Soluciones en Electrnica y

Programacin

Prctica II
Control de un LED a travs
de un Botn

www.novellius.com
contacto@novellius.com

www.novellius.com

ndice de Contenido
Objetivo............................................................................................................................................................................................................ 4
Solucin Propuesta................................................................................................................................................................................. 4
Material Requerido................................................................................................................................................................................... 4
Software Necesario................................................................................................................................................................................. 4
Desarrollo del Programa de Control en Lenguaje C........................................................................................................ 5
Acondicionamiento de la TEMPIC-45....................................................................................................................................... 12
Programacin del Microcontrolador........................................................................................................................................... 16
Comprobacin del Funcionamiento del Programa de Control................................................................................ 19
Prcticas Propuestas.............................................................................................................................................................................. 20

www.novellius.com

ndice de Figuras
Fig. 1

Ubicacin de PIC C Compiler en Windows 8...............................................................................................5

Fig. 2 Creacin de un nuevo archivo de cdigo fuente C para el PIC.........................................................5


Fig. 3 Eleccin de la ruta para guardar el archivo de cdigo fuente C.......................................................6
Fig. 4 Creacin de un proyecto para el archivo de cdigo fuente C............................................................6
Fig. 5 Incorporacin de un proyecto a un archivo de cdigo fuente C......................................................7
Fig. 6 Implementacin del PIC18F4550 en el proyecto de control...............................................................7
Fig. 7 Diagrama de Flujo de la lgica del programa de control.......................................................................8
Fig. 8 Compilacin del programa de control.................................................................................................................11
Fig. 9 Notificacin de compilacin exitosa del programa de control..........................................................11
Fig. 10 Colocacin del PIC en la Tarjeta Entrenadora...............................................................................................12
Fig. 11 Aseguramiento del Microcontrolador a la TEMPIC-45...........................................................................12
Fig. 12 Evitar alimentacin de la TEMPIC-45 mediante el programador de PICs................................13
Fig. 13 Alimentacin de la TEMPIC-45 por medio de una fuente externa................................................13
Fig. 14 Diagrama de la conexin de un botn al pin RA0 de la TEMPIC-45............................................14
Fig. 15 Conexin de un botn al pin RA0 de la TEMPIC-45.................................................................................14
Fig. 16 Conexin del programador de PICs a la TEMPIC-45................................................................................15
Fig. 17 Conexin del programador de PICs a una Interfaz USB........................................................................15
Fig. 18 Ubicacin del programa PICKit 2 Programmer v 2.XX en Windows 8......................................16
Fig. 19 Interfaz principal del programa PICKit 2 Programmer.........................................................................16
Fig. 20 Importacin del archivo compilado (.hex).........................................................................................................17
Fig. 21 Importacin exitosa del archivo Hexadecimal..............................................................................................17
Fig. 22 Notificacin de xito en la programacin del PIC.......................................................................................18
Fig. 23 Comprobacin que los LEDs encienden al presionar el botn........................................................19
Fig. 24 Comprobacin que los LEDs se apagan al soltar el botn..................................................................19

www.novellius.com

Objetivo
Introducir al estudiante a la programacin de entradas de datos para implementar un sencillo
sistema de control.

Solucin Propuesta
Este ejemplo consiste en encender los diodos LED de la tarjeta de desarrollo TEMPIC-45 cada vez
que un botn, conectado al microcontrolador sea presionado, y apagar los LEDs una vez que el
botn sea liberado.

Material Requerido
1) Tarjeta Entrenadora TEMPIC-45.
2) Programador para Microcontroladores PIC (PICKit 2 o equivalente).
3) Microcontrolador PIC18F45501.
4) Oscilador de 20 MHz.
5) Cables Dupont.
6) Push Button.
7) Resistencia de 220 .

Software Necesario
Compilador CCS PCWH IDE (PIC C Compiler) o superior.
http://www.ccsinfo.com/downloads.php

PICKit 2 Programmer o equivalente.


http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023805

1
Se pueden implementar una diversa varierdad de PICs. Vase el Manual de Usuario en la seccin Microcontroladores Compatibles.

www.novellius.com

Desarrollo del Programa de Control en


Lenguaje C
1) Abre la aplicacin PIC C Compiler.

Fig. 1

Ubicacin de PIC C Compiler en Windows 8.

2) Para crear un nuevo archivo de cdigo fuente C, pulsa sobre el men principal del programa y
elige New > Source File.

Fig. 2

Creacin de un nuevo archivo de cdigo fuente C para el PIC.

www.novellius.com
3) Elige la ruta donde deseas salvar el proyecto de control, edita el nombre del archivo a
LEDBoton.c y pulsa sobre el botn Guardar.

Fig. 3

Eleccin de la ruta para guardar el archivo de cdigo fuente C.

4) Para crear un nuevo proyecto, pulsa sobre el men principal del compilador y elige New > Project
Manual.

Fig. 4

Creacin de un proyecto para el archivo de cdigo fuente C.

www.novellius.com
5) Elige el archivo de cdigo fuente C previamente creado y pulsa sobre el botn Abrir.

Fig. 5

Incorporacin de un proyecto a un archivo de cdigo fuente C.

6) En la seccin llamada Target, selecciona el modelo de microcontrolador a implementar. Para


este ejemplo se elegir el PIC18F45501.

Fig. 6

Implementacin del PIC18F4550 en el proyecto de control.

1
Se pueden implementar una diversa varierdad de PICs. Vase el Manual de Usuario en la seccin
Microcontroladores Compatibles.

www.novellius.com
7) A continuacin se presenta un diagrama de flujo para comprender la lgica que debe seguir el
programa.
Incluir archivos
cabecera y libreras
necesarios.
Configurar fusibles

Mantener apagados
los LEDs del
Puerto B

Establecer el Puerto
B como Salida

No

Establecer el Puerto
A como entrada
digital

Ciclo Infinito

Fig. 7

El botn ha sido
presionado?

Si

Mantener
encendidos los LEDs
del Puerto B

Diagrama de Flujo de la lgica del programa de control.

8) Captura el siguiente cdigo sobre el archivo LEDBoton.c.


1. #include <18F4550.h>
2. #fuses HSPLL, PLL5
3. #use delay (clock = 20MHz)
4. #use fast_io(B)
5. #use fast_io(A)
6. void main(){

7.

set_tris_b(0x00);

8.

set_tris_a(0xFF);

9.

output_B(0x00);


10.

for(;;){

11.

if( input(PIN_A0) == 1 ){

12.

output_B(0xFF);

13.

14.

else{

15.

output_B(0x00);

16.

17.
18.

}
}

www.novellius.com
Cdigo 1-2

1. #include <18F4550.h>
2. #fuses HSPLL, PLL5

La lnea 1 declara la insercin del archivo cabecera correspondiente al PIC18F4550. Como


se mencion anteriormente, en este archivo se encuentran direccionados los puertos
del Microcontrolador a nombres ms fciles de entender. La lnea 2 incluye los fusibles2
mnimos necesarios para el programa de control.

Cdigo 3-5

3. #use delay (clock = 20MHz)


4. #use fast_io(B)
5. #use fast_io(A)

La lnea 3 declara la velocidad del reloj fsico implementado en el PIC, en este caso 20 MHz.
La lnea 4 junto con la lnea 5 declaran que los puertos B y A sern implementados como
E/S dependiendo del valor que se almacene en el registro TRISX de cada puerto.

Cdigo 6-8
6. void main(){

7.

set_tris_b(0x00);

8.

set_tris_a(0xFF);

La lnea 6 declara el comienzo del programa, es decir el mtodo principal. Ya que la directiva
#use fast_io(X) no modifica previamente el registro TRISX, es necesario declarar la lnea
7, la cual establece el valor cero hexadecimal en el registro TRISB. Esto configura al Puerto B
en su totalidad como salida digital de datos. La lnea 8 escribe el valor FF en hexadecimal en
el registro TRISA, para indicar que el Puerto A va a ser implementado como entrada digital
de datos.

Para conocer la totalidad de fusibles disponibles para la familia PIC18 visita el siguiente vnculo:
http://ww1.microchip.com/downloads/en/DeviceDoc/51537a.pdf

www.novellius.com
Cdigo 9-12
9.

output_B(0x00);


10.

for(;;){

11.

if( input(PIN_A0) == 1 ){

12.

output_B(0xFF);

La lnea 9 asigna el valor de cero hexadecimal al puerto B. Esto tendr como consecuencia
que inicialmente los LEDs de la TEMPIC-45 se muestren apagados. La lnea 10 es el
comienzo de un ciclo infinito para estar continuamente probando el valor del botn.En la
lnea 11 se pregunta si el botn conectado al Pin RA0 (Puerto A, bit 0) ha sido pulsado. En
caso de que esto sea verdadero, la lnea 12 encender los LEDs en su totalidad, los cuales
estn conectados al Puerto B. Esto se logra escribiendo en el puerto el valor FF hexadecimal.

Cdigo 13-18

13.

14.

else{

15.

output_B(0x00);

16.
17.

}
}

18. }

La lnea 13 es la llave de cierre de la condicin establecida en la lnea 11, la cual pregunta si


se ha presionado el botn. La lnea 14 se ejecuta cuando la condicin de la lnea 11 no se
cumple, es decir, cuando el botn conectado a RA0 no ha sido presionado. Es entonces
cuando la lnea 15 es ejecutada, escribiendo el valor cero en hexadecimal en el Puerto B, lo
cual ocasiona que los diodos LED de la tarjeta entrenadora se apaguen. La lnea 16 es la llave
que indica el cierre de la condicin escrita en la lnea 14. En seguida, la lnea 17 establece el
fin del ciclo infinito hallado en la lnea 10. Finalmente la lnea 18 indica que finaliza el mtodo
principal del programa.

10

www.novellius.com
9) Compila el programa pulsando sobre el botn Compile, que se halla en el apartado del mismo
nombre.

Fig. 8

Compilacin del programa de control.

10) Si el programa no presenta errores de sintaxis, deber aparecer el siguiente cuadro de dilogo.
De no ser as, se enlistarn los errores que existen junto con la lnea donde estn situados.

Fig. 9

Notificacin de compilacin exitosa del programa de control.

11

www.novellius.com

Acondicionamiento de la TEMPIC-45
1) Asegrate de que la palanca de la Base ZIF se encuentre en posicin vertical y coloca el PIC
corroborando que su muesca se encuentre en direccin hacia la palanca de la Base ZIF.

Fig. 10

Colocacin del PIC en la Tarjeta Entrenadora.

2) Asegura el Microcontrolador a la TEMPIC-45 deslizando la palanca de la Base ZIF hasta que


est totalmente horizontal.

Fig. 11

Aseguramiento del Microcontrolador a la TEMPIC-45.

12

www.novellius.com

3) Para alimentar la TEMPIC-45 desde el programador de PICs, coloca el jumper Selector de


Alimentacin desde el Programador en la posicin ON (Habilitado).

Fig. 12

Evitar alimentacin de la TEMPIC-45 mediante el programador de PICs.

4) Para completar la configuracin de alimentacin externa de la TEMPIC-45, corrobora de que el


jumper Selector de Entrada de Alimentacin se encuentre en la posicin EXT (Externa).

Fig. 13

Alimentacin de la TEMPIC-45 por medio de una fuente externa.

13

www.novellius.com
5) Con base en el siguiente diagrama esquemtico, realiza la conexin del Botn al PIC como se
indica.
+5V

220OHM

2
3
4
5
6
7
14
13
33
34
35
36
37
38
39
40

18

RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT/RCV
RA5/AN4/SS/LVDIN/C2OUT
RA6/OSC2/CLKO
OSC1/CLKI
RB0/AN12/INT0/FLT0/SDI/SDA
RB1/AN10/INT1/SCK/SCL
RB2/AN8/INT2/VMO
RB3/AN9/CCP2/VPO
RB4/AN11/KBI0/CSSPP
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD

VUSB

RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2/UOE
RC2/CCP1/P1A
RC4/D-/VM
RC5/D+/VP
RC6/TX/CK
RC7/RX/DT/SDO

RD0/SPP0
RD1/SPP1
RD2/SPP2
RD3/SPP3
RD4/SPP4
RD5/SPP5/P1B
RD6/SPP6/P1C
RD7/SPP7/P1D
RE0/AN5/CK1SPP
RE1/AN6/CK2SPP
RE2/AN7/OESPP
RE3/MCLR/VPP

15
16
17
23
24
25
26

19
20
21
22
27
28
29
30
8
9
10
1

PIC18F4550

Fig. 14

Diagrama de la conexin de un botn al pin RA0 de la TEMPIC-45.

6) Al finalizar las conexiones el resultado deber ser similar a la siguiente figura.


Nota. Existen mltiples formas de llevar a cabo la conexin del botn.

Fig. 15

Conexin de un botn al pin RA0 de la TEMPIC-45.

14

www.novellius.com
7) Conecta el programador de PICs (PICKit 2 o compatible) al Mdulo de Programacin de la
TEMPIC-45. Asegrate de que la secuencia de los pines est en perfecto orden.

Fig. 16

Conexin del programador de PICs a la TEMPIC-45.

8) Para energizar la TEMPIC-45, conecta el programador de PICs al puerto USB de tu equipo de


cmputo.

Fig. 17

Conexin del programador de PICs a una Interfaz USB.

15

www.novellius.com

Programacin del Microcontrolador


1) Ejecuta la aplicacin PICKit 2 Programmer (o equivalente).

Fig. 18

Ubicacin del programa PICKit 2 Programmer v 2.XX en Windows 8.

2) Verifica de que el programa reconozca el modelo del microcontrolador PIC, de lo contrario revisa
nuevamente el Acondicionamiento de la TEMPIC-45.

Fig. 19

Interfaz principal del programa PICKit 2 Programmer.

16

www.novellius.com

3) Para importar el archivo compilado del proyecto de control, pulsa sobre File > Import Hex. Navega
hasta la ruta donde salvaste el proyecto de control y elige el archivo llamado LEDBoton.hex.
Pulsa sobre el botn Abrir.

Fig. 20

Importacin del archivo compilado (.hex).

4) Una vez importado el archivo con extensin .hex, deber aparecer el aviso de xito en
la importacin. Si no es as, inspecciona nuevamente la conexin del programador de
Microcontroladores a la TEMPIC-45.

Fig. 21

Importacin exitosa del archivo Hexadecimal.

17

www.novellius.com
5) Pulsa sobre el botn Write para programar el PIC. Cuando el proceso haya finalizado se mostrar
la siguiente notificacin informando que la programacin del Microcontrolador ha sido exitosa.

Fig. 22

Notificacin de xito en la programacin del PIC.

18

www.novellius.com

Comprobacin del Funcionamiento del


Programa de Control
1) Pulsa y mantn presionado el botn, ahora observa como los LEDs de la TEMPIC-45 han
encendido, mientras mantengas pulsado el botn los LEDs permanecern iluminados.

Fig. 23

Comprobacin que los LEDs encienden al presionar el botn.

2) Ahora suelta el botn y comprueba como los diodos LED de la tarjeta entrenadora han dejado
de iluminarse.

Fig. 24

Comprobacin que los LEDs se apagan al soltar el botn.

19

www.novellius.com

Prcticas Propuestas
Nuevamente se presentan algunas prcticas para que demuestres tus habilidades en la
programacin de microcontroladores. Estos retos comprenden la Prctica I y II que acompaan a
la TEMPIC-45.

1) Realiza un programa el cual simule el control de una lmpara por medio de dos apagadores,
bajo los siguientes criterios:

a. Utiliza el LED en RB0 para simular la lmpara.


b. Conecta dos Push Buttons en RB1 y RB2 para simular los apagadores.
c. Inicialmente la lmpara deber encontrarse apagada.
d. Cualquiera de los dos botones podrn encender o apagar la lmpara, no importando
el botn que encendi o la apag primero. Por ejemplo: si el apagador en RB1 es
presionado, la lmpara enciende. Si cualquiera de los dos apagadores es pulsado la
lmpara deber apagarse.

2) Disea un programa para simular una cerradura electrnica basndote en los siguientes
puntos.

a. Utiliza los LEDs de RB0 hasta RB3 para simular los indicadores de confirmacin de la
contrasea o la alarma, en caso de una secuencia incorrecta.
b. Conecta 4 botones de RB4 a RB7 para introducir la combinacin de la cerradura.
c. Sea el switch conectado en RB4 el botn A, RB5 el botn B, RB6 el botn C y RB7 el
botn D respectivamente.
d. La combinacin correcta para abrir la cerradura deber ser: A-A-C-D-B, cualquier otra
combinacin activa la alarma.
e. Al introducir la combinacin correcta los LEDs de RB0 a RB3 se encendern, para
indicar que la combinacin es correcta.
f. Una vez abierta la cerradura se proceder a esperar 10 segundos y se deber volver a
cerrar, esperando una nueva combinacin.
g. Si al introducir una combinacin un caracter no coincide con la secuencia correcta,
se activar la alarma haciendo parpadear los LEDs de RB0 a RB3 por 10 segundos.
Despus se deber esperar nuevamente alguna contrasea.

20

www.novellius.com

Para descargar las prcticas propuestas, adems de conocer la totalidad de cursos y productos en
electrnica que ofrecemos visita:
www.novellius.com
o escrbenos todas tus inquietudes y comentarios a:

contacto@novellius.com

Tienes dudas acerca de esta Prctica?

Hchale un vistazo a nuestro Curso Bsico de Microcontroladores, el cual te impartimos a tu propio


ritmo, con instructores calificados y sin salir de tu escuela.

Para preguntas acerca de soporte tcnico escrbenos a:

soporte@novellius.com

You might also like