TEMPIC-45 Práctica II. Control de un LED a través de un botón

21
www.novellius.com [email protected] Capacitación Certificada, Componentes & Soluciones en Electrónica y Programación Práctica II Control de un LED a través de un Botón

Transcript of TEMPIC-45 Práctica II. Control de un LED a través de un botón

Page 1: TEMPIC-45 Práctica II. Control de un LED a través de un botón

[email protected]

Capacitación Certificada, Componentes & Soluciones en Electrónica y Programación

Práctica II

Control de un LED a través de un Botón

Page 2: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

Índice de Contenido

Objetivo ........................................................................................................................................................................................................... 4

Solución Propuesta ................................................................................................................................................................................ 4

Material Requerido .................................................................................................................................................................................. 4

Software Necesario ................................................................................................................................................................................ 4

Desarrollo del Programa de Control en Lenguaje C ....................................................................................................... 5

Acondicionamiento de la TEMPIC-45 ...................................................................................................................................... 12

Programación del Microcontrolador .......................................................................................................................................... 16

Comprobación del Funcionamiento del Programa de Control ............................................................................... 19

Prácticas Propuestas ............................................................................................................................................................................. 20

Page 3: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

Índice de Figuras

Fig. 1 Ubicación de PIC C Compiler en Windows 8®. .............................................................................................5

Fig. 2 Creación de un nuevo archivo de código fuente C para el PIC. .......................................................5

Fig. 3 Elección de la ruta para guardar el archivo de código fuente C. .....................................................6

Fig. 4 Creación de un proyecto para el archivo de código fuente C. ..........................................................6

Fig. 5 Incorporación de un proyecto a un archivo de código fuente C. ....................................................7

Fig. 6 Implementación del PIC18F4550 en el proyecto de control. .............................................................7

Fig. 7 Diagrama de Flujo de la lógica del programa de control. .....................................................................8

Fig. 8 Compilación del programa de control. ...............................................................................................................11

Fig. 9 Notificación de compilación exitosa del programa de control. ........................................................11

Fig. 10 Colocación del PIC en la Tarjeta Entrenadora. .............................................................................................12

Fig. 11 Aseguramiento del Microcontrolador a la TEMPIC-45. .........................................................................12

Fig. 12 Evitar alimentación de la TEMPIC-45 mediante el programador de PICs. ..............................13

Fig. 13 Alimentación de la TEMPIC-45 por medio de una fuente externa................................................13

Fig. 14 Diagrama de la conexión de un botón al pin RA0 de la TEMPIC-45. ..........................................14

Fig. 15 Conexión de un botón al pin RA0 de la TEMPIC-45. ...............................................................................14

Fig. 16 Conexión del programador de PICs a la TEMPIC-45. ..............................................................................15

Fig. 17 Conexión del programador de PICs a una Interfaz USB. ......................................................................15

Fig. 18 Ubicación del programa PICKit 2 Programmer v 2.XX en Windows 8®. ....................................16

Fig. 19 Interfaz principal del programa PICKit 2® Programmer. .......................................................................16

Fig. 20 Importación del archivo compilado (.hex). .......................................................................................................17

Fig. 21 Importación exitosa del archivo Hexadecimal. ............................................................................................17

Fig. 22 Notificación de éxito en la programación del PIC. .....................................................................................18

Fig. 23 Comprobación que los LEDs encienden al presionar el botón. ......................................................19

Fig. 24 Comprobación que los LEDs se apagan al soltar el botón. ................................................................19

Page 4: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

4

Objetivo

Introducir al estudiante a la programación de entradas de datos para implementar un sencillo sistema de control.

Solución Propuesta

Este ejemplo consiste en encender los diodos LED de la tarjeta de desarrollo TEMPIC-45 cada vez que un botón, conectado al microcontrolador sea presionado, y apagar los LEDs una vez que el botón 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&dDoc-Name=en023805

1 Se pueden implementar una diversa varierdad de PICs. Véase el Manual de Usuario en la sección “Microcontro-ladores Compatibles“.

Page 5: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

5

Desarrollo del Programa de Control en Lenguaje C

1) Abre la aplicación PIC C Compiler.

Fig. 1 Ubicación de PIC C Compiler en Windows 8®.

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

Fig. 2 Creación de un nuevo archivo de código fuente C para el PIC.

Page 6: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

6

3) Elige la ruta donde deseas salvar el proyecto de control, edita el nombre del archivo a “LEDBoton.c“ y pulsa sobre el botón Guardar.

Fig. 3 Elección de la ruta para guardar el archivo de código fuente C.

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

Fig. 4 Creación de un proyecto para el archivo de código fuente C.

Page 7: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

7

5) Elige el archivo de código fuente C previamente creado y pulsa sobre el botón Abrir.

Fig. 5 Incorporación de un proyecto a un archivo de código fuente C.

6) En la sección llamada Target, selecciona el modelo de microcontrolador a implementar. Para este ejemplo se elegirá el PIC18F45501.

Fig. 6 Implementación del PIC18F4550 en el proyecto de control.

