A continuación empezaremos con el curso de Microcontroladores PIC,que constará de 7 prácticas de laboratorio, en cada práctica de laboratorio explicaremos las definiciones, conceptos acerca del tema tratado en cada una de ellas, así también adjuntaremos simulaciones en Microcode y Bascom AVR.
Además adjuntaremos simulaciones adicionales que te servirán de gran aporte para tu aprendizaje, cualquier duda o sugerencia estaremos encantados de responderte, mucha suerte en el curso.
Práctica #1
ü Tema: Reconocimiento y programación mediante los software Microcode y Pickit 2 para el PIC 16F628A.
Práctica #2
ü Tema: Manejo de decodificadores y displays con el
PIC 16F628A.
Práctica #3
ü Tema: Control de velocidad de un motor de CC con el
PIC 16628A mediante una señal PMW Y visualización en una LCD
Práctica #4
ü Tema: Modos de transmisión de datos por medio de la comunicación Serial de un PIC 16F628A .
Práctica #5
ü Tema: Control de
temperatura con un LM35 por medio de un PIC16F877A.
Práctica #6
ü Tema: Programación
en Bascom-AVR y manejo del
Microprocesador ATMEGA16.
Práctica #7
ü Tema: Lectura
de temperatura y voltaje mediante la utilización de los conversores análogo
digital del AVR ATMEGA16.
Links de interés
- Instalador Pickit2 2010
- Microcode Studio 3 [Full]
- Instalador Bascom AVR
Electrónica Práctica con Microcontroladores PIC: Santiago Corrales. V
Microcontroladores "Programación en PIC": Carlos. A. Reyes ( Segunda y Tercera Edición)
Microcontroladores PIC -Diseño Práctico de Aplicaciones –José Angulo, Ignacio Martínez –
Bueno sin más preámbulos comenzaremos con la primera práctica.
Práctica #1
Reconocimiento y programación mediante los software Microcode y Pickit 2 para el PIC 16F628A
2) OBJETIVOS:
2.1. OBJETIVO GENERAL
-Reconocer y programar mediante los software Microcode y Pickit 2 para el PIC 16F628A
2.2. OBJETIVOS SECUNDARIOS:
* Indagar sobre las características técnicas del PIC 16F628A
* Realizar los distintos programas propuestos en clase mediante el uso del software Microcode.
* Simular la programación en el software Proteus
* Armar los circuitos en protoboard
* Grabar los programas en el PIC 16F628A mediante el software Pickit 2 y comprobar su funcionamiento.
* Utilizar el MCLR(reset externo) en el PIC 16F628A .
3) MATERIALES
Práctica Luz Intermitente led
· PIC 16f628A
· Resistencia de 330 Ω
· Diodo led Rojo
Práctica Contador del 1 al 15
· PIC 16F628A
· 4 Resistencias de 330 Ω
· 4 Diodos led
Práctica Contador del 1 al 15 y pulsador con antirebote
· PIC 16F628A
· 4 Resistencias de 330 Ω
· 1 Resistencia de 4.7 kΩ
· 1 Pulsador NA(Normalmente abierto)
· 4 Diodos led
Práctica Secuencia de encendido de luces y uso del MCLR
· PIC 16F628A
· 4 Resistencias de 330 Ω
· 1 Resistencia de 4.7 kΩ
· 1 Pulsador NA(Normalmente abierto)
· 4 Diodos led
4) MARCO TEÓRICO
EL MICROCONTROLADOR PIC16F628A.
Los Microcontroladores PIC (Peripheral interface Controller), son fabricados por la empresa MICROCHIP Technology INC. cuya central se encuentra en Chandler, Arizona, esta empresa ocupa el primer lugar en venta de Microcontroladores de 8 bits desde el año 2002. Su gran éxito se debe a la gran variedad (más de 180 modelos), gran versatilidad, gran velocidad, bajo costo, bajo consumo de potencia, y gran disponibilidad de herramientas para su programación. Uno de los Microcontroladores más populares en la actualidad es el PIC16F628A y sus variantes PIC16F627A y PIC16F648A, estos modelos (serie A) soportan hasta 100.000 ciclos de escritura en su memoria FLASH, y 1’000.000 ciclos en su memoria Eeprom, este está reemplazando rápidamente al popular PIC16F84A, pues presenta grandes ventajas como son ver figura 1:
Figura 1. Tabla de comparación entre el
PIC16F84A y los PIC16F6XX.
Todas estas y otras ventajas más como el oscilador interno RC de 4MHZ, MCLR programable, mayor capacidad de corriente, Programación en bajo voltaje, etc. Lo hacen al PIC16F628A, como el Microcontrolador ideal para estudiantes y aficionados, ya que al tener oscilador interno y el MCLR (master clear) sea programable, es mucho más sencillo ponerlo en funcionamiento, basta con conectar al pin 14 a 5V y el pin 5 a tierra para que empiece a trabajar.
CARACTERÍSTICAS GENERALES.
Se puede resumir las características más relevantes del PIC16F628A,
estas son:
• Velocidad
de operación hasta 20 MHZ con oscilador externo.
• Oscilador
interno RC (resistencia condensador) de 4 MHZ calibrado de fábrica al ±1 %.
• Admite
8 configuraciones de oscilador.
• 8
niveles de PILA.
• Procesador
con arquitectura HARVARD.
• Conjunto
reducido de instrucciones RISC (35) gama media.
• Instrucciones
de un ciclo excepto los saltos (200nS por instrucción a 20 MHZ).
• Resistencias
PULL-UP programables en el puerto B.
• Pin
RA5 MCLR programable como reset externo o pin de entrada.
• Rango
de operación desde 3V hasta 5.5V.
• 15
pines de I/O y 1 sólo de entrada (RA5).
• Temporizador
Perro guardián WDT independiente del oscilador.
• Programable
con bajo voltaje LPV (5V.)
• Programación
serial en Circuito ICSP por 2 pines: RB6 reloj y RB7 datos.
• Código
de protección programable por sectores.
• Memoria
de programa FLASH 2048K de 100.000 ciclos escritura/borrado.
• Memoria
de datos EEPROM de 1.000.000 ciclos escritura/borrado de 100 años retención
• 2
circuitos comparadores análogos con entradas multiplexadas.
• 3 Tuners, Timer 0 a 8 bits, Timer 1 a
16 bits y Timer 2 a 8 bits.
• Módulos
CCP, Captura compara 16 bits, y PWM, modulación de ancho de pulso 10 bits.
• 10
fuentes de interrupción
• Módulo
de comunicación serial USART/SCI.
• Capacidad
de corriente para encender leds directamente (25 mA I/O) por cada pin.
DIAGRAMA DE PINES Y FUNCIONES.
Excluyendo los dos pines de alimentación, todos los 16 pines restantes
pueden ser configurados
como entradas o salidas, algunos de ellos tienen funciones especiales,
ver figura 1.
Figura 1 Presentación más popular del
PIC16F628A el PDIP y su diagrama de Pines
NOTA: sus 2 puertos
el A y el B entregan un total de 200mA cada uno, es decir 25 mA cada pin.
En
modo sumidero pueden soportar cada uno de sus puertos 200mA. es decir 25 mA.
cada pin.
DECLARACIONES DISPONIBLES EN EL COMPILADOR
PBP 2.47.
Debemos entender que
declaraciones son cada una de las palabras que el compilador pbp 2.47
tiene reservado para
realizar una tarea específica, las más utilizadas son: HIGH, LOW, PAUSE,
GOSUB, GOTO, LCDOUT,
SERIN, SEROUT, FOR, NEXT, IF, THEN, SOUND, END.
5) DESARROLLO DE LA
PRÁCTICA
Práctica Luz
Intermitente led
Realizamos el programa en el software Microcode.
led var portb.0
inicio
high led
pause 1000
low led
pause 1000
goto inicio
Configuración del bit de palabra para led intermitente
Nota: Ingresa esta palabra cuando vayas a quemar en el quemador de PICS
Nota: Ingresa esta palabra cuando vayas a quemar en el quemador de PICS
Bit 4 Bit 3 Bit 2 Bit
1 Bit 0
1 0 0 0 1
Práctica Contador del 1 al 15
Realizamos el programa en el
software Microcode.
cmcon=7
TRISA=%1
TRISB=0
p1 var porta.0
x var byte
x=0
inicio
portb=x
if p1=0 then gosub ar
goto inicio
ar:
if p1=0 then ar
x=x+1
return
Configuración del bit de palabra para el contador del 1 al 15
Bit 4 Bit 3 Bit 2 Bit
1 Bit 0
1 0 0 0 1
Luego se procede a armar el circuito de la siguiente figura
3 en el protoboard como se muestra a continuación.
Figura 3 Contador con pulsador del 1 al 15
Práctica
Contador del 1 al 15 con for
Realizamos el programa en el
software Microcode.
trisb=0
x var byte
inicio
for x=0 to 15 step 1
portb=x
pause 1000
next x
goto inicio
Configuración del bit de palabra para el contador con pulsos
del 1 al 15 con for
Bit 4 Bit 3 Bit 2 Bit
1 Bit 0
1 0 0 0 1
Luego se procede a armar el circuito de la siguiente figura
3 en el protoboard como se muestra a continuación.
Figura 4 Contador con pulsador del 1 al 15 con for
Práctica Secuencia
del encendido de luces con el uso
del MCLR
Realizamos el programa en el
software Microcode.
led1 var portb.0
led2 var portb.1
led3 var portb.2
led4 var portb.3
inicio
high led1
pause 300
low led1
high led2
pause 300
low led2
high led3
pause 300
low led3
high led4
pause 300
low led4
high led3
pause 300
low led3
high led2
pause 300
low led2
goto inicio
Configuración del bit de palabra para activar el MCLR
Bit 6 Bit 5
Bit 4
Bit 3 Bit 2 Bit
1 Bit 0
1 1 1 0 0 0 1
Luego se procede a armar el circuito de la siguiente figura 5 en el protoboard como se muestra a continuación.
Figura 5 Contador con pulsador del 1 al 15 con el uso de MCLR
6) CONCLUSIONES
· Una de las características principales del PIC 16F628A es su velocidad de operación y esto se comprueba con el uso de un antirebote en la programación de un contador que se incrementa mediante un pulsador externo.
· El MCLR (RA5) conectado a Vcc nos permite el correcto funcionamiento del PIC en los distintos circuitos.
· En la implementación del hardware se ha tomado varias consideraciones como voltajes de alimentación del PIC 16F628A y los bits de configuración al momento de grabar los datos en el Microcontrolador mediante el software Pickit2.
· Considerar el valor mínimo de la resistencia para no exceder las corrientes que circular por los pines que es de 25mA.
7) RECOMENDACIONES
· Es importante colocar el pin 4 MCLR a Vcc (5 voltios) para que el mejor funcionamiento del PIC 16F628A
· Se debe tomar en cuenta la habilitación del MCLR al momento de colocar los bits de configuración al momento de grabar los datos en el Microcontrolador.
· Considerar el rango de voltaje de alimentación del PIC16F628A.
8) BIBLIOGRAFÍA
Ø
Carlos
A. Reyes, “Microcontroladores PIC y programación en Basic”, tercera edición, Volumen 1, Microchip, 2008, 63-65.
9) ANEXOS
Práctica #2
1) TEMA:
Manejo de decodificadores y displays con el PIC 16628A
2) OBJETIVOS:
2.1. OBJETIVO GENERAL
2.2. OBJETIVOS SECUNDARIOS:
- Indagar sobre las características técnicas del decodificador 7447 (Decodificador)
- Investigar sobre la configuración de pines de los displays de 7 segmentos
- Realizar los distintos programas propuestos en clase mediante el uso del software Microcode.
- Simular la programación en el software Proteus
- Armar los circuitos en protoboard
Manejo de decodificadores y displays con el PIC 16628A
2) OBJETIVOS:
2.1. OBJETIVO GENERAL
Reconocer decodificadores, displays, uso de Flags en los contadores y programar mediante los software Microcode y Pickit 2 para el PIC 16F628A
2.2. OBJETIVOS SECUNDARIOS:
- Indagar sobre las características técnicas del decodificador 7447 (Decodificador)
- Investigar sobre la configuración de pines de los displays de 7 segmentos
- Realizar los distintos programas propuestos en clase mediante el uso del software Microcode.
- Simular la programación en el software Proteus
- Armar los circuitos en protoboard
3) MATERIALES
Práctica Contador con
Displays del 1 al 99 con for anidado
·
PIC 16F628A
·
Decodificador 7447
·
7 Resistencias de 330 Ω
·
2 Resistencias de 4.7 kΩ
·
2 Transistores 2n3904 NPN
·
2 Displays de 7 Segmentos (Ánodo Común)
Práctica Contador con
displays del 1 al 99 con pulsador (banderas)
·
PIC 16F628A
·
Decodificador 7447
·
7 Resistencias de 330 Ω
·
3 Resistencias de 4.7 kΩ
·
2 Transistores 2n3904 NPN
·
2 Displays de 7 Segmentos (Ánodo Común)
·
1 Pulsador NA(Normalmente abierto)
4) MARCO TEÓRICO
MANEJO DE UN DISPLAY DE 7 SEGMENTOS CON EL CI. 7447
Los displays son muy utilizados para visualizar datos, son utilizados
como periféricos de salida un display tipo ánodo común, para lo cual se
facilita el diagrama en la figura 1.
Figura 1.
Esquema de pines ánodo común con el BCD 7447 de un display
EL DECODIFICADOR 7447
El circuito integrado 7447 es un circuito que decodifica señales binarias de 4 bits en unas líneas de salida que posterior mente pueden ser representadas por un display de 7 segmentos mostrando los dígitos decimales. A continuación se muestra el C.I. 7447 véase la figura 2, donde se puede observar que los pines 7,1,2 y 6 funcionan como entradas de un numero binario, mientras los pines 9,10,11,12,13,14,15 pertenecen a las líneas de salida y a cada uno de estos pines le corresponde un segmento del display. También se encuentran los pines de alimentación 16+ y 8- y los pines de control.
Figura 2 Circuito Integrado
Decodificador BCD 7447
USO DEL FLAG O VARIABLE DE UN BIT
Usted se preguntará cómo hacer para que el número se incremente apenas se pulsa la tecla y no
cuando soltamos como actualmente sucede, pues bien para esto utilizamos banderas que no son
nada más que una variable de 1 bit, esta nos indica cuando ha sido pulsada. El siguiente es un
ejercicio adicional aplicando la bandera.
trisb=%11110000 ;hace salidas
sólo los bits más bajos de Puerto B
numero VAR BYTE ;crea la
variable número con valor 255
bot VAR portb.4 ;nombre
para el puerto B.4
flag VAR BIT ;creamos la
variable flag de un bit
encerar:
numero = 0 ;carga con cero a la
variable número
display:
portb=numero ;sacar por el puerto
b el contenido de número
IF
bot=0
THEN aumentar ; si el botón es pulsado ir a aumentar continúa
PAUSE 80 ; pause para
estabilizar el rebote de la tecla
Flag=0 ;cargar la variable con
cero
GOTO display ;ir a
display
aumentar:
IF flag = 1 THEN
GOTO display ;pregunta si la variable es uno
flag = 1 ;cargar la variable con
uno
IF numero=9 THEN
encerar ;si número es =9 encerar número =0
numero=numero + 1 ;sumar 1 a la
variable número
GOTO display ;ir a display
END
5) DESARROLLO DE LA
PRÁCTICA
Práctica Contador con
Displays del 1 al 99 con for anidado
Realizamos el programa en el
software Microcode.
trisb=0
cmcon=7
TRISA=
x var byte
y var byte
z var byte
inicio
for y=0 to 9
for x=0 to 9
for z=1 to 100
porta=%01
portb=x
pause 5
porta=%10
portb=y
pause 5
next
next
next
goto inicio
Configuración del bit de palabra para el contador con
displays del 1 al 99 con for anidado
Bit 4 Bit 3 Bit 2 Bit
1 Bit 0
1 0
0 0 1
Luego se procede a armar el circuito de la siguiente figura
1 en el protoboard como se muestra a continuación
Figura
3 Contador con Displays con pulsador del 1 al 99 con lazo for anidados
Práctica Contador con
displays del 1 al 99 con pulsador (banderas)
Realizamos el programa en el
software Microcode.
trisb=0
cmcon=7
trisa=010100
p1 var
porta.2
x var byte
y var byte
y1 var bit
z var byte
z=0
y=0
x=0
encerar
x=0
if y=9 and x=0 then
y=0
else
y=y+z
endif
inicio
porta=%01
portb=x
pause 5
porta=%10
portb=y
pause 5
if p1=0 then aumentar
y1=0
goto inicio
aumentar:
if y1=1 then goto inicio
y1=1
z=1
if x=9 then encerar
x=x+1
goto inicio
end
Configuración del bit de palabra para uso de bandera con
pulsador
Bit 6 Bit 5
Bit 4
Bit 3 Bit 2 Bit
1 Bit 0
0
0 1 0 0 0 1
Luego se procede a armar el circuito de la siguiente figura
2 en el protoboard como se muestra a continuación.
Figura
4 Contador con displays del 1 al 99 con pulsador (banderas)
6) CONCLUSIONES
-Una de las características principales del PIC 16F628A es su velocidad de operación y esto se comprueba con el uso de un antirebote en la programación de un contador que se incrementa mediante un pulsador externo.
- El MCLR (RA5) conectado a Vcc nos permite el correcto funcionamiento del PIC en los distintos circuitos.
- El uso del decodificador nos permite usar menos puertos del pic16f628A
7) RECOMENDACIONES
-Es importante colocar el pin 4 MCLR a Vcc (5 voltios) para que el mejor funcionamiento del PIC 16F628A
· Se debe tomar en cuenta la habilitación del MCLR colocando el bit de palabra en 0 de grabar los datos en el Microcontrolador.
· Considerar el rango de voltaje de alimentación del PIC16F628A.
· Es importante al momento de realizar la práctica con el decodificador (7447) cortocircuitar los pines 5 y 3(RBI-LT), colocarlos a Vcc para el correcto funcionamiento para los displays.
· Se debe tomar en cuenta la alimentación del display ya que existen de dos tipos ánodo y cátodo.
8) BIBLIOGRAFÍA
Ø
Carlos A. Reyes, “Microcontroladores PIC y programación en Basic”, tercera edición, Volumen 1, Microchip, 2008, 62-66.
Carlos A. Reyes, “Microcontroladores PIC y programación en Basic”, tercera edición, Volumen 1, Microchip, 2008, 62-66.
9) ANEXOS
Práctica #3
1) TEMA:
Control de velocidad de un motor de CC con el
PIC 16628A mediante una señal PMW Y visualización en una LCD
2)
OBJETIVOS:
2.1. OBJETIVO GENERAL
Realizar un programa en el software Microcode
para medir las rpm de un motor dc mediante un PIC 16F628A y visualizar los
datos en una LCD
2.2. OBJETIVOS ESPECIFICOS:
ü Indagar sobre las características técnicas de
una lcd de 2x16
ü Realizar la programación para medir rpm en el
software Microcode
ü Simular la programación en el
software Proteus
ü Armar el circuito en protoboard
3)
MATERIALES
Práctica
de control de velocidad y rpm en un motor de CC
·
PIC 16F628A
·
Regulador de 5 voltios (7805)
·
DISPLAY LCD 2x16
·
1 Eje de giro independiente con un disco
de plástico negro
·
1 Motor de CC
·
2 Pulsadores NA
·
3 Resistencias de 4.7 kΩ
·
1 Potenciómetro 10 kΩ
·
3 Resistencia de 330 Ω
·
1 Resistencia de 10 Ω
·
2 Diodos led
·
1 Resistencia 1 kΩ
·
1 Resistencia 10 kΩ
4) MARCO TEÓRICO
MANEJO DE UN
MÓDULO LCD
Los módulos LCD (Display de Cristal Líquido), son utilizados para mostrar mensajes que indican al operario el estado de la maquina, o para dar instrucciones de manejo, mostrar valores, etc. El LCD permite la comunicación entre las máquinas y los humanos, este puede mostrar cualquier carácter ASCII, y consumen mucho menos que los displays de 7 segmentos, existen de varias presentaciones por ejemplo de 2 líneas por 8 caracteres, 2x16, 2x20, 4x20, 4x40, etc. Sin back light (14 pines) o con backlight (16 pines, iluminado de pantalla), el LCD más popular es el 2x16, 2 líneas de 16 caracteres cada una.
Figura 1. Función de cada pin del LCD
LA DECLARACIÓN LCDOUT. Sirve para mostrar items en una pantalla de cristal líquido, se utiliza escribiendo: LCDOUT, luego escribiendo $FE, y seguido por el comando a utilizar, el siguiente cuadro muestra los comandos más utilizados:
Figura
2. Tabla de los comandos más utilizados para manejar un LCD
OPTO
ACOPLADOR GP3 S2
El giro de un
motor que se une a un cono de caucho, el cual transmite movimiento a un disco
de plástico negro, en el que posee una ranura de 1 a 2 mm, que al pasar por el
medio del optoacoplador, polariza 2 transistores y este hace cambiar el estado
de 0 a 1, esta señal podemos conectarlo al PIC y visualizarlo en un LCD, el
mismo principio utilizan los marcadores de kilometraje de los autos y los
tacómetros de los mismos.
Figura
4. Esquema para unir el motor con el eje independiente de un tacómetro
portátil.
Control PWM
El control PWM
es uno de los tres posibles modos de operación del módulo CCP de los
microcontroladores PIC16F88, 16F628A y 16F877A, y se describe a continuación
debido a su gran importancia en el campo de la automatización.
Una señal PWM es
una forma de onda digital binaria de una determinada frecuencia
y ciclo de trabajo (dutycycle) variable.
En este modo, el
pin CCP1 produce una señal PWM de hasta 10 bits de resolución, lo que significa
que se tienen hasta 1024 opciones de configuración del ciclo de
trabajo. Este pin tiene que configurarse como salida por medio del
registro TRISB. La figura 4 muestra un diagrama de bloques del módulo
CCP operando como control PWM.(2).
Una señal PWM se
caracteriza por una base de tiempo (período) y un tiempo durante el cual la
salida tiene un nivel alto (ciclo de trabajo). La frecuencia es el inverso del
período.
Figura
7. Señal PWM.
5)
DESARROLLO DE LA PRÁCTICA
Práctica
de control de velocidad y rpm en un motor de CC
5.1. Realizar el
programa en el software Microcode.
DEFINE CCP1_REG PORTB
DEFINE CCP1_BIT 3
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 1
cmcon=7
TRISA=%11
TRISB=%1
R
VAR WORD
X
VAR WORD
E
VAR BYTE
P1
VAR PORTA.0
P2
VAR PORTA.1
Y
VAR BYTE
Y=0
R=0
X=0
E=0
LCDOUT,$FE,1
LCDOUT,$FE,$83,"UFA
ESPE-L"
LCDOUT,$FE,$C4,"RPM MOTOR"
PAUSE 1000
LCDOUT $FE, 1
LCDOUT $FE, $80,
"VELOCIDAD:"
LCDOUT $FE, $80+10,DEC
Y,"%"
LCDOUT $FE, $C0,
"RPM"
LCDOUT
$FE, $C0+5, DEC R
INICIO
HPWM 1,X,10
IF P1=0 THEN GOSUB AUMENTAR
IF P2=0 THEN GOSUB DISMINUIR
LCDOUT $FE, 1
LCDOUT $FE, $80, "VELOCIDAD:"
LCDOUT $FE, $80+10,DEC
Y,"%"
LCDOUT $FE, $C0,
"RPM"
LCDOUT $FE, $C0+5, DEC R
R=0
COUNT PORTB.0,1000,R
R=R*15/2
GOTO
INICIO
AUMENTAR:
IF
P1=0 THEN AUMENTAR
IF
Y<100 THEN
Y=Y+10
E=E+5
X=(255/100)*Y+E
ENDIF
RETURN
DISMINUIR:
IF P2=0 THEN DISMINUIR
IF Y>0 THEN
Y=Y-10
E=E-5
X=(255/100)*Y+E
ENDIF
RETURN
5.2. Configuración del bit de palabra para la
práctica de control de velocidad y rpm en un motor de CC
Bit 4 Bit 3
Bit 2 Bit 1 Bit 0
1 0 0 0 1
5.3. Luego se procede a armar el circuito de la
siguiente figura 8 en el protoboard como se muestra a continuación.
Figura 8.Control de velocidad y rpm en un motor de CC
Figura
9. Simulación en Proteus del control
de velocidad y rpm en un motor de CC
6)
CONCLUSIONES
· Se logró realizar la lectura de las rpm de un motor dc mediante el PIC 16F628A con la ayuda de un sensor de herradura GP3 S2 que se encargaba de contar los pulsos por cada revolución.
· El incremento porcentual de la velocidad y el número de revolucione no es proporcional debido a que el sensor no es lineal.
· La visualización de datos se realizó mediante una LCD de 2x16 la cual se programó mediante el software Microcode.
7)
RECOMENDACIONES
· Tomar en cuenta el tipo d sensor a utilizar para contar los pulsos por revolución del motor
· Colocar capacitores cerámicos entre Vcc y GND a fin del filtar el ruido que se produce debido al motor para que este no afecte el funcionamiento del PIC16F628A
8)
BIBLIOGRAFÍA
Ø (1)Carlos A. Reyes,
“Microcontroladores PIC y programación en Basic”, tercera edición, Volumen 1, Microchip,
2008, 79-89.
Ø (2) Proyectos
Electrónicos (2008).”Opto Acopladores”. Disponible en:
http://es.scribd.com/doc/5516426/Optoacopladores
Ø (3)TecMikro (2010).”Control
PWM de un motor DC con microcontroladores”. Disponible en:
Práctica #4
1) TEMA:
Modos de transmisión de datos por medio de la comunicación Serial
2) OBJETIVOS:
2.1. OBJETIVO
GENERAL
Realizar una comunicación serial con el PIC16f628A
2.2. OBJETIVOS
ESPECÍFICOS:
ü
Realizar la comunicación serial PC-PIC
ü
Realizar la comunicación serial PIC-PC
ü
Realizar la comunicación serial PIC-PIC
ü
Realizar la programación en Microcode y su
simulación en el software Proteus
ü Armar los circuitos en protoboard
3) MATERIALES
Comunicación serial
PIC-PC
·
1 PIC 16F628A
·
1 Regulador
de 5 voltios (7805)
·
1 Oscilador de cristal 4 MHz
·
2 Capacitores de 22pf
·
1 Resistencia de 220 Ω
·
1 Resistencia de 330 Ω
·
1 Diodos led
·
Db9 macho
del PC
Comunicación serial
PC-PIC
·
1 conector DB9 hembra con su respectivo cajetín
·
2 resistencias uno de 10 Ω y otro de 22 KΩ.
·
2 mts de cable de 2 hilos para transmisión de
datos.
·
1 cristal de 4 MHZ.
·
2 capacitores de 22 pF.
·
1 LCD 2 x 16
·
1 potenciómetro de 10 KΩ
·
Comunicación serial PIC-PIC
Comunicación serial
PIC-PIC
·
2 mts de
cable de 2 de hilos
·
4 diodos
leds
·
4
resistencias de 4,7 K Ω
·
4
resistencia de 330Ω
·
4
pulsadores NA
·
2
PIC16F628A.
4) MARCO TEÓRICO
COMUNICACIÓN SERIAL
Existen dos formas de realizar
una comunicación binaria, la paralela y serial. La comunicación paralela como
por ejemplo la comunicación del PIC con el CI. 7447, en donde los datos viajan
simultáneamente a través de los 4 hilos, tiene la ventaja de que la
transferencia de datos es más rápida, pero el inconveniente es que necesitamos
un cable por cada bit de dato, lo que encarece y dificulta el diseño de las
placas, otro inconveniente es la capacitancia que genera los conductores por lo
que la transmisión se vuelve defectuosa a partir de unos pocos metros.
La comunicación serial en cambio
es mucho más lenta debido a que transmite bit por bit pero tiene la ventaja de
necesitar menor cantidad de hilos, y además se puede extender la comunicación a
mayor distancia, por ejemplo; en la norma RS232 a 15 mts., en la norma
RS422/485 a 1200mts y utilizando un MODEM, pues a cualquier parte del mundo.
Existen dos formas de realizar la
comunicación serial: la sincrónica y la asincrónica, la diferencia entre estas
dos formas de comunicación es que la comunicación sincrónica además de la línea
para la transmisión de datos, necesita otra línea que contenga los pulsos de
reloj, estos a su vez indican cuando un dato es válido. Por otra parte la
comunicación serial asincrónica no necesita pulsos de reloj.
MODOS DE TRANSMISIÓN DE DATOS
Los
modos de transmisión de datos se dividen en cuatro tipos y estos son:
Simplex. Se dice a la transmisión que
puede ocurrir en un sólo sentido, sea sólo para recibir o sólo para transmitir.
Una ubicación puede ser un transmisor o un receptor, pero no ambos a la vez, un
ejemplo claro es la radiodifusión, en donde la estación es el transmisor y los
radios son los receptores.
Half-duplex. Se refiere a la transmisión que
puede ocurrir en ambos sentidos pero no al mismo tiempo, en donde una ubicación
puede ser un transmisor y un receptor, pero no los dos al mismo tiempo, un
ejemplo son los llamados radios WALKING TALKING, en donde un operador presiona
el botón y habla, luego suelta el botón y el otro usuario presiona el botón
para contestar.
Full-duplex. Se dice a la transmisión que
puede ocurrir en ambos sentidos y al mismo tiempo, también se los conoce con el
nombre de líneas simultáneas de doble sentido, una ubicación puede transmitir y
recibir simultáneamente, siempre y cuando la estación a la que está
transmitiendo también sea la estación de la cual está recibiendo un ejemplo es
la telefonía móvil.
Full/full-duplex. Con este modo de transmisión es
posible transmitir y recibir simultáneamente, pero no necesariamente entre las
dos ubicaciones, es decir una estación puede transmitir a una segunda estación
y recibir de una tercera estación al mismo tiempo. Esta transmisión se utiliza
casi exclusivamente con circuitos de comunicación de datos.
COMUNICACIÓN
SERIAL PIC-PC.
Consiste en enviar datos, más específicamente
los caracteres ASCII de la palabra “DOG”, a través de un cable y directamente
desde el PIC al PC, a 2400 bits/seg., a 8 bits de datos, sin paridad, y 1 bit
de parada. Como sabemos el computador tiene al menos un puerto serial, con la
norma RS232, por lo tanto debemos simular esos voltajes desde el PIC, esto lo
conseguimos enviando 0 para representar el 1lógico y 5V para representar el 0
lógico, para esto existe la declaración SEROUT. Sirve para mostrar items en una
pantalla de cristal líquido, se utiliza escribiendo: LCDOUT, luego escribiendo
$FE, y seguido por el comando a utilizar, el siguiente cuadro muestra los
comandos más utilizados:
LA DECLARACIÓN
SEROUT. Esta
declaración sirve para enviar datos seriales en un formato estándar asincrónico
usando 8 bits de dato, sin paridad y 1 stop bit, (8N1), y para poder utilizarlo
SEROUT puerto B.1, N2400,[“D”] ;enviar el carácter ASCII “D” por el
puerto B1 a 24008N1, en dato invertido (figura 1).
Figura
1. Esquema del dato enviado por el PIC simulando la norma RS232, noten que es
muy
similar al esquema 5.9.3.2. pero con diferentes niveles de voltaje
Debemos incluir al comienzo del programa la
siguiente línea:
INCLUDE
“modedefs.bas” ;incluir el programa modedefs.bas(modos de
comunicación)
Esto significa incluir el programa modedefs.bas en esta línea, aquí se encuentran algunos de los parámetros para las comunicaciones, por ejemplo en nuestro caso las velocidades de transmisión que son: para dato invertido N300, N1200, N2400, N9600, y para dato verdadero: T300, T1200, T2400, T9600. Los datos invertidos por ejemplo el N2400, quiere decir que un 1 lógico vale 0V. y un 0 Lógico vale 5V, en cambio para dato verdadero por ejemplo el T2400 el 1 lógico vale 5V. y el 0 lógico vale 0V.
Figura 2. Diagrama de conexión del PIC para
enviar datos al PC sin el CI. MAX232.
COMUNICACIÓN
SERIAL PIC-PC.
Se trata de enviar datos desde el PC al PIC, por lo que es de suponer los voltajes serán desde - 10V. hasta +10V. y la distancia podemos extenderlo hasta 15 mts, sin ningún problema, como la conexión es directamente al PIC debemos colocar una resistencia de 22K para no dañar el puerto del PIC. En este caso el PIC es un receptor por lo que debe permanecer en espera del bit de inicio, para esto tenemos la declaración SERIN.
LA DECLARACIÓN SERIN. Esta declaración sirve para recibir datos seriales en un formato estándar asincrónico usando 8 bits de dato, sin paridad y 1 stop bit, (8N1), y para poder utilizarlo debemos incluirlo igualmente que para el SEROUT la línea INCLUDE “modedefs.bas” al inicio del programa, su forma de utilizar es la siguiente:
SERIN
portb.0, N2400, letra
; esperar un dato serial y lo guarda en la variable previamente creada llamada
letra.
Es importante saber que esta
declaración detiene el programa esperando el bit de inicio, y solamente cuando
haya recibido un dato, continúa con la siguiente línea de programa, para hacer que
sólo espere un determinado tiempo y luego continúe con la siguiente línea debe
utilizar Timeout, para mayor información refiérase al manual de pbp, o utilice
una interrupción externa para atender el dato a recibir, ver figura 3.
Utilizando la interrupción en el puerto B.0.
Figura
3. Diagrama de conexión del PIC para recibir datos del PC sin CI. MAX232
COMUNICACIÓN
SERIAL PIC A PIC.
Este proyecto
consiste en hacer una transmisión simplex entre un PIC transmisor y un PIC receptor,
el primero dispone de 3 botones, el botón A envía la letra “A” el cual el PIC
receptor lo detecta y enciende un led rojo por 1 segundo, desde el transmisor
presionamos el botón B y transmite la letra “B”, el receptor encenderá una led
amarillo, igualmente después de un segundo lo apagará y por último desde el
transmisor presionamos la tecla C y el receptor encenderá un led verde. Por
tratarse de una práctica y no complicarnos con el MAX232, ya que necesitaríamos
2, sólo realizaremos a una distancia de 2 metros conectando directamente de PIC
a PIC utilizando dato invertido (N2400).
Figura
4. Diagrama de conexión para hacer una comunicación serial desde un PIC hacia
otro PIC.
Se debe utilizar una o dos
fuentes de 5 voltios, pero sería recomendable 2 fuentes para que la comunicación
se vea más real, como es de suponerse se necesitará de 2 programas diferentes
uno para cada micro controlador.
Práctica de comunicación
serial PIC-PC
Realizamos el programa en el
software Microcode.
INCLUDE "modedefs.bas"
define OSC 4
led var portb.1
INICIO:
high led
pause 500
low led
pause 500
serout portb.0,T2400,["
MECATRONICA "]
GOTO INICIO
Configuración del bit de palabra para la práctica de
comunicación serial PIC-PC
Bit 6 Bit 5
Bit 4 Bit 3 Bit 2
Bit 1 Bit 0
0 0
0 0 0 0 1
Luego se procede a armar el circuito de la siguiente figura
1 en el protoboard como se muestra a continuación
Figura
5. Comunicación serial del
PIC -PC
Práctica de
comunicación serial PC-PIC
Realizamos el programa en el
software Microcode.
INCLUDE "modedefs.bas"
define OSC 4
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 1
DATO VAR WORD
LCDOUT $fe,1
LCDOUT
$fe,$80,"RECIBIENDO....."
PAUSE 1000
LCDOUT $fe,1
INICIO
SERIN
portb.0, T2400,DATO
LCDOUT DATO
GOTO INICIO
Configuración del bit de palabra para la práctica de
comunicación serial PC-PIC
Bit 6 Bit 5
Bit 4 Bit 3 Bit 2
Bit 1 Bit 0
0 0 0 0 0 0 1
Luego se procede a armar el circuito de la siguiente figura
1 en el protoboard como se muestra continuación.
Figura
6. Comunicación serial del PC
–PIC
Práctica de
comunicación serial PIC-PIC
Realizamos el programa en el
software Microcode.
TRANSMISOR
include"modedefs.bas"
P1 var porta.0
P2 var porta.1
P3 var porta.2
P4 var porta.3
trans:
if P1=0 then envio1
if P2=0 then envio2
if P3=0 then envio3
if P4=0 then envio4
goto trans
envio1:
if P1=0 then envio1
serout
portb.0,T2400,["A"]
pause 500
return
envio2:
if P2=0 then envio2
serout portb.0,T2400,["B"]
pause 500
return
envio3:
if P3=0 then envio3
serout
portb.0,T2400,["C"]
pause 500
return
envio4:
if P4=0 then envio4
serout
portb.0,T2400,["D"]
pause 500
return
end
RECEPTOR
include
"modedefs.bas"
led1 var portb.1
led2 var portb.2
led3 var portb.3
datos var byte
recibir:
serin
portb.0,T2400,datos
if datos="A"
then high led1
if datos="B"
then high led2
if datos="C"
then high led3
if datos="D" then apagado
goto recibir
end
apagado:
low led1
low led2
low led3
goto recibir
Configuración del bit de palabra para la práctica de
comunicación serial PIC-PIC
Bit 6 Bit 5
Bit 4 Bit 3 Bit 2
Bit 1 Bit 0
0 0 0 0
0 0 1
Luego se procede a armar el circuito de la siguiente figura
1 en el protoboard como se muestra a continuación.
Figura
7. Comunicación serial del
PIC –PIC
6) CONCLUSIONES
· La comunicación serial es importante ya que nos permite una comunicación entre componentes físicos, permitiéndonos una visualización de las variables de Ingenieria como temperatura, velocidad, luminosidad, presión, etc. Todos estos parámetros nos permiten verificar lo que sucede en la vida real.
· Al momento de importar el programa al PIC se debe considerar los bits de configuración para la activación del oscilador externo.
· De la presente práctica se concluye que cuando se utiliza un conversor USB serial hembra, en la programación se coloca el valor negado.
7) RECOMENDACIONES
· Es importante utilizar un cristal de 4 MHZ para que este proyecto funcione correctamente, sólo así los tiempos de transmisión serán los correctos, si se utiliza el oscilador interno del PIC16F628A, pueda que visualice datos erróneos en la pantalla.
· Considerar el rango de voltaje de alimentación del PIC16F628A.
8) BIBLIOGRAFÍA
Ø
Carlos
A. Reyes, “Microcontroladores PIC y programación en Basic”, tercera edición, Volumen 1, Microchip, 2008, 127-138.
9) ANEXOS
Subiendo archivos............