✅ Objetivo
▷ Aprender hacer uso de dos displays cátodo común.
▷ Implementar un contador decimal de dos dígitos.
✅ Duración
▷ 30min
✅ Materiales
▷ Módulo de desarrollo PIC16F886
▷ Dos dislays 7 segmentos cátodo común
✅ Descripción
▷ El presente proyecto hace uso de dos display de 7 segmentos cátodo común.
Implementaremos un contador decimal de dos dígitos cuyo incremento será mediante el botón MCLR.
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 de 2 Dígitos y Botón
Objetivo
• Aprender hacer uso de dos displays cátodo común.
• Implementar un contador decimal de dos dígitos.
Duración
• 30min
Materiales
• Módulo de desarrollo PIC16F886
• Dos dislays 7 segmentos cátodo común
Descripción
• El presente proyecto hace uso de dos display de 7 segmentos cátodo común.
• Implementaremos un contador decimal de dos dígitos 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 PIC16F886 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 de 2 Dígitos y Botón
8. 3. Para hacer uso de dos displays cátodo común 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, EN_DIG2->PORTC.1
vasanza
Conexión
Circuito
Práctica: Uso de Display de 2 Dígitos y Botón
9. Código
'*********************************************************
'******************* IDETEC ************************
'************ Módulo Entrenamiento PIC16F886 ****************
'
' * Nombre proyecto: CONTADOR_DECIMAL_2DIG
'
' * Descripción:
' Hacer el uso del módulo Display Cátodo Común para implementar
‘ un contador
' binario decimal de dos Dígitos.
' * Configuraciones:
' Microcontrolador: PIC16F886
' Oscillator: INT_RC_OSC_NOCLKOUT, 8MHz
' Compilador: mikroBasic Pro for PC 3.2
'**********************************************************
program CONTADOR_DECIMAL_2DIG
SYMBOL BOTON=PORTE.3
SYMBOL EN_DIG1=PORTC.0
SYMBOL EN_DIG2=PORTC.1
DIM VALOR,FLAG 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 de 2 Dígitos y Botón
10. Código
sub procedure interrupt ' Interrupt service routine
flag= not(flag)
if(flag=255) then
EN_DIG1=0
EN_DIG2=1
Delay_10us
PORTA=BCD_7SEG(VALOR mod 10
‘HACE LA CONVERSION DE BCD A 7SEG
else
EN_DIG1=1
EN_DIG2=0
Delay_10us
PORTA=BCD_7SEG(VALOR/10)
‘HACE LA CONVERSION DE BCD A 7SEG
end if
TMR0 = 204
INTCON = $A0
' Set INTERRUPCION Y BANDERA DEL TMR0 (T0IE, T0IF )
end sub
vasanza
Práctica: Uso de Display de 2 Dígitos y Botón
11. Código
MAIN: ' Registro Oscilador de control
OSCCON = 0X75 ' Oscilador interno de 8mhz
' Registro de Opciones
OPTION_REG=%10000111
' Deshabilito resistores pull up y asigno prescaler to TMR0 ' (256)
TMR0 = 204 ' Timer0 initial value (Fosc/4)*prescalador*(256-TMRO) desborde= 6.656 ms
INTCON = %10100000 ' Enable TMRO interrupt
' 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
FLAG=0
vasanza
WHILE(1)
iF(BOTON=0)THEN 'SI PRESIONO EL BOTON
INC(VALOR) 'INCREMENTO VALOR = VALOR + 1
IF(VALOR>99)THEN 'SI VALOR ES > 99 ENTOCES VALO=0
VALOR=0
END IF
WHILE(BOTON=0) WEND 'PREGUNTO SI SOLTO EL PULSADOR
END IF
WEND
END.
Archivos
https://drive.google.com/open?id=1A0UIntqo
H2qVi2pS3BNTgOuBmdhX4pBx
Práctica: Uso de Display de 2 Dígitos y Botón
13. 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
14. 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
15. 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
16. 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
17. 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
18. 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