SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Capacitación Certificada, Componentes & Soluciones en Electrónica y 
Programación 
Práctica IV 
Voltímetro de CD 
Revisión 2 
www.novellius.com 
contacto@novellius.com
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......................................................................................................................................14 
Programación del Microcontrolador..........................................................................................................................................19 
Comprobación del Funcionamiento del Programa de Control...............................................................................21 
Prácticas Propuestas.............................................................................................................................................................................22
www.novellius.com 
Índice de Figuras 
Fig. 1 Creación de un archivo de código fuente C.......................................................................................................5 
Fig. 2 Inserción de un nuevo manual de proyecto al archivo de código fuente C...............................5 
Fig. 3 Diagrama de la lógica del programa de control..............................................................................................6 
Fig. 4 Descripción de los fusibles implementados en el programa de control......................................7 
Fig. 5 Expresión para obtener el tiempo ideal de la Conversión A/D...........................................................9 
Fig. 6 Cálculo de la escala de Voltaje....................................................................................................................................10 
Fig. 7 Expresión para obtener el Voltaje del Potenciómetro................................................................................10 
Fig. 8 Desglose de la función “printf“ para la impresión en un Display LCD........................................... 11 
Fig. 9 Muestra de un valor Entero sin Signo en la Pantalla LCD....................................................................... 11 
Fig. 10 Mostrar un valor entero sin signo y un valor flotante en una Pantalla LCD............................... 12 
Fig. 11 Compilación del programa de control................................................................................................................... 13 
Fig. 12 Confirmación de éxito en la compilación............................................................................................................ 13 
Fig. 13 Colocación del Microcontrolador en la TEMPIC-45..................................................................................... 14 
Fig. 14 Conexión de la Pantalla LCD a la TEMPIC-45.................................................................................................. 14 
Fig. 15 Comprobación de la conexión de la Pantalla LCD a la TEMPIC-45................................................. 15 
Fig. 16 Conexión del programador de PICs a la TEMPIC-45.................................................................................. 15 
Fig. 17 Alimentación deshabilitada desde el Programador de PICs................................................................. 16 
Fig. 18 Configuración de la TEMPIC-45 para Alimentación mediante la Interfaz USB..................... 16 
Fig. 19 Diagrama de conexión de una Pantalla LCD al PIC18F4550................................................................ 17 
Fig. 20 Conexión de una Pantalla LCD a la TEMPIC-45............................................................................................. 17 
Fig. 21 Diagrama de conexión de un Potenciómetro al pin RA0 del PIC18F4550................................. 18 
Fig. 22 Conexión de un Potenciómetro al pin RA0 de la TEMPIC-45.............................................................. 18 
Fig. 23 Ventana principal del PICKit 2® Programmer................................................................................................... 19 
Fig. 24 Importación del archivo compilado del código fuente C......................................................................... 19 
Fig. 25 Programación exitosa del Microcontrolador.....................................................................................................20 
Fig. 26 Verificación del funcionamiento de la solución de control.................................................................... 21
www.novellius.com 
4 
Objetivo 
Desarrollar un programa de control involucrando algunos tópicos intermedios de programación de 
PICs, como el control de una Pantalla LCD de 16x2 caracteres, así como la implementación de una 
Conversión Analógico/Digital (A/D). 
Solución Propuesta 
Este ejemplo consiste en realizar la conversión Analógico/Digital (A/D) de una señal proveniente 
de un potenciómetro, alimentado con +5V como voltaje de referencia. Posteriormente mostrar en 
el Display LCD de 16x2 caracteres, tanto el valor de la conversión A/D, como el voltaje asociado al 
potenciómetro. 
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) Potenciómetro de 100 KΩ (o cualquier otro valor de tu elección). 
7) Display LCD de 16x2 Caracteres. 
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 variedad de PICs. Véase el Manual de Usuario en la sección “Microcontro-ladores 
Compatibles“.
www.novellius.com 
5 
Desarrollo del Programa de Control en 
Lenguaje C 
1) Crea un nuevo proyecto de control en PIC C Compiler y sálvalo bajo el nombre de “VoltimetroCD.c”. 
Fig. 1 Creación de un archivo de código fuente C. 
2) Añade un nuevo proyecto al archivo de código fuente, implementando el PIC18F45502. 
Fig. 2 Inserción de un nuevo proyecto al archivo de código fuente C. 
2 Se pueden implementar una diversa variedad de PICs. Véase el Manual de Usuario en la sección “Microcontro-ladores 
Compatibles“.
www.novellius.com 
3) A continuación se presenta un diagrama de flujo para comprender la secuencia lógica que debe 
6 
obedecer el programa de control. 
Declaración de variables 
necesarias Configuración de Puertos Configuración de la 
Conversión A/D 
¿La Conversión A/D ha Iniciar la Conversión A/D Ciclo Inifnito 
terminado? 
Mostrar el Voltaje y el 
valor A/D 
Fig. 3 Diagrama de la lógica del programa de control. 
Incluir archivos cabecera 
y librerías necesarios. 
Configuración de fusibles 
y reloj de procesamiento 
Almacenar el valor 
obtenido de la Conversión 
A/D 
Escalar el valor A/D a 
Volts 
Si 
4) Captura el siguiente código sobre el archivo “VoltimetroCD.c”. 
1. #include <18F4550.h> 
2. #fuses HSPLL, NOWDT, NOPROTECT, PLL5 
3. #use delay(clock=20MHz) 
4. #include <lcd.c> 
5. int8 valorAdc; 
6. float valorEsc; 
7. float k = 0.019607843137254; 
8. void main(){ 
9. lcd_init(); 
10. setup_adc_ports(AN0); 
11. setup_adc(ADC_CLOCK_DIV_16); 
12. set_adc_channel(0); 
13. delay_us(20); 
14. while(true) { 
15. read_adc(ADC_START_ONLY); 
No
www.novellius.com 
7 
16. while (!adc_done()); 
17. valorAdc = read_adc(ADC_READ_ONLY); 
18. valorEsc = valorAdc * k; 
19. lcd_gotoxy(1,1); 
20. printf(lcd_putc,”Valor ADC:%3u”,valorAdc); 
21. lcd_gotoxy(1,2); 
22. printf(lcd_putc,”Voltaje:%f”,valorEsc); 
23. printf(lcd_putc,” V”); 
24. delay_ms(100); 
25. } 
26. } 
Código 1-2 
1. #include <18F4550.h> 
2. #fuses HSPLL, NOWDT, NOPROTECT, PLL5 
La línea 1 importa el archivo cabecera del modelo de microcontrolador a implementar en 
el proyecto. En la línea 2 se fijan los fusibles a utilizar al en nuestra solución, los cuales se 
detallan a continuación. 
HSPLL. High Speed Crystal/Resonator with 
PLL enabled) 
Cristal/Resonador (Oscilador) de Alta 
Velocidad con Pre-escalador (PLL) 
Habilitado 
NOWDT. No Watch Dog Timer 
Temporizador Perro Guardián Deshabilitado 
NOPROTECT. Code not protected from 
reading Código sin protección contra lectura. 
PLL5. Divide By 5 (20MHz oscillator input) Pre-escalador habilitado con divisor de 
frecuencia por 5, para osciladores de 
20MHz. 
Fig. 4 Descripción de los fusibles implementados en el programa de control. 
Código 3-4 
3. #use delay(clock=20MHz) 
4. #include <lcd.c> 
En la línea 3 se indica la frecuencia del cristal físico que se va a utilizar en la TEMPIC-45, esta 
velocidad depende directamente del fusible PLLX hallado en la Línea 2. La línea 4 incluye en 
el código, la librería con todas las funciones de control para la Pantalla LCD.
www.novellius.com 
8 
Código 5-7 
5. int8 valorAdc; 
6. float valorEsc; 
7. float k = 0.019607843137254; 
La línea 5 declara una variable entera de 8 bits denominada “valorAdc”, ésta va a almacenar 
el resultado de la conversión A/D. La línea 6 declara una variable con punto flotante (o punto 
decimal) llamada “valorEsc”, la cual va a guardar el valor A/D escalado (es decir convertido 
a Volts). La línea 7 se trata de la declaración de una constante llamada “k”, ésta será parte 
vital en el proceso de mostrar el valor A/D en Volts. 
Código 8-9 
8. void main(){ 
9. lcd_init(); 
La línea 8 establece el comienzo de la ejecución del programa. La línea 9 es la directiva 
primaria para el manejo de una Pantalla LCD de 16x2 caracteres, pues inicializa y estabiliza el 
Display LCD para comenzar a transmitir y mostrar los caracteres. Recuerda que al controlar 
una Pantalla LCD esta directiva deberá ser siempre la primera que invoques en tu código.
www.novellius.com 
9 
Código 10-13 
10. setup_adc_ports(AN0); 
11. setup_adc(ADC_CLOCK_DIV_16); 
12. set_adc_channel(0); 
13. delay_us(20); 
La línea 10 establece las entradas analógicas que se van a utilizar en la conversión A/D, 
en este caso es la entrada cero (ubicada en RA0). En la línea 11 se ajusta la velocidad de la 
conversión A/D. 
El parámetro dentro de esta instrucción ADC_CLOCK_DIV_16, divide por 16 la velocidad del 
cristal físico utilizado en el PIC. La hoja de datos del PIC18F4550, declara que la velocidad 
adecuada para realizar una conversión A/D debe ser la más pequeña posible, pero siempre 
mayor al mínimo requerido. Para el PIC18F4550 la velocidad mínima equivale a 0.7μs. La 
elección del divisor por 16 como la velocidad adecuada, se comprueba fácilmente con la 
siguiente expresión: 
Fig. 5 Expresión para obtener el tiempo ideal de la Conversión A/D. 
Como se puede observar al dividir el oscilador físico por 16, se obtiene la velocidad más 
pequeña posible, pero superior al mínimo requerido para la conversión A/D, es decir, 
0.8.μs > 0.7μs 
La línea 12 declara el canal por el cual va a ser adquirida la señal, en este caso, el numero 
cero. Por último la línea 13 crea un retardo de 20μs para estabilizar el conversor A/D.
www.novellius.com 
10 
Código 14-18 
14. while(true) { 
15. read_adc(ADC_START_ONLY); 
16. while (!adc_done()); 
17. valorAdc = read_adc(ADC_READ_ONLY); 
18. valorEsc = valorAdc * k; 
La línea 14 presenta el comienzo de un ciclo infinito para continuamente realizar la 
adquisición de la señal analógica. La línea 15 comienza la conversión A/D. Ya que la línea 
15 nunca indica cuando la conversión A/D termina, la línea 16 crea un ciclo mientras la 
conversión no haya finalizado. En caso de que la conversión A/D haya finalizado; la línea 
17 lee el valor obtenido de la conversión y lo almacena en la variable “valorAdc”. El valor 
obtenido de la conversión A/D oscila entre 0 y 255, debido a que usamos 8 bits de precisión 
en la conversión (28=256, es decir desde 0 hasta 255), es por esto que es necesario escalar 
el valor obtenido para convertirlo a Volts. Esto se logra a través de la siguiente expresión: 
Fig. 6 Cálculo de la escala de Voltaje. 
Con la expresión anterior, se deduce que si se obtuviera por ejemplo, el valor 128 de la 
conversión A/D y se multiplicara por la escala, entonces se obtendría el voltaje del 
potenciómetro: 
Fig. 7 Expresión para obtener el Voltaje del Potenciómetro. 
La línea 18 almacena el producto del valor proveniente de la conversión A/D multiplicado 
por la escala en la variable “valorEsc”.
www.novellius.com 
11 
Código 19-23 
19. lcd_gotoxy(1,1); 
20. printf(lcd_putc,”Valor ADC:%3u”,valorAdc); 
21. lcd_gotoxy(1,2); 
22. printf(lcd_putc,”Voltaje:%f”,valorEsc); 
23. printf(lcd_putc,” V”); 
La línea 19 posiciona el cursor de la pantalla LCD en la columna 1, renglón 1. La línea 20 es 
un conjunto de funciones para imprimir una secuencia de caracteres en una sola línea de 
código, el cual se desglosan a continuación: 
printf Función para imprimir un valor con un 
formato especificado. 
lcd_putc Función para escribir un sólo caracter en la 
Pantalla LCD. 
”Valor ADC:%3u” 
Expresión que mostrará en la pantalla LCD el 
mensaje “Valor ADC:”. La expresión ”%3u” 
es el formato con el cual se va a presentar 
el valor de la variable “valorAdc”, o sea, 3 
dígitos de un entero sin signo. 
Fig. 8 Desglose de la función “printf“ para la impresión en un Display LCD. 
El resultado final deberá ser similar al siguiente: 
Fig. 9 Muestra de un valor Entero sin Signo en la Pantalla LCD.
www.novellius.com 
La línea 21 posiciona el cursor de la pantalla LCD en la columna 1 renglón 2. La línea 22 
vuelve a recurrir a una impresión con formato, esta vez con el voltaje. El único cambio que se 
observa de esta línea con respecto a la línea 20 es el formato de impresión ”%f”, el cual se 
trata de un número con punto flotante. Éste por defecto imprime un entero más dos cifras 
después del punto decimal. Finalmente la línea 23 concatena el caracter “V” para indicar 
que las unidades son Volts. 
12 
El mensaje compuesto final se visualizará de la siguiente forma: 
Fig. 10 Mostrar un valor entero sin signo y un valor flotante en una Pantalla LCD. 
Código 24-26 
24. delay_ms(100); 
25. } 
26. } 
La línea 24 genera un retardo de 100μs para estabilizar el proceso de la adquisición de la 
señal. La línea 25 indica el cierre del ciclo infinito declarado en la línea 14, y para finalizar 
el código de la solución, la línea 26 establece el fin del método principal, o sea, el fin del 
programa.
www.novellius.com 
13 
5) Pulsa sobre el botón Compile en la sección del mismo nombre. 
Fig. 11 Compilación del programa de control. 
6) Si el código se ha capturado sin errores, aparecerá la siguiente ventana confirmando que la 
compilación ha sido exitosa; de lo contrario pulsa doble click sobre los errores que se listen y 
verifica la sintaxis del código fuente. 
Fig. 12 Confirmación de éxito en la compilación.
www.novellius.com 
14 
Acondicionamiento de la TEMPIC-45 
1) Coloca y asegura el Microcontrolador en la Base ZIF de la TEMPIC-45. 
Fig. 13 Colocación del Microcontrolador en la TEMPIC-45. 
2) Ubica la Pantalla LCD de 16x2 caracteres en el Módulo de Conexión para Pantalla LCD de la 
TEMPIC-45. Recuerda que este módulo alimenta la Pantalla LCD y ajusta automáticamente su 
contraste. 
Fig. 14 Conexión de la Pantalla LCD a la TEMPIC-45.
www.novellius.com 
3) Asegúrate de que los pines 1 y 16 de la Pantalla LCD estén perfectamente alineados con el 
15 
Módulo de Conexión para Pantalla LCD de la tarjeta entrenadora. 
Fig. 15 Comprobación de la conexión de la Pantalla LCD a la TEMPIC-45. 
4) Coloca el programador de PICs en el Módulo de Programación, corroborando que los pines del 
módulo coincidan con los del programador en perfecto orden. 
Fig. 16 Conexión del programador de PICs a la TEMPIC-45.
www.novellius.com 
16 
5) Sitúa el jumper Selector de Alimentación desde el Programador en la posición “OFF”. 
Fig. 17 Alimentación deshabilitada desde el Programador de PICs. 
6) Ubica el Selector de Entrada de Alimentación en la posición “USB”. De esta forma la TEMPIC-45 
se energizará a través de la Interfaz USB. 
Fig. 18 Configuración de la TEMPIC-45 para Alimentación mediante la Interfaz USB.
www.novellius.com 
7) Mediante cables Dupont realiza la conexión del Display LCD al PIC como se muestra en el 
17 
siguiente diagrama. 
D6 
D5 
D4 
D3 
D2 
LCD 16x2 Caracteres 
D1 
D0 
RW 
RS 
Fig. 19 Diagrama de conexión de una Pantalla LCD al PIC18F4550. 
8) Al terminar las conexiones correspondientes, el resultado deberá ser similar al siguiente. 
Fig. 20 Conexión de una Pantalla LCD a la TEMPIC-45. 
RA0/AN0 
2 
RA1/AN1 
3 
RA2/AN2/VREF-/CVREF 
4 
RA3/AN3/VREF+ 
5 
RA4/T0CKI/C1OUT/RCV 
6 
RA5/AN4/SS/LVDIN/C2OUT 
7 
RA6/OSC2/CLKO 
14 
OSC1/CLKI 
13 
RB0/AN12/INT0/FLT0/SDI/SDA 
33 
RB1/AN10/INT1/SCK/SCL 
34 
RB2/AN8/INT2/VMO 
35 
RB3/AN9/CCP2/VPO 
36 
RB4/AN11/KBI0/CSSPP 
37 
RB5/KBI1/PGM 
38 
RB6/KBI2/PGC 
39 
RB7/KBI3/PGD 
40 
RC0/T1OSO/T1CKI 
15 
RC1/T1OSI/CCP2/UOE 
16 
RC2/CCP1/P1A 
17 
VUSB 
18 
RC4/D-/VM 
23 
RC5/D+/VP 
24 
RC6/TX/CK 
25 
RC7/RX/DT/SDO 
26 
RD0/SPP0 
19 
RD1/SPP1 
20 
RD2/SPP2 
21 
RD3/SPP3 
22 
RD4/SPP4 
27 
RD5/SPP5/P1B 
28 
RD6/SPP6/P1C 
29 
RD7/SPP7/P1D 
30 
RE0/AN5/CK1SPP 
8 
RE1/AN6/CK2SPP 
9 
RE2/AN7/OESPP 
10 
RE3/MCLR/VPP 
1 
PIC18F4550 
D7 
14 
13 
12 
11 
10 
9 
8 
7 
E 
6 
5 
4 
VSS 
1 
VDD 
2 
VEE 
3
www.novellius.com 
9) Realiza la conexión del Potenciómetro de 100 KOhm al pin RA0 de la TEMPIC-45, como se 
18 
indica en la siguiente figura. 
RA0/AN0 
2 
RA1/AN1 
3 
RA2/AN2/VREF-/CVREF 
4 
RA3/AN3/VREF+ 
5 
RA4/T0CKI/C1OUT/RCV 
6 
RA5/AN4/SS/LVDIN/C2OUT 
7 
RA6/OSC2/CLKO 
14 
OSC1/CLKI 
13 
RB0/AN12/INT0/FLT0/SDI/SDA 
33 
RB1/AN10/INT1/SCK/SCL 
34 
RB2/AN8/INT2/VMO 
35 
RB3/AN9/CCP2/VPO 
36 
RB4/AN11/KBI0/CSSPP 
37 
RB5/KBI1/PGM 
38 
RB6/KBI2/PGC 
39 
RB7/KBI3/PGD 
40 
RC0/T1OSO/T1CKI 
15 
RC1/T1OSI/CCP2/UOE 
16 
RC2/CCP1/P1A 
17 
VUSB 
18 
RC4/D-/VM 
23 
RC5/D+/VP 
24 
RC6/TX/CK 
25 
RC7/RX/DT/SDO 
26 
RD0/SPP0 
19 
RD1/SPP1 
20 
RD2/SPP2 
21 
RD3/SPP3 
22 
RD4/SPP4 
27 
RD5/SPP5/P1B 
28 
RD6/SPP6/P1C 
29 
RD7/SPP7/P1D 
30 
RE0/AN5/CK1SPP 
8 
RE1/AN6/CK2SPP 
9 
RE2/AN7/OESPP 
10 
RE3/MCLR/VPP 
1 
PIC18F4550 
100KOhm 
+5V 
Fig. 21 Diagrama de conexión de un Potenciómetro al pin RA0 del PIC18F4550. 
10) Una vez realizada la conexión del Potenciómetro, asegúrate que el resultado sea similar a la 
siguiente figura. 
Fig. 22 Conexión de un Potenciómetro al pin RA0 de la TEMPIC-45.
www.novellius.com 
19 
Programación del Microcontrolador 
1) Ejecuta la aplicación PICKit 2® Programmer, ahora verifica que el programa reconozca el modelo 
del Microcontrolador implementado en la TEMPIC-45. 
Fig. 23 Ventana principal del PICKit 2® Programmer. 
2) Importa el archivo llamado “VoltimetroCD.hex”, hallado en la ruta en la cual salvaste el archivo 
de código fuente C. 
Fig. 24 Importación del archivo compilado del código fuente C.
www.novellius.com 
3) Programa el Microcontrolador pulsando sobre el botón Write. Al terminar el proceso corrobora 
que la programación del PIC haya sido exitosa; de lo contrario, verifica el acondicionamiento de 
la TEMPIC-45. 
20 
Fig. 25 Programación exitosa del Microcontrolador.
www.novellius.com 
21 
Comprobación del Funcionamiento del 
Programa de Control 
1) Observa como se muestra el voltaje del potenciómetro y al valor ADC asociado, una vez 
completada la solución. Varía la resistencia del potenciómetro y comprueba como el voltaje y el 
valor de la conversión A/D son desplegados en la Pantalla LCD de 16x2 caracteres. 
Fig. 26 Verificación del funcionamiento de la solución de control.
www.novellius.com 
22 
Prácticas Propuestas 
Los siguientes retos comprenden el contenido de esta Práctica, junto con el conocimiento adquirido 
en las Prácticas I, II y III. 
1) Realiza una mejora para controlar límites de voltaje en esta práctica, basándote en los siguientes 
puntos. 
a. Muestra en la primera línea de la Pantalla LCD el mensaje “Voltaje max = 3V“. Mientras 
que en el segundo renglón solo deberá desplegarse el voltaje actual del potenciómetro. 
Puedes mostrar el voltaje como prefieras, por ejemplo “V = 3.4”, “voltaje = 3.4V”, etc. 
b. Conecta 2 botones en los pines RB4 y RB5, estos controlarán los tres niveles máximos 
de voltaje. Los cuales son 3V, 4V y 4.5V. 
c. El botón en RB4 se encargará del decremento del voltaje máximo y lo mostrará en el 
renglón 1 de la Pantalla LCD alterando el mensaje original. 
d. El botón conectado al pin RB5 deberá incrementar el voltaje máximo del potenciómetro, 
igualmente mostrándolo en el Display LCD. Recuerda que ambos botones sólo pueden 
ir cambiando los valores entre los 3 voltajes permitidos del punto b. 
e. Cuando el voltaje máximo sea rebasado, enciende y mantén iluminados los LEDs 
de RB0 a RB3. Una vez que el voltaje del potenciómetro se encuentre por debajo del 
máximo, los LEDs deberán apagarse para indicar que la alerta ya no se encuentra activa. 
2) En base al siguiente diagrama esquemático y material, programa e implementa un termómetro 
digital. 
Material 
a. Sensor de Temperatura LM35. 
b. Capacitor Electrolítico de 10uF. 
c. Amplificador Operacional LM358N. 
d. Resistencia de 5.1 KOhm. 
e. Potenciómetro de 100 KOhm.
www.novellius.com 
23 
Diagrama Esquemático 
28.0 
3 
1 
VOUT 
2 
LM35 
3 
2 
1 
4 8 
LM358N 
5 
6 
7 
4 8 
LM358N 
+5V 
10u 
5.1k 
100K 
Entrada Analógica PIC
www.novellius.com 
Para 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: 
contacto@novellius.com 
¿Tienes dudas acerca de esta Práctica? 
É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: 
soporte@novellius.com

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4
 