1 Se pueden implementar una diversa varierdad de PICs. Véase el Manual de Usuario en la sección “Microcontroladores Compatibles“.

Page 8: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

8

7) A continuación se presenta un diagrama de flujo para comprender la lógica que debe seguir el programa.

Fig. 7 Diagrama de Flujo de la lógica del programa de control.

8) Captura el siguiente código 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. }

Incluir archivos cabecera y librerías

necesarios. Configurar fusibles

Establecer el Puerto B como Salida

Establecer el Puerto A como entrada

digitalCiclo Infinito ¿El botón ha sido

presionado? SiMantener

encendidos los LEDs del Puerto B

No

Mantener apagados los LEDs del

Puerto B

Page 9: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

9

Código 1-2

1. #include <18F4550.h>

2. #fuses HSPLL, PLL5

La línea 1 declara la inserción del archivo cabecera correspondiente al PIC18F4550. Como se mencionó anteriormente, en este archivo se encuentran direccionados los puertos del Microcontrolador a nombres más fáciles de entender. La línea 2 incluye los fusibles2 mínimos necesarios para el programa de control.

Código 3-5

3. #use delay (clock = 20MHz)

4. #use fast_io(B)

5. #use fast_io(A)

La línea 3 declara la velocidad del reloj físico implementado en el PIC, en este caso 20 MHz. La línea 4 junto con la línea 5 declaran que los puertos B y A serán implementados como E/S dependiendo del valor que se almacene en el registro TRISX de cada puerto.

Código 6-8

6. void main(){

7. set_tris_b(0x00);

8. set_tris_a(0xFF);

La línea 6 declara el comienzo del programa, es decir el método principal. Ya que la directiva #use fast_io(X) no modifica previamente el registro TRISX, es necesario declarar la línea 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 línea 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.

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

Page 10: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

10

Código 9-12

9. output_B(0x00);

10. for(;;){

11. if( input(PIN_A0) == 1 ){

12. output_B(0xFF);

La línea 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 línea 10 es el comienzo de un ciclo infinito para estar continuamente probando el valor del botón.  En la línea 11 se pregunta si el botón conectado al Pin RA0 (Puerto A, bit 0) ha sido pulsado. En caso de que esto sea verdadero, la línea 12 encenderá los LEDs en su totalidad, los cuales están conectados al Puerto B. Esto se logra escribiendo en el puerto el valor FF hexadecimal.

Código 13-18

13. }

14. else{

15. output_B(0x00);

16. }

17. }

18. }

La línea 13 es la llave de cierre de la condición establecida en la línea 11, la cual pregunta si se ha presionado el botón. La línea 14 se ejecuta cuando la condición de la línea 11 no se cumple, es decir, cuando el botón conectado a RA0 no ha sido presionado. Es entonces cuando la línea 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 línea 16 es la llave que indica el cierre de la condición escrita en la línea 14. En seguida, la línea 17 establece el fin del ciclo infinito hallado en la línea 10. Finalmente la línea 18 indica que finaliza el método principal del programa.

Page 11: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

11

9) Compila el programa pulsando sobre el botón Compile, que se halla en el apartado del mismo nombre.

Fig. 8 Compilación del programa de control.

10) Si el programa no presenta errores de sintaxis, deberá aparecer el siguiente cuadro de diálogo. De no ser así, se enlistarán los errores que existen junto con la línea donde están situados.

Fig. 9 Notificación de compilación exitosa del programa de control.

Page 12: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

12

Acondicionamiento de la TEMPIC-45

1) Asegúrate de que la palanca de la Base ZIF se encuentre en posición vertical y coloca el PIC corroborando que su muesca se encuentre en dirección hacia la palanca de la Base ZIF.

Fig. 10 Colocación 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.

Page 13: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

13

3) Para alimentar la TEMPIC-45 desde el programador de PICs, coloca el jumper Selector de Alimentación desde el Programador en la posición “ON” (Habilitado).

Fig. 12 Evitar alimentación de la TEMPIC-45 mediante el programador de PICs.

4) Para completar la configuración de alimentación externa de la TEMPIC-45, corrobora de que el jumper Selector de Entrada de Alimentación se encuentre en la posición “EXT” (Externa).

Fig. 13 Alimentación de la TEMPIC-45 por medio de una fuente externa.

Page 14: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

14

5) Con base en el siguiente diagrama esquemático, realiza la conexión del Botón al PIC como se indica.

Fig. 14 Diagrama de la conexión de un botón al pin RA0 de la TEMPIC-45.

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

Nota. Existen múltiples formas de llevar a cabo la conexión del botón.

Fig. 15 Conexión de un botón al pin RA0 de la TEMPIC-45.

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA3/AN3/VREF+5

RA4/T0CKI/C1OUT/RCV6

RA5/AN4/SS/LVDIN/C2OUT7

RA6/OSC2/CLKO14

OSC1/CLKI13

RB0/AN12/INT0/FLT0/SDI/SDA33

RB1/AN10/INT1/SCK/SCL34

RB2/AN8/INT2/VMO35

RB3/AN9/CCP2/VPO36

RB4/AN11/KBI0/CSSPP37

RB5/KBI1/PGM38

RB6/KBI2/PGC39

RB7/KBI3/PGD40

RC0/T1OSO/T1CKI15

RC1/T1OSI/CCP2/UOE16

RC2/CCP1/P1A17

VUSB18

RC4/D-/VM23

RC5/D+/VP24

RC6/TX/CK25

RC7/RX/DT/SDO26

RD0/SPP019

RD1/SPP120

RD2/SPP221

RD3/SPP322

RD4/SPP427

RD5/SPP5/P1B28

RD6/SPP6/P1C29

RD7/SPP7/P1D30

RE0/AN5/CK1SPP8

RE1/AN6/CK2SPP9

RE2/AN7/OESPP10

RE3/MCLR/VPP1

PIC18F4550

220OHM

+5V

Page 15: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

15

7) Conecta el programador de PICs (PICKit 2® o compatible) al Módulo de Programación de la TEMPIC-45. Asegúrate de que la secuencia de los pines esté en perfecto orden.

Fig. 16 Conexión 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 cómputo.

Fig. 17 Conexión del programador de PICs a una Interfaz USB.

Page 16: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

16

Programación del Microcontrolador

1) Ejecuta la aplicación PICKit 2® Programmer (o equivalente).

Fig. 18 Ubicación 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.

Page 17: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

17

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 botón Abrir.

Fig. 20 Importación del archivo compilado (.hex).

4) Una vez importado el archivo con extensión “.hex”, deberá aparecer el aviso de éxito en la importación. Si no es así, inspecciona nuevamente la conexión del programador de Microcontroladores a la TEMPIC-45.

Fig. 21 Importación exitosa del archivo Hexadecimal.

Page 18: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

18

5) Pulsa sobre el botón Write para programar el PIC. Cuando el proceso haya finalizado se mostrará la siguiente notificación informando que la programación del Microcontrolador ha sido exitosa.

Fig. 22 Notificación de éxito en la programación del PIC.

Page 19: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

19

Comprobación del Funcionamiento del Programa de Control

1) Pulsa y mantén presionado el botón, ahora observa como los LEDs de la TEMPIC-45 han encendido, mientras mantengas pulsado el botón los LEDs permanecerán iluminados.

Fig. 23 Comprobación que los LEDs encienden al presionar el botón.

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

Fig. 24 Comprobación que los LEDs se apagan al soltar el botón.

Page 20: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

20

Prácticas Propuestas

Nuevamente se presentan algunas prácticas para que demuestres tus habilidades en la programación de microcontroladores. Estos retos comprenden la Práctica I y II que acompañan a la TEMPIC-45.

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

a. Utiliza el LED en RB0 para simular la lámpara.

b. Conecta dos Push Buttons en RB1 y RB2 para simular los apagadores.

c. Inicialmente la lámpara deberá encontrarse apagada.

d. Cualquiera de los dos botones podrán encender o apagar la lámpara, no importando

el botón que encendió o la apagó primero. Por ejemplo: si el apagador en RB1 es

presionado, la lámpara enciende. Si cualquiera de los dos apagadores es pulsado la

lámpara deberá apagarse.

2) Diseña un programa para simular una cerradura electrónica basándote en los siguientes puntos.

a. Utiliza los LEDs de RB0 hasta RB3 para simular los indicadores de confirmación de la

contraseña o la alarma, en caso de una secuencia incorrecta.

b. Conecta 4 botones de RB4 a RB7 para introducir la combinación de la cerradura.

c. Sea el switch conectado en RB4 el botón A, RB5 el botón B, RB6 el botón C y RB7 el

botón D respectivamente.

d. La combinación correcta para abrir la cerradura deberá ser: A-A-C-D-B, cualquier otra

combinación activa la alarma.

e. Al introducir la combinación correcta los LEDs de RB0 a RB3 se encenderán, para

indicar que la combinación es correcta.

f. Una vez abierta la cerradura se procederá a esperar 10 segundos y se deberá volver a

cerrar, esperando una nueva combinación.

g. Si al introducir una combinación un caracter no coincide con la secuencia correcta,

se activará la alarma haciendo parpadear los LEDs de RB0 a RB3 por 10 segundos.

Después se deberá esperar nuevamente alguna contraseña.

Page 21: TEMPIC-45 Práctica II. Control de un LED a través de un botón

www.novellius.com

Para descargar las prácticas propuestas, además de conocer la totalidad de cursos y productos en electrónica que ofrecemos visita:

www.novellius.com

o escríbenos todas tus inquietudes y comentarios a:

[email protected]

¿Tienes dudas acerca de esta Práctica?

Héchale un vistazo a nuestro Curso Básico de Microcontroladores, el cual te impartimos a tu propio ritmo, con instructores calificados y sin salir de tu escuela.

Para preguntas acerca de soporte técnico escríbenos a:

[email protected]