Este documento presenta un curso sobre el desarrollo de aplicaciones con el microcontrolador PIC16F886. Cubre temas como las características técnicas del PIC16F886, entradas y salidas digitales y analógicas, periféricos, y una introducción a la programación. Incluye 21 prácticas sobre el uso de diferentes sensores, actuadores y módulos de comunicación.
2. • Introducción a los microcontroladores
• Características técnicas PIC16f886
• Entradas / Salidas digitales
• Entradas analógicas
• Salidas PWM
• Revisión del kit IDETEC
• Sensores
• Actuadores
• Periféricos
• Introducción a programación de microcontroladores en módulos PIC16F886
• IDE desarrollo
• Creación de un nuevo proyecto
• Librerías y Sentencias
• Prácticas
Contenido
vasanza
3. Prácticas1. Entradas y Salidas Digitales
2. Uso Del Adc y Led
3. Uso Display y Botón
4. Uso Display_2dig y Botón
5. Uso Teclado y Display
6. Módulo Lcd
7. Tacómetro_uart
8. Disparador de Relay
9. Buzzer y Teclado
10. Control de Servo Motor
11. Uso Ultrasonico Hy-srf05
12. Control de Servo Motor Con Teclado
13. Control de Servo Motor por Teclado y Visualizacion de Grados en Display 7 Segmentos
14. Ldr y Led
15. Led Rgb
16. Uso Ultrasonico Hy-srf05 y Lcd
17. Modulo Lcd y Uart
18. Sensor Temperatura Ds18b20 y Display
19. SENSOR TEMPERATURA DS18B20 y LCD
20. SENSOR TEMPERATURA DS18B20 y UART
21. LDR y LCD
22. LDR y UARTvasanza
4. Planificación
Sesión Prácticas Sesión Prácticas
1 1. Entradas y Salidas Digitales
2. Uso Del Adc y Led
6 11. Uso Ultrasonico Hy-srf05
12. Control de Servo Motor Con Teclado
2 3. Uso Display y Botón
4. Uso Display_2dig y Botón
7 13. Control de Servo Motor por Teclado y Visualizacion de
Grados en Display 7 Segmentos
14. Ldr y Led
3 5. Uso Teclado y Display
6. Módulo Lcd
8 15. Led Rgb
16. Uso Ultrasonico Hy-srf05 y Lcd
17. Modulo Lcd y Uart
4 7. Tacómetro_uart
8. Disparador de Relay
9 18. Sensor Temperatura Ds18b20 y Display
19. SENSOR TEMPERATURA DS18B20 y LCD
5 9. Buzzer y Teclado
10. Control de Servo Motor
10 20. SENSOR TEMPERATURA DS18B20 y UART
21. LDR y LCD
22. LDR y UART
vasanza
6. Práctica: Uso de Display y Botón
Objetivo
• Aprender hacer uso del display cátodo común I&T.
• Implementar un contador decimal de un dígito.
Duración
• 30min
Materiales
• Módulo de desarrollo PIC16F886
• Dislay 7 segmentos
Descripción
• El presente proyecto hace uso de un display de 7 segmentos cátodo común.
• Implementaremos un contador decimal de un dígito cuyo incremento será mediante el botón
MCLR.
vasanza
7. Desarrollo
Para realizar la práctica planteada es necesario ubicar algunos JUMPER de tal manera que permita el
uso de los componentes necesarios para esta práctica.
1. El módulo Entrenamiento M.E.I&T04 puede utilizar una de dos fuentes de alimentación.
• Fuente de alimentación USB desde PC a través del cable USB.
• Fuente de alimentación EXT desde un Jack DC.
2. Para hacer uso del PIN A.0 como salida o entrada digital tenemos que ubicar el JUMPER que está
encima del potenciómetro en la posición DS (Disable=Deshabilitado) como se muestra en la
figura.
vasanza
Práctica: Uso de Display y Botón
8. 3. Para hacer uso de display cátodo común I&T colocaremos los 8 pines (1-8) en el PORTA del
módulo PIC16F886 de tal manera que la interconexiones queden de la siguiente manera:
1->PORTA.7, 2->PORTA.6, 3->PORTA.5, 4->PORTA.4 , 5->PORTA.3, 6->PORTA.2, 7->PORTA.1,
8->PORTA.0, EN_DIG1->PORTC.0
vasanza
Conexión
Circuito
Práctica: Uso de Display y Botón
9. Código
'*********************************************************
'******************* IDETEC ************************
'************ Módulo Entrenamiento PIC16F886 ****************
'
' * Nombre proyecto: CONTADOR_DECIMAL_1DIGITO
'
' * Descripción:
' Hacer el uso del modulo Display Cátodo Común para implementar
un contador
' binario decimal de un Digito.
' * Configuraciones:
' Microcontrolador: PIC16F886
' Oscillator: INT_RC_OSC_NOCLKOUT, 8MHz
' Compilador: mikroBasic Pro for PC 3.2
'**********************************************************
program CONTADOR_DECIMAL_1DIGITO
SYMBOL BOTON=PORTE.3
SYMBOL EN_DIG1=PORTC.0
DIM VALOR AS BYTE
vasanza
'***********Función para convertir un valor BCD (0-9) ************
‘***********a Código 7 Seg cátodo común ********************
SUB FUNCTION BCD_7SEG(DIM num AS BYTE) AS BYTE
select case num
CASE 0 result = %11111100
CASE 1 result = %01100000
CASE 2 result = %11011010
CASE 3 result = %11110010
CASE 4 result = %01100110
CASE 5 result = %10110110
CASE 6 result = %10111110
CASE 7 result = %11100000
CASE 8 result = %11111110
CASE 9 result = %11110110
END SELECT 'case end
END SUB
Práctica: Uso de Display y Botón
10. Código
MAIN:
' Registro Oscilador de control
OSCCON = 0X75 ' Oscilador interno de 8mhz
' Registro PUERTO A
TRISA = 0X00 ' PORTA.0 Entrada
PORTA = 0X00
' Registro PUERTO B
TRISB = 0X00 ' PORTB salidas
PORTB = 0X00
' Registro PUERTO C
TRISC = 0X00 ' PORTC salidas
PORTC = 0X00
' Registro PUERTO E
TRISE = 0X08 ' PORTE.3 entrada digital
PORTE = 0X00
' Selección de registro analógico. 1 analógico, 0 digitales
ANSEL = 0X00 ' AN<7:0>
ANSELH = 0X00 ' AN<13:8>
VALOR=0
EN_DIG1=1'
vasanza
WHILE(1)
iF(BOTON=0)THEN 'SI PRESIONO EL BOTON
INC(VALOR) 'INCREMENTO VALOR = VALOR + 1
IF(VALOR>9)THEN 'SI VALOR ES > 9 ENTOCES VALO=0
VALOR=0
END IF
WHILE(BOTON=0) WEND 'PREGUNTO SI SOLTO EL PULSADOR
END IF
PORTA=BCD_7SEG(VALOR) 'HAGO LA CONVERSION DE BCD A 7SEG
WEND
END.
Archivos
https://drive.google.com/open?id=1Sduuayt3
H3QRVQqzGuQ0k9N4pXqlASL6
Práctica: Uso de Display y Botón
12. Fuente de alimentación
• Alimentación desde (5 - 25) VDC en el EXT (VIN 9V)
• Interruptor ON/OFF para energizar o des energizar al módulo de entrenamiento.
• Jumper (USB/ EXT) permite seleccionar la fuente que va alimentar al módulo la cual puede ser mediante el EXT (VIN 9V) o USB
que es la energía que se obtiene a través del puerto USB.
Módulo PIC16F886
vasanza
13. Microcontrolador PIC16F886
• 25/24 Pines Entradas/Salidas.
• Puertos (PORT A, B, C, E).
• Oscilador interno seleccionable entre (31KHZ – 8MHZ).
• Rango de voltaje de Operación (2 – 5.5) VDC
• 11 entradas analógicas con 10 bit de resolución.
• 3 Timers (Timer0 8bits, Timer1, 2 16bits).
• 2 PWM (CCP) de 10bits, frecuencia máx. 20KHZ
• Comunicaciones seriales sincrónicas MSSP (SPI (4 modos), I2C)
• Módulo USART (RS-485, RS-232 and LIN 2.0)
Reset (MCLR)
• Este botón posee un resistor pull up y está conectado al PIN MCLR.
• Para utilizar este botón es necesario que se lo habilite mediante software.
Módulo PIC16F886
vasanza
14. ICSP (Programación serial en circuito)
• Este conector IDC 3X2 se lo utiliza para cargar el código en el
microcontrolador usando cualquier programador con terminales ICSP.
Entradas/Salidas en Puertos A, B, C
Cada puerto tiene 8 pines correspondientes a los 8 bits, a cada bit se
denomina Señal I/O acompañada de pines de +Vcc y Gnd, donde Vcc puede
ser seleccionable es decir utilizar el voltaje interno del modulo entrenamiento
o externo mediante el Jack VDD.
• PORTA (0,1,2,3,4,5,6,7)
• PORTB (0,1,2,3,4,5,6,7)
• PORTC (0,1,2,3,4,5,6,7)22,4+3,95+0,8
Entradas Analógicas
AN0=RA0, AN1=RA1, AN2=RA2, AN3=RA3, AN4=RA5, AN8=RB2, AN9=RB3,
AN10=RB1
AN11=RB4, AN12=RB0, AN13=RB5
Módulo PIC16F886
vasanza
15. Led en PORTB
• Para utilizar los led del PORTB, debemos setear los pines de este puerto como
salidas, además debemos de habilitar el jumper LED (EN/DS). De esta manera
quedan habilitados todos los indicadores led del módulo de entrenamiento.
• Conexiones: LED0-> RB0 LED7-> RB7
• Jumper Led: EN Habilita todos los led conectándolos a GND.
• Jumper Led: DS Deshabilita todos los led.
Potenciómetro en PORTA
Para utilizar el potenciómetro del módulo de entrenamiento se debe colocar el
Jumper POT (EN/DS) tal como se indica en la figura de esta manera, el cual
permite conectar el Pin RA0 del PIC con el potenciómetro.
Mediante la variación del POT se producirá un voltaje analógico entre (0 – 5VDC)
el cual será enviado al PIN A0.
Módulo PIC16F886
vasanza
16. Control de motores DC
• El módulo de entrenamiento M.E I&T 04 permite controlar la dirección y
velocidad de motores DC.
• Para aquello se agregado un conector IDC de 5X2 compatible eléctricamente
con los módulos Puente H para motores DC.
• DIR1: RA2 NDIR1: RA4 DIR2: RA3
• NDIR2: RA5 PWM1: RC1 PWM2: RC2
• ADCISENA: RB1 ADCISENB: RB2
Control de Servomotor
Podemos conectar hasta 24 servomotores, debido a que a cada puerto se le
agrego pines de +Vcc y Gnd según el estándar de los servomotores los cuales
poseen 3 señales.
• Señal: Este pin necesita una señal PPM
• VDD/5V: Alimentación atraves del jack VDD si se requiere más corriente o se
utiliza el voltaje del modulo de entrenamiento 5V.
• GND: Tierra (0 VDC)
• Jumper VDD/5V: Permite seleccionar la fuente de alimentación para los
servomotores la cual puede ser la del módulo de entrenamiento o una externa
a través de JACK VDD.
Módulo PIC16F886
vasanza
17. Comunicación Serial UART/USB/FSK
Este módulo nos permite realizar varias aplicaciones con comunicación serial
por este motivo se le incorporo un modulo de comunicación UART-USB y de
radiofrecuencia UART-FSK. Mediante el Jumper USB-PIC-FSK podemos
realizar varias selecciones para diferentes configuraciones .
• PIC TX: Pin RC6 de transmisión de datos seriales UART
• PIC RX: Pin RC7 de recepción de datos seriales UART
Módulo PIC16F886
vasanza