Introducción al microcontrolador MSP430
Introducción al microcontrolador MSP430Introducción al microcontrolador MSP430
Introducción al microcontrolador MSP430
 
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
 
Micro2 tema 2
Micro2 tema 2Micro2 tema 2
Micro2 tema 2
 
modulación por pulsos
modulación por pulsosmodulación por pulsos
modulación por pulsos
 
Codigo manchester
Codigo manchesterCodigo manchester
Codigo manchester
 
Plc progr
Plc progrPlc progr
Plc progr
 
06 error en estado estable o estacionario
06   error en estado estable o estacionario06   error en estado estable o estacionario
06 error en estado estable o estacionario
 
Practica 7 Flip Flop
Practica 7 Flip FlopPractica 7 Flip Flop
Practica 7 Flip Flop
 
Timer0 PIC16F84A
Timer0 PIC16F84ATimer0 PIC16F84A
Timer0 PIC16F84A
 
Proteus tutorial rev1
Proteus tutorial rev1Proteus tutorial rev1
Proteus tutorial rev1
 
Lab 03 - Análisis de Señales - UNTECS
Lab 03 - Análisis de Señales - UNTECSLab 03 - Análisis de Señales - UNTECS
Lab 03 - Análisis de Señales - UNTECS
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupciones
 
Cap 05 osciladores
Cap 05 osciladoresCap 05 osciladores
Cap 05 osciladores
 
Clase lugar geometrico ciclo 2014 3
Clase lugar geometrico  ciclo 2014 3Clase lugar geometrico  ciclo 2014 3
Clase lugar geometrico ciclo 2014 3
 
Guía de Ondas Rectangular
Guía de Ondas RectangularGuía de Ondas Rectangular
Guía de Ondas Rectangular
 
Familias lógicas
Familias lógicasFamilias lógicas
Familias lógicas
 
Circuitos secuenciales
Circuitos secuencialesCircuitos secuenciales
Circuitos secuenciales
 
Lab de tele 1 - Fourier using matlab - UNTECS
Lab de tele 1 - Fourier using matlab - UNTECSLab de tele 1 - Fourier using matlab - UNTECS
Lab de tele 1 - Fourier using matlab - UNTECS
 
filtros iir
filtros iir filtros iir
filtros iir
 

Similar a TEMPIC-45 Práctica IV. Voltímetro de CD

TEMPIC-45 Práctica II. Control de un LED a través de un botón
TEMPIC-45 Práctica II. Control de un LED a través de un botónTEMPIC-45 Práctica II. Control de un LED a través de un botón
TEMPIC-45 Práctica II. Control de un LED a través de un botóniihhhii
 
Práctica III. Mostrar un mensaje en una pantalla LCD
Práctica III. Mostrar un mensaje en una pantalla LCDPráctica III. Mostrar un mensaje en una pantalla LCD
Práctica III. Mostrar un mensaje en una pantalla LCDiihhhii
 
TEMPIC-45 Práctica I. Control de un LED
TEMPIC-45 Práctica I. Control de un LEDTEMPIC-45 Práctica I. Control de un LED
TEMPIC-45 Práctica I. Control de un LEDiihhhii
 
Libro de lenguaje c
Libro de lenguaje cLibro de lenguaje c
Libro de lenguaje cjhon baez
 
Manual Teorico
Manual TeoricoManual Teorico
Manual Teoricoyennismart
 
Herramientas del robotico_pdf
Herramientas del robotico_pdfHerramientas del robotico_pdf
Herramientas del robotico_pdfJonatan Piuma
 
Microcontroladores: Tutorial de microcontroladores PIC
Microcontroladores: Tutorial de microcontroladores PIC Microcontroladores: Tutorial de microcontroladores PIC
Microcontroladores: Tutorial de microcontroladores PIC SANTIAGO PABLO ALBERTO
 
MiCroControladores
MiCroControladoresMiCroControladores
MiCroControladoresYahaira07
 
Tutorial Microprocesadores Pic iniciación rápida (Miguel Torres)
Tutorial Microprocesadores Pic  iniciación rápida  (Miguel Torres) Tutorial Microprocesadores Pic  iniciación rápida  (Miguel Torres)
Tutorial Microprocesadores Pic iniciación rápida (Miguel Torres) Aldo Corp
 
Proyecto final facultad de ingeniería.pdf
Proyecto final facultad de ingeniería.pdfProyecto final facultad de ingeniería.pdf
Proyecto final facultad de ingeniería.pdfceranobrian52
 
DIAGON Coag4D manual de usuario v2.10 - esp
DIAGON Coag4D   manual de usuario v2.10 - espDIAGON Coag4D   manual de usuario v2.10 - esp
DIAGON Coag4D manual de usuario v2.10 - espRolando Algarin
 
Basic
BasicBasic
Basicvcesp
 
Electrónica digital con VHDL: Diseño e implementación de practicas con FPGA p...
Electrónica digital con VHDL: Diseño e implementación de practicas con FPGA p...Electrónica digital con VHDL: Diseño e implementación de practicas con FPGA p...
Electrónica digital con VHDL: Diseño e implementación de practicas con FPGA p...SANTIAGO PABLO ALBERTO
 

Similar a TEMPIC-45 Práctica IV. Voltímetro de CD (20)

TEMPIC-45 Práctica II. Control de un LED a través de un botón
TEMPIC-45 Práctica II. Control de un LED a través de un botónTEMPIC-45 Práctica II. Control de un LED a través de un botón
TEMPIC-45 Práctica II. Control de un LED a través de un botón
 
Práctica III. Mostrar un mensaje en una pantalla LCD
Práctica III. Mostrar un mensaje en una pantalla LCDPráctica III. Mostrar un mensaje en una pantalla LCD
Práctica III. Mostrar un mensaje en una pantalla LCD
 
TEMPIC-45 Práctica I. Control de un LED
TEMPIC-45 Práctica I. Control de un LEDTEMPIC-45 Práctica I. Control de un LED
TEMPIC-45 Práctica I. Control de un LED
 
Libro de lenguaje c
Libro de lenguaje cLibro de lenguaje c
Libro de lenguaje c
 
Manual C++
Manual C++Manual C++
Manual C++
 
Manual Teorico
Manual TeoricoManual Teorico
Manual Teorico
 
C++
C++C++
C++
 
Herramientas del robotico_pdf
Herramientas del robotico_pdfHerramientas del robotico_pdf
Herramientas del robotico_pdf
 
Microcontroladores: Tutorial de microcontroladores PIC
Microcontroladores: Tutorial de microcontroladores PIC Microcontroladores: Tutorial de microcontroladores PIC
Microcontroladores: Tutorial de microcontroladores PIC
 
PLC: Controladores Guardlogix
PLC: Controladores GuardlogixPLC: Controladores Guardlogix
PLC: Controladores Guardlogix
 
Tutorial pic
Tutorial picTutorial pic
Tutorial pic
 
MiCroControladores
MiCroControladoresMiCroControladores
MiCroControladores
 
Tutorial pic
Tutorial picTutorial pic
Tutorial pic
 
Tutorial Microprocesadores Pic iniciación rápida (Miguel Torres)
Tutorial Microprocesadores Pic  iniciación rápida  (Miguel Torres) Tutorial Microprocesadores Pic  iniciación rápida  (Miguel Torres)
Tutorial Microprocesadores Pic iniciación rápida (Miguel Torres)
 
Tutorial pic
Tutorial picTutorial pic
Tutorial pic
 
Proyecto final facultad de ingeniería.pdf
Proyecto final facultad de ingeniería.pdfProyecto final facultad de ingeniería.pdf
Proyecto final facultad de ingeniería.pdf
 
DIAGON Coag4D manual de usuario v2.10 - esp
DIAGON Coag4D   manual de usuario v2.10 - espDIAGON Coag4D   manual de usuario v2.10 - esp
DIAGON Coag4D manual de usuario v2.10 - esp
 
Basic
BasicBasic
Basic
 
Electrónica digital con VHDL: Diseño e implementación de practicas con FPGA p...
Electrónica digital con VHDL: Diseño e implementación de practicas con FPGA p...Electrónica digital con VHDL: Diseño e implementación de practicas con FPGA p...
Electrónica digital con VHDL: Diseño e implementación de practicas con FPGA p...
 
condiciones-tecnicas-para-conexion-pmgd
condiciones-tecnicas-para-conexion-pmgdcondiciones-tecnicas-para-conexion-pmgd
condiciones-tecnicas-para-conexion-pmgd
 

Último

¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxEverardoRuiz8
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUMarcosAlvarezSalinas
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdfFlorenciopeaortiz
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamientoRobertoAlejandroCast6
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENSMANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENSLuisLobatoingaruca
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 

Último (20)

¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptx
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdf
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENSMANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 

TEMPIC-45 Práctica IV. Voltímetro de CD

  • 1. Capacitación Certificada, Componentes & Soluciones en Electrónica y Programación Práctica IV Voltímetro de CD Revisión 2 www.novellius.com contacto@novellius.com
  • 2. 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......................................................................................................................................14 Programación del Microcontrolador..........................................................................................................................................19 Comprobación del Funcionamiento del Programa de Control...............................................................................21 Prácticas Propuestas.............................................................................................................................................................................22
  • 3. www.novellius.com Índice de Figuras Fig. 1 Creación de un archivo de código fuente C.......................................................................................................5 Fig. 2 Inserción de un nuevo manual de proyecto al archivo de código fuente C...............................5 Fig. 3 Diagrama de la lógica del programa de control..............................................................................................6 Fig. 4 Descripción de los fusibles implementados en el programa de control......................................7 Fig. 5 Expresión para obtener el tiempo ideal de la Conversión A/D...........................................................9 Fig. 6 Cálculo de la escala de Voltaje....................................................................................................................................10 Fig. 7 Expresión para obtener el Voltaje del Potenciómetro................................................................................10 Fig. 8 Desglose de la función “printf“ para la impresión en un Display LCD........................................... 11 Fig. 9 Muestra de un valor Entero sin Signo en la Pantalla LCD....................................................................... 11 Fig. 10 Mostrar un valor entero sin signo y un valor flotante en una Pantalla LCD............................... 12 Fig. 11 Compilación del programa de control................................................................................................................... 13 Fig. 12 Confirmación de éxito en la compilación............................................................................................................ 13 Fig. 13 Colocación del Microcontrolador en la TEMPIC-45..................................................................................... 14 Fig. 14 Conexión de la Pantalla LCD a la TEMPIC-45.................................................................................................. 14 Fig. 15 Comprobación de la conexión de la Pantalla LCD a la TEMPIC-45................................................. 15 Fig. 16 Conexión del programador de PICs a la TEMPIC-45.................................................................................. 15 Fig. 17 Alimentación deshabilitada desde el Programador de PICs................................................................. 16 Fig. 18 Configuración de la TEMPIC-45 para Alimentación mediante la Interfaz USB..................... 16 Fig. 19 Diagrama de conexión de una Pantalla LCD al PIC18F4550................................................................ 17 Fig. 20 Conexión de una Pantalla LCD a la TEMPIC-45............................................................................................. 17 Fig. 21 Diagrama de conexión de un Potenciómetro al pin RA0 del PIC18F4550................................. 18 Fig. 22 Conexión de un Potenciómetro al pin RA0 de la TEMPIC-45.............................................................. 18 Fig. 23 Ventana principal del PICKit 2® Programmer................................................................................................... 19 Fig. 24 Importación del archivo compilado del código fuente C......................................................................... 19 Fig. 25 Programación exitosa del Microcontrolador.....................................................................................................20 Fig. 26 Verificación del funcionamiento de la solución de control.................................................................... 21
  • 4. www.novellius.com 4 Objetivo Desarrollar un programa de control involucrando algunos tópicos intermedios de programación de PICs, como el control de una Pantalla LCD de 16x2 caracteres, así como la implementación de una Conversión Analógico/Digital (A/D). Solución Propuesta Este ejemplo consiste en realizar la conversión Analógico/Digital (A/D) de una señal proveniente de un potenciómetro, alimentado con +5V como voltaje de referencia. Posteriormente mostrar en el Display LCD de 16x2 caracteres, tanto el valor de la conversión A/D, como el voltaje asociado al potenciómetro. 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) Potenciómetro de 100 KΩ (o cualquier otro valor de tu elección). 7) Display LCD de 16x2 Caracteres. 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 variedad de PICs. Véase el Manual de Usuario en la sección “Microcontro-ladores Compatibles“.
  • 5. www.novellius.com 5 Desarrollo del Programa de Control en Lenguaje C 1) Crea un nuevo proyecto de control en PIC C Compiler y sálvalo bajo el nombre de “VoltimetroCD.c”. Fig. 1 Creación de un archivo de código fuente C. 2) Añade un nuevo proyecto al archivo de código fuente, implementando el PIC18F45502. Fig. 2 Inserción de un nuevo proyecto al archivo de código fuente C. 2 Se pueden implementar una diversa variedad de PICs. Véase el Manual de Usuario en la sección “Microcontro-ladores Compatibles“.
  • 6. www.novellius.com 3) A continuación se presenta un diagrama de flujo para comprender la secuencia lógica que debe 6 obedecer el programa de control. Declaración de variables necesarias Configuración de Puertos Configuración de la Conversión A/D ¿La Conversión A/D ha Iniciar la Conversión A/D Ciclo Inifnito terminado? Mostrar el Voltaje y el valor A/D Fig. 3 Diagrama de la lógica del programa de control. Incluir archivos cabecera y librerías necesarios. Configuración de fusibles y reloj de procesamiento Almacenar el valor obtenido de la Conversión A/D Escalar el valor A/D a Volts Si 4) Captura el siguiente código sobre el archivo “VoltimetroCD.c”. 1. #include <18F4550.h> 2. #fuses HSPLL, NOWDT, NOPROTECT, PLL5 3. #use delay(clock=20MHz) 4. #include <lcd.c> 5. int8 valorAdc; 6. float valorEsc; 7. float k = 0.019607843137254; 8. void main(){ 9. lcd_init(); 10. setup_adc_ports(AN0); 11. setup_adc(ADC_CLOCK_DIV_16); 12. set_adc_channel(0); 13. delay_us(20); 14. while(true) { 15. read_adc(ADC_START_ONLY); No
  • 7. www.novellius.com 7 16. while (!adc_done()); 17. valorAdc = read_adc(ADC_READ_ONLY); 18. valorEsc = valorAdc * k; 19. lcd_gotoxy(1,1); 20. printf(lcd_putc,”Valor ADC:%3u”,valorAdc); 21. lcd_gotoxy(1,2); 22. printf(lcd_putc,”Voltaje:%f”,valorEsc); 23. printf(lcd_putc,” V”); 24. delay_ms(100); 25. } 26. } Código 1-2 1. #include <18F4550.h> 2. #fuses HSPLL, NOWDT, NOPROTECT, PLL5 La línea 1 importa el archivo cabecera del modelo de microcontrolador a implementar en el proyecto. En la línea 2 se fijan los fusibles a utilizar al en nuestra solución, los cuales se detallan a continuación. HSPLL. High Speed Crystal/Resonator with PLL enabled) Cristal/Resonador (Oscilador) de Alta Velocidad con Pre-escalador (PLL) Habilitado NOWDT. No Watch Dog Timer Temporizador Perro Guardián Deshabilitado NOPROTECT. Code not protected from reading Código sin protección contra lectura. PLL5. Divide By 5 (20MHz oscillator input) Pre-escalador habilitado con divisor de frecuencia por 5, para osciladores de 20MHz. Fig. 4 Descripción de los fusibles implementados en el programa de control. Código 3-4 3. #use delay(clock=20MHz) 4. #include <lcd.c> En la línea 3 se indica la frecuencia del cristal físico que se va a utilizar en la TEMPIC-45, esta velocidad depende directamente del fusible PLLX hallado en la Línea 2. La línea 4 incluye en el código, la librería con todas las funciones de control para la Pantalla LCD.
  • 8. www.novellius.com 8 Código 5-7 5. int8 valorAdc; 6. float valorEsc; 7. float k = 0.019607843137254; La línea 5 declara una variable entera de 8 bits denominada “valorAdc”, ésta va a almacenar el resultado de la conversión A/D. La línea 6 declara una variable con punto flotante (o punto decimal) llamada “valorEsc”, la cual va a guardar el valor A/D escalado (es decir convertido a Volts). La línea 7 se trata de la declaración de una constante llamada “k”, ésta será parte vital en el proceso de mostrar el valor A/D en Volts. Código 8-9 8. void main(){ 9. lcd_init(); La línea 8 establece el comienzo de la ejecución del programa. La línea 9 es la directiva primaria para el manejo de una Pantalla LCD de 16x2 caracteres, pues inicializa y estabiliza el Display LCD para comenzar a transmitir y mostrar los caracteres. Recuerda que al controlar una Pantalla LCD esta directiva deberá ser siempre la primera que invoques en tu código.
  • 9. www.novellius.com 9 Código 10-13 10. setup_adc_ports(AN0); 11. setup_adc(ADC_CLOCK_DIV_16); 12. set_adc_channel(0); 13. delay_us(20); La línea 10 establece las entradas analógicas que se van a utilizar en la conversión A/D, en este caso es la entrada cero (ubicada en RA0). En la línea 11 se ajusta la velocidad de la conversión A/D. El parámetro dentro de esta instrucción ADC_CLOCK_DIV_16, divide por 16 la velocidad del cristal físico utilizado en el PIC. La hoja de datos del PIC18F4550, declara que la velocidad adecuada para realizar una conversión A/D debe ser la más pequeña posible, pero siempre mayor al mínimo requerido. Para el PIC18F4550 la velocidad mínima equivale a 0.7μs. La elección del divisor por 16 como la velocidad adecuada, se comprueba fácilmente con la siguiente expresión: Fig. 5 Expresión para obtener el tiempo ideal de la Conversión A/D. Como se puede observar al dividir el oscilador físico por 16, se obtiene la velocidad más pequeña posible, pero superior al mínimo requerido para la conversión A/D, es decir, 0.8.μs > 0.7μs La línea 12 declara el canal por el cual va a ser adquirida la señal, en este caso, el numero cero. Por último la línea 13 crea un retardo de 20μs para estabilizar el conversor A/D.
  • 10. www.novellius.com 10 Código 14-18 14. while(true) { 15. read_adc(ADC_START_ONLY); 16. while (!adc_done()); 17. valorAdc = read_adc(ADC_READ_ONLY); 18. valorEsc = valorAdc * k; La línea 14 presenta el comienzo de un ciclo infinito para continuamente realizar la adquisición de la señal analógica. La línea 15 comienza la conversión A/D. Ya que la línea 15 nunca indica cuando la conversión A/D termina, la línea 16 crea un ciclo mientras la conversión no haya finalizado. En caso de que la conversión A/D haya finalizado; la línea 17 lee el valor obtenido de la conversión y lo almacena en la variable “valorAdc”. El valor obtenido de la conversión A/D oscila entre 0 y 255, debido a que usamos 8 bits de precisión en la conversión (28=256, es decir desde 0 hasta 255), es por esto que es necesario escalar el valor obtenido para convertirlo a Volts. Esto se logra a través de la siguiente expresión: Fig. 6 Cálculo de la escala de Voltaje. Con la expresión anterior, se deduce que si se obtuviera por ejemplo, el valor 128 de la conversión A/D y se multiplicara por la escala, entonces se obtendría el voltaje del potenciómetro: Fig. 7 Expresión para obtener el Voltaje del Potenciómetro. La línea 18 almacena el producto del valor proveniente de la conversión A/D multiplicado por la escala en la variable “valorEsc”.
  • 11. www.novellius.com 11 Código 19-23 19. lcd_gotoxy(1,1); 20. printf(lcd_putc,”Valor ADC:%3u”,valorAdc); 21. lcd_gotoxy(1,2); 22. printf(lcd_putc,”Voltaje:%f”,valorEsc); 23. printf(lcd_putc,” V”); La línea 19 posiciona el cursor de la pantalla LCD en la columna 1, renglón 1. La línea 20 es un conjunto de funciones para imprimir una secuencia de caracteres en una sola línea de código, el cual se desglosan a continuación: printf Función para imprimir un valor con un formato especificado. lcd_putc Función para escribir un sólo caracter en la Pantalla LCD. ”Valor ADC:%3u” Expresión que mostrará en la pantalla LCD el mensaje “Valor ADC:”. La expresión ”%3u” es el formato con el cual se va a presentar el valor de la variable “valorAdc”, o sea, 3 dígitos de un entero sin signo. Fig. 8 Desglose de la función “printf“ para la impresión en un Display LCD. El resultado final deberá ser similar al siguiente: Fig. 9 Muestra de un valor Entero sin Signo en la Pantalla LCD.
  • 12. www.novellius.com La línea 21 posiciona el cursor de la pantalla LCD en la columna 1 renglón 2. La línea 22 vuelve a recurrir a una impresión con formato, esta vez con el voltaje. El único cambio que se observa de esta línea con respecto a la línea 20 es el formato de impresión ”%f”, el cual se trata de un número con punto flotante. Éste por defecto imprime un entero más dos cifras después del punto decimal. Finalmente la línea 23 concatena el caracter “V” para indicar que las unidades son Volts. 12 El mensaje compuesto final se visualizará de la siguiente forma: Fig. 10 Mostrar un valor entero sin signo y un valor flotante en una Pantalla LCD. Código 24-26 24. delay_ms(100); 25. } 26. } La línea 24 genera un retardo de 100μs para estabilizar el proceso de la adquisición de la señal. La línea 25 indica el cierre del ciclo infinito declarado en la línea 14, y para finalizar el código de la solución, la línea 26 establece el fin del método principal, o sea, el fin del programa.
  • 13. www.novellius.com 13 5) Pulsa sobre el botón Compile en la sección del mismo nombre. Fig. 11 Compilación del programa de control. 6) Si el código se ha capturado sin errores, aparecerá la siguiente ventana confirmando que la compilación ha sido exitosa; de lo contrario pulsa doble click sobre los errores que se listen y verifica la sintaxis del código fuente. Fig. 12 Confirmación de éxito en la compilación.
  • 14. www.novellius.com 14 Acondicionamiento de la TEMPIC-45 1) Coloca y asegura el Microcontrolador en la Base ZIF de la TEMPIC-45. Fig. 13 Colocación del Microcontrolador en la TEMPIC-45. 2) Ubica la Pantalla LCD de 16x2 caracteres en el Módulo de Conexión para Pantalla LCD de la TEMPIC-45. Recuerda que este módulo alimenta la Pantalla LCD y ajusta automáticamente su contraste. Fig. 14 Conexión de la Pantalla LCD a la TEMPIC-45.
  • 15. www.novellius.com 3) Asegúrate de que los pines 1 y 16 de la Pantalla LCD estén perfectamente alineados con el 15 Módulo de Conexión para Pantalla LCD de la tarjeta entrenadora. Fig. 15 Comprobación de la conexión de la Pantalla LCD a la TEMPIC-45. 4) Coloca el programador de PICs en el Módulo de Programación, corroborando que los pines del módulo coincidan con los del programador en perfecto orden. Fig. 16 Conexión del programador de PICs a la TEMPIC-45.
  • 16. www.novellius.com 16 5) Sitúa el jumper Selector de Alimentación desde el Programador en la posición “OFF”. Fig. 17 Alimentación deshabilitada desde el Programador de PICs. 6) Ubica el Selector de Entrada de Alimentación en la posición “USB”. De esta forma la TEMPIC-45 se energizará a través de la Interfaz USB. Fig. 18 Configuración de la TEMPIC-45 para Alimentación mediante la Interfaz USB.
  • 17. www.novellius.com 7) Mediante cables Dupont realiza la conexión del Display LCD al PIC como se muestra en el 17 siguiente diagrama. D6 D5 D4 D3 D2 LCD 16x2 Caracteres D1 D0 RW RS Fig. 19 Diagrama de conexión de una Pantalla LCD al PIC18F4550. 8) Al terminar las conexiones correspondientes, el resultado deberá ser similar al siguiente. Fig. 20 Conexión de una Pantalla LCD a la TEMPIC-45. RA0/AN0 2 RA1/AN1 3 RA2/AN2/VREF-/CVREF 4 RA3/AN3/VREF+ 5 RA4/T0CKI/C1OUT/RCV 6 RA5/AN4/SS/LVDIN/C2OUT 7 RA6/OSC2/CLKO 14 OSC1/CLKI 13 RB0/AN12/INT0/FLT0/SDI/SDA 33 RB1/AN10/INT1/SCK/SCL 34 RB2/AN8/INT2/VMO 35 RB3/AN9/CCP2/VPO 36 RB4/AN11/KBI0/CSSPP 37 RB5/KBI1/PGM 38 RB6/KBI2/PGC 39 RB7/KBI3/PGD 40 RC0/T1OSO/T1CKI 15 RC1/T1OSI/CCP2/UOE 16 RC2/CCP1/P1A 17 VUSB 18 RC4/D-/VM 23 RC5/D+/VP 24 RC6/TX/CK 25 RC7/RX/DT/SDO 26 RD0/SPP0 19 RD1/SPP1 20 RD2/SPP2 21 RD3/SPP3 22 RD4/SPP4 27 RD5/SPP5/P1B 28 RD6/SPP6/P1C 29 RD7/SPP7/P1D 30 RE0/AN5/CK1SPP 8 RE1/AN6/CK2SPP 9 RE2/AN7/OESPP 10 RE3/MCLR/VPP 1 PIC18F4550 D7 14 13 12 11 10 9 8 7 E 6 5 4 VSS 1 VDD 2 VEE 3
  • 18. www.novellius.com 9) Realiza la conexión del Potenciómetro de 100 KOhm al pin RA0 de la TEMPIC-45, como se 18 indica en la siguiente figura. RA0/AN0 2 RA1/AN1 3 RA2/AN2/VREF-/CVREF 4 RA3/AN3/VREF+ 5 RA4/T0CKI/C1OUT/RCV 6 RA5/AN4/SS/LVDIN/C2OUT 7 RA6/OSC2/CLKO 14 OSC1/CLKI 13 RB0/AN12/INT0/FLT0/SDI/SDA 33 RB1/AN10/INT1/SCK/SCL 34 RB2/AN8/INT2/VMO 35 RB3/AN9/CCP2/VPO 36 RB4/AN11/KBI0/CSSPP 37 RB5/KBI1/PGM 38 RB6/KBI2/PGC 39 RB7/KBI3/PGD 40 RC0/T1OSO/T1CKI 15 RC1/T1OSI/CCP2/UOE 16 RC2/CCP1/P1A 17 VUSB 18 RC4/D-/VM 23 RC5/D+/VP 24 RC6/TX/CK 25 RC7/RX/DT/SDO 26 RD0/SPP0 19 RD1/SPP1 20 RD2/SPP2 21 RD3/SPP3 22 RD4/SPP4 27 RD5/SPP5/P1B 28 RD6/SPP6/P1C 29 RD7/SPP7/P1D 30 RE0/AN5/CK1SPP 8 RE1/AN6/CK2SPP 9 RE2/AN7/OESPP 10 RE3/MCLR/VPP 1 PIC18F4550 100KOhm +5V Fig. 21 Diagrama de conexión de un Potenciómetro al pin RA0 del PIC18F4550. 10) Una vez realizada la conexión del Potenciómetro, asegúrate que el resultado sea similar a la siguiente figura. Fig. 22 Conexión de un Potenciómetro al pin RA0 de la TEMPIC-45.
  • 19. www.novellius.com 19 Programación del Microcontrolador 1) Ejecuta la aplicación PICKit 2® Programmer, ahora verifica que el programa reconozca el modelo del Microcontrolador implementado en la TEMPIC-45. Fig. 23 Ventana principal del PICKit 2® Programmer. 2) Importa el archivo llamado “VoltimetroCD.hex”, hallado en la ruta en la cual salvaste el archivo de código fuente C. Fig. 24 Importación del archivo compilado del código fuente C.
  • 20. www.novellius.com 3) Programa el Microcontrolador pulsando sobre el botón Write. Al terminar el proceso corrobora que la programación del PIC haya sido exitosa; de lo contrario, verifica el acondicionamiento de la TEMPIC-45. 20 Fig. 25 Programación exitosa del Microcontrolador.
  • 21. www.novellius.com 21 Comprobación del Funcionamiento del Programa de Control 1) Observa como se muestra el voltaje del potenciómetro y al valor ADC asociado, una vez completada la solución. Varía la resistencia del potenciómetro y comprueba como el voltaje y el valor de la conversión A/D son desplegados en la Pantalla LCD de 16x2 caracteres. Fig. 26 Verificación del funcionamiento de la solución de control.
  • 22. www.novellius.com 22 Prácticas Propuestas Los siguientes retos comprenden el contenido de esta Práctica, junto con el conocimiento adquirido en las Prácticas I, II y III. 1) Realiza una mejora para controlar límites de voltaje en esta práctica, basándote en los siguientes puntos. a. Muestra en la primera línea de la Pantalla LCD el mensaje “Voltaje max = 3V“. Mientras que en el segundo renglón solo deberá desplegarse el voltaje actual del potenciómetro. Puedes mostrar el voltaje como prefieras, por ejemplo “V = 3.4”, “voltaje = 3.4V”, etc. b. Conecta 2 botones en los pines RB4 y RB5, estos controlarán los tres niveles máximos de voltaje. Los cuales son 3V, 4V y 4.5V. c. El botón en RB4 se encargará del decremento del voltaje máximo y lo mostrará en el renglón 1 de la Pantalla LCD alterando el mensaje original. d. El botón conectado al pin RB5 deberá incrementar el voltaje máximo del potenciómetro, igualmente mostrándolo en el Display LCD. Recuerda que ambos botones sólo pueden ir cambiando los valores entre los 3 voltajes permitidos del punto b. e. Cuando el voltaje máximo sea rebasado, enciende y mantén iluminados los LEDs de RB0 a RB3. Una vez que el voltaje del potenciómetro se encuentre por debajo del máximo, los LEDs deberán apagarse para indicar que la alerta ya no se encuentra activa. 2) En base al siguiente diagrama esquemático y material, programa e implementa un termómetro digital. Material a. Sensor de Temperatura LM35. b. Capacitor Electrolítico de 10uF. c. Amplificador Operacional LM358N. d. Resistencia de 5.1 KOhm. e. Potenciómetro de 100 KOhm.
  • 23. www.novellius.com 23 Diagrama Esquemático 28.0 3 1 VOUT 2 LM35 3 2 1 4 8 LM358N 5 6 7 4 8 LM358N +5V 10u 5.1k 100K Entrada Analógica PIC
  • 24. www.novellius.com Para 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: contacto@novellius.com ¿Tienes dudas acerca de esta Práctica? É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: soporte@novellius.com