Micro Pic
Micro Pic
Micro Pic
´ PI C
ELECTRÓNICA PRÁCTICA
CON MICROCONTROLADORES PIC
1
S. C. ´ PI C
Título Original:
ELECTRÓNICA PRÁCTICA CON MICROCONTROLADORES PIC
DERECHOS RESERVADOS
Diseño de Portada: Santiago Corrales V.
Programación: Santiago Corrales V.
Fotografía: Santiago Corrales V.
IMPRESO EN ECUADOR
2
S. C. ´ PI C
CONTENIDO
PROLOGO………………………………………………………………………………...7
Manejo de secuencias...………………………………………………………………….25
Estudio de subrutinas…………………………………………………………………….29
Variables…………………………………………………………………………………32
Cambio de nombre a los puertos…………………………………………………………33
Instrucciones múltiples…………………………………………………………………..33
Instrucción FOR – NEXT………………………………………………………………..34
Pulsadores y switch………………………………………………………………………35
Instrucción IF – ELSE – ENDIF…………………………………………………………36
Instrucción SELECT – CASE……………………………………………………………40
3
S. C. ´ PI C
4
S. C. ´ PI C
Instrucción POT……………………………………………………………………...…126
6. MANEJO DE MOTORES
5
S. C. ´ PI C
6
S. C. ´ PI C
PROLOGO
En la actualidad los microcontroladores son la herramienta fundamental para el desarrollo
científico y tecnológico, saber sobre estas mini computadoras es muy importante ya que
se encuentran en nuestro trabajo, nuestro hogar, en los computadores, en proyectos
aeroespaciales, etc.
Todas estas áreas de aplicación me han motivado a realizar este libro en el cual he puesto
todos mis conocimientos adquiridos por estudio y por experiencia.
Lo he realizado de una manera clara para que el lector no tenga dificultad en el
aprendizaje y pueda encontrar soluciones a diversos problemas que podrá hallar en su
vida cotidiana.
Los diferentes temas que se encontrará en el libro son exclusivamente trabajados con
microcontroladores PIC por ser más económicos y muy fáciles de encontrarlos en las
tiendas electrónicas. En el capitulo1 se encuentran conocimientos básicos que el lector
debe conocer para introducirse en el manejo de estos dispositivos electrónicos, el capitulo
2 trata sobre la programación para el microcontrolador, para explicar las instrucciones del
lenguaje BASIC para PIC se ha elegido el 16F628A por varias ventajas que las irá
conociendo en el transcurso del libro. El capitulo 3 aprenderá a manejar comunicación
con el computador, entre microcontroladores, y monitoreo con LABVIEW. En el capitulo
4 se encuentra el manejo de dos dispositivos de radio frecuencia, con los cuales podrá
introducirse en la era inalámbrica que está gobernando el mundo entero. En el capitulo 5
se detalla el funcionamiento de dos microcontroladores más por ser de gran ayuda a la
hora de realizar un proyecto. Y en el capítulo 6 el lector aprenderá a manejar diversos
motores para realizar proyectos de robótica.
7
S. C. ´ PI C
8
S. C. ´ PI C
MICROCONTROLADORES PIC
CONOCIMIENTOS BASICOS
INTRODUCCION A LOS MICROCONTROLADORES
Microchip es una empresa que está liderando las ventas de este dispositivo, por su bajo
costo, por tener una gran variedad de modelos, y por su programación muy sencilla, la
que hace que el microcontrolador PIC se esté estudiando en diversas universidades de
gran prestigio a nivel mundial.
MICROCONTROLADOR PIC
9
S. C. ´ PI C
En la figura se puede observar la estructura interna de un microcontrolador, y como se
puede apreciar posee un circuito externo de reloj, el cual indica al micro la velocidad a la
que debe trabajar. Este circuito, que se conoce como oscilador o reloj, es muy simple
pero de vital importancia para el buen funcionamiento del sistema, ya que sin él no
podríamos ejecutar las órdenes o las líneas de instrucción que se encuentran programadas
en el mismo.
Los diferentes tipos de cristal más comunes para un microcontrolador PIC son:
R
IC
P
R
O OSC1
D
A
L
O
R
T
N
O OSC2
C
O
R
C
C
I
M
• XT. Cristal.
IC 22pF
P
R
O
D OSC1
A
L
O 4 Mhz
R
T 22pF
N
O OSC2
C
O
R
C
I
M
10
S. C. ´ PI C
Arquitectura Von Neumann Dispone de una sola memoria principal donde se
almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a través
de un sistema de buses único (direcciones, datos y control).
Arquitectura Harvard Dispone de dos memorias independientes, una que contiene sólo
instrucciones, y otra que contiene sólo datos. Ambas disponen de sus respectivos sistemas
de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura)
simultáneamente en ambas memorias, ésta es la estructura para los PIC's.
Memoria de programa
Esta vendría a ser la memoria de instrucciones, aquí es donde almacenaremos nuestro
programa o código que el micro debe ejecutar. No hay posibilidad de utilizar memorias
externas de ampliación.
Memorias EEPROM. (Electrical Erasable Programmable Read Only Memory -
Memoria de sólo lectura Programable y borrable eléctricamente).- Ésta tarea se hace a
través de un circuito grabador y bajo el control de un PC (IC-PROG). El número de veces
que puede grabarse y borrarse una memoria EEPROM es finito aproximadamente 1000
veces.
• Memorias FLASH. Posee las mismas características que la EEPROM, pero ésta
tiene menor consumo de energía y mayor capacidad de almacenamiento, por ello
está sustituyendo a la memoria EEPROM.
11
S. C. ´ PI C
Memoria de datos
1. RAM estática ó SRAM: donde residen los Registros Específicos (SFR) con 24
posiciones de tamaño byte, aunque dos de ellas no son operativas y los Registros de
Propósito General (GPR) con 68 posiciones.
12
S. C. ´ PI C
A más de esto posee grandes ventajas como son: Comunicación AUSART, Oscilador
interno de 4 MHz, Master Clear (MCLR) programable, etc.
La
Vccalimentación del microcontrolador
= 5V, este valor PIC endesde
de Vdd puede variar general
3V es de Vss
hasta = GND
5.5V. Posee=a0V y de
más de Vdd
ello =2
puertos de I/O el Puerto A y el Puerto B, los cuales trabajan a 8 bits cada uno y entregan
25mA por cada PIN, y en modo sumidero pueden soportar hasta 25mA por cada PIN.
13
S. C. ´ PI C
1. 31,25 KHz
2. 125 KHz
3. 250 KHz
4. 500 KHz
5. 1 MHz
6. 2 MHz
7. 4 MHz
8. 8 MHz
14
S. C. ´ PI C
Además de ello posee 8 Conversores Análogo - Digital A/D, una de las principales
diferencias frente a los otros pic estudiados anteriormente es la capacidad que posee, y
por esta razón es el más utilizado en proyectos avanzados que requieren mayor numero
de entradas y/o salidas, como automatización de procesos industriales, alarmas
residenciales, etc. Una desventaja es que debe ser conectado con un cristal externo, ya
que no tiene incorporado el mismo y necesita también en el Master Clear una resistencia
Pull – Up, ya que no hay forma de deshabilitar esta opción.
15
S. C. ´ PI C
Detalle de las partes más importantes del MicroCode Studio y del PicBasic Pro.
16
S. C. ´ PI C
17
S. C. ´ PI C
genera 4 archivos que son: .ASM, .MAC, .PBP y .HEX, siendo este último el más
importante ya que éste sirve para grabar el microcontrolador PIC.
18
S. C. ´ PI C
.- Por medio de
la ventana abrir, buscamos la carpeta donde se haya hecho el programa, y seleccionamos
el archivo .HEX que deseamos cargar en el PIC.
19
S. C. ´ PI C
Al cargar el programa .HEX, cambian los valores de dirección, por otros distintos a
3FFF, así podremos darnos cuenta que el programa a sido cargado en el programador.
20
S. C. ´ PI C
Siguiendo estos pasos no tendrá ningún problema a la hora de realizar sus proyectos.
Puede ser por dos motivos. El primero es que no se encuentra bien habilitado el Hardware
a utilizar, o el segundo es que el microcontrolador que está utilizando está en mal estado,
por lo que siempre debemos tener mucho cuidado con los micros porque éstos son de
tecnología CMOS, y son muy vulnerables a la estática, por lo que se aconseja manejarlos
con pinzas para evitar el contacto directo con las manos.
21
S. C. ´ PI C
Proteus es una herramienta fundamental para las personas que están readicionadas con el
mundo de los microcontroladores, ya que ésta permite realizar simulaciones de los
proyectos montados, es decir no hace falta: probar en protoboard el proyecto, comprar
materiales, quemar los microcontroladores, etc. Simplemente necesitamos seleccionar
cada uno de los elementos a utilizar, ya que esta poderosa herramienta contiene:
Microcontroladores PIC, LCD’s, Relés, Leds, Displays, etc.
22
S. C. ´ PI C
2. Para el caso de una resistencia de 4,7K debe escribir RES 4K7, y seleccionar la
MINIRES 4K7.
.- Esta herramienta permite escoger Gnd y Vcc para realizar el proyecto.
23
S. C. ´ PI C
Para realizar la programación lo único que se debe hacer es seleccionar el área donde se
debe ubicar el microcontrolador y proceder a grabarlo mediante el software IC – PROG
que ya se ha detallado anteriormente.
24
S. C. ´ PI C
PROGRAMANDO EL PIC
“16F628A”
En sí la programación de los microcontroladores PIC en lenguaje Basic, es la misma, lo
único que los diferencia unos de otros es la definición de los puertos, y ciertas ventajas
que poseen.
El PIC 16F628A consta de 2 puertos el A y el B, los cuales trabajan a 8 bits cada uno, es
decir se divide el puerto A y B en 8 bits de entrada o salida así:
PUERTO A
PUERTO B
MANEJO DE SECUENCIAS
Iniciaremos las secuencias aprendiendo a utilizar las instrucciones: PORT, HIGH, LOW,
PAUSE.
PORT.- Esta instrucción nos permite indicar que puerto se va a ocupar, y por lo general
va acompañado de otra instrucción. Su sintaxis es la siguiente:
HIGH.- Permite sacar 5 Vcc o 1 Lógico por un puerto del microcontrolador, y a la vez lo
convierte en salida. Ejemplo:
PAUSE.- Detiene el programa por un período en milisegundos así: PAUSE 1000; realiza
una pausa en el programa de 1000 ms equivalente a 1 segundo.
25
S. C. ´ PI C
Un período tiene 16 bits, por lo que se podrá colocar una pausa hasta de 65535
milisegundos, es decir 1,09 minutos equivalentes a 65,5 segundos.
Más adelante se indicará como realizar pausas de más de 1 min, hasta varias horas de
acuerdo a las necesidades del programa.
Una vez estudiadas éstas instrucciones podremos empezar con nuestro primer proyecto el
cual realizará la función de un 555 como un oscilador monoestable.
Oscilador Monoestable.PBP
0 1 2 3 4 5 6 7 8 9 10 t [seg]
Ahora realizaremos la simulación en el Proteus de la siguiente manera:
26
S. C. ´ PI C
Damos un clic derecho en cualquier parte del componente que se desee seleccionar y se
pintará de color rojo, eso quiere decir que se ha seleccionado correctamente, si se realiza
doble clic derecho, el componente se borrará.
27
S. C. ´ PI C
Damos un clic derecho en cualquier parte de la pantalla para deshabilitar la selección del
componente y corremos el programa digitando F12 desde el teclado del computador.
Apagado el LED
Estos pasos se seguirán para realizar cada uno de los proyectos que se encuentran en el
libro, o si prefieren pueden utilizar el simulador de un entrenador el cual posee todos los
elementos que se necesitarán para cada uno de los proyectos. Éste se encuentra en el CD
con el nombre de Entrenador PIC 16F628A.
A continuación presentamos la figura del Entrenador diseñado para realizar los proyectos
con el Microcontrolador PIC 16F628A, el cual posee 8 Leds, 1 Display, 1 LCD, 3
pulsadores, 1 teclado y 1 relé.
28
S. C. ´ PI C
ESTUDIO DE SUBRUTINAS
Las subrutinas permiten realizar una llamada a cierta parte del programa, para que realice
una función específica. En el compilador PicBasic Pro existen dos tipos de subrutinas la
GOTO y la GOSUB, las que detallaremos a continuación:
GOTO.- Permite apuntar a cierta parte del programa donde se le haya asignado una
etiqueta, y continuar con las líneas de programación después de la misma.
Para poder entender mejor la instrucción GOTO vamos a desarrollar nuestro siguiente
proyecto, el cual realizará la función de un 555 pero esta vez como un oscilador astable el
cual estará en nivel alto durante 1 segundo y en nivel bajo durante ½ segundo.
Su forma de onda sería:
Vcc [V]
0 1 2 3 4 5 6 7 8 9 10 t [seg]
29
S. C. ´ PI C
Oscilador Astable.PBP
GOSUB.- Es similar a la subrutina GOTO, apunta a cierta parte del programa donde esté
asignada la etiqueta, guardando su dirección de retorno, es decir cumple con la subrutina
y regresa a la siguiente línea donde se quedó. Para entender esta instrucción realizaremos
un programa de un led intermitente.
Led Intermitente.PBP
Como se puede observar hemos sustituido la pausa con una subrutina denominada timer,
la que detiene el programa durante 1 segundo. Así ahorramos espacio en el Pic ya que la
instrucción PAUSE se la realiza una sola vez.
Cada vez nuestros programas se irán incrementando de tamaño y complicándose poco a
poco, por lo que es muy importante repasar los que hemos realizados hasta el momento.
30
S. C. ´ PI C
TRIS.- Realiza la función de colocar los pines seleccionados como entrada (0L) o salida
(1L) dependiendo de la aplicación a utilizar.
TRISB=%00000000 con esta instrucción colocamos todos los pines del puerto B como
salida, o bien se puede utilizar TRISB=0 que realiza la misma función.
TRISB=%11111111 colocamos todos los pines del puerto B como entrada, o se puede
ocupar TRISB=1.
Cada bit puede ser manejado individualmente de la misma manera es decir pueden ser
entrada o salida.
TRISA=%11110000 con esta instrucción hacemos que los bits menos significativos del
puerto A sean salidas y los mas significativos sean entradas.
Una vez definido cuales son los puertos de entrada o salida, procedemos a encender o
apagar los puertos así:
SEMAFORO DIGITAL
31
S. C. ´ PI C
VARIABLES
Una variable es un nombre identificador en el cual guardamos datos de forma temporal.
El compilador PIC BASIC PRO posee tres tipos de variable que son:
BIT 21 0-1
BYTE 28 0 - 255
16
WORD 2 0 - 65535
32
S. C. ´ PI C
Donde
distintosX,de Y, Z sonal nombres
acuerdo usuario. identificadores para la variable, los cuales pueden ser
INSTRUCCIONES MULTIPLES
Otra de las herramientas fundamentales del PIC BASIC PRO son los comandos múltiples
que permite escribir varias instrucciones en la misma línea simplemente separados por
( : ).
33
S. C. ´ PI C
Donde R es una variable asignada con el valor de 1 hasta 5. Es decir realizará 5 veces Lo
que contenga el cuerpo del programa. Ejemplo:
Como se había estudiado anteriormente el PIC BASIC PRO no permite realizar una
pausa mayor a 65,5 segundos. Por esa razón si se desea incrementar la pausa se utilizará
el lazo FOR estudiado. Así:
34
S. C. ´ PI C
Mediante el lazo FOR se ha incrementado la pausa hasta 5 minutos, y así se puede seguir
aumentando de acuerdo a las necesidades del usuario.
PULSADORES Y SWITCH
Existen 2 tipos de conexión para el manejo de pulsadores o switch. La primera es la
conexión a 1L y la segunda la conexión a 0L. A continuación los diagramas de conexión
por cada uno de los casos.
CONEXIÓN A 1L.-
Se la conoce como 1L porque
Vcc se encuentra conectado a
través de una resistencia al
microcontrolador
pulsador generará PIC, y el
0L cuando
este sea presionado.
CONEXIÓN A 0L.-
Contraria a la anterior, ésta
permite ingresar 0L a través de
una resistencia al
microcontrolador, y en el
momento que el pulsador es
digitado generará 1L.
Igualmente la resistencia
permite bajar la corriente a la
requerida por el PIC para evitar
daños o errores al ingresar los
pulsos.
35
S. C. ´ PI C
Para el control de los pulsadores o switch debemos utilizar una instrucción que nos
permita realizar preguntas.
ELSE
ENDIF
36
S. C. ´ PI C
Recuerden que estos proyectos pueden probar en el simulador de un entrenador que viene
adjunto en el CD. Como habrán notado al inicio del programa utilice una instrucción
llamada CMCON=7, y si analizaron un poquito más se habrán dado cuenta que utilice esa
instrucción porque manejé el puerto A. Lo que quiere decir que esta instrucción apaga los
comparadores de voltaje y digitaliza el puerto, en otras palabras me permite ocupar el
puerto A.
El bit A.4 del puerto A es de colector abierto, lo que quiere decir que para utilizarlo
debemos conectarlo por medio de una resistencia de 100 ohmios a Vcc.
37
S. C. ´ PI C
En la figura se puede observar que los puertos RA7, RA6 y RA5 son para conectar el
oscilador y el master clear respectivamente, lo que provoca que estos bits no se prendan
si programamos una secuencia en el puerto A. Para solucionar este problema debemos
indicar en la programación que vamos a ocupar el oscilador y el master clear interno que
posee el microcontrolador PIC 16F628A, de la siguiente manera:
38
S. C. ´ PI C
Como se puede observar en la figura solamente el bit A.4 del puerto A se encuentra
conectado a través de una resistencia de 100 ohmios a Vcc.
39
S. C. ´ PI C
Su sintaxis es:
SELECT
CASECASE var{, expr . . . }
expr 1
st at ement s
CASE expr 2 {, expr . . . }
st at ement s
{CASE ELSE st at ement s}
END SELECT
40
S. C. ´ PI C
41
S. C. ´ PI C
42
S. C. ´ PI C
Proyecto2_Luces_Velocidad_Variable. PBP
Desplazamientos. PBP
43
S. C. ´ PI C
44
S. C. ´ PI C
45
S. C. ´ PI C
Una matriz es una tabla rectangular de números, ordenados por filas y columnas. Para
nuestro caso tenemos una matriz con lógica binaria, es decir los datos de la matriz pueden
variar entre 0L y 1L.
⎛0 0 0 0⎞
⎜ ⎟
⎜0 0 0 0⎟
Μ 4*4 ⎜
0 0 0 0⎟
⎜⎜ ⎟⎟
⎝0 0 0 0⎠
A continuación se presenta una tabla con el nombre de cada uno de los pulsadores del
teclado y sus coordenadas correspondientes a la matriz 4 * 4.
Como podemos apreciar, para cada uno de los dígitos del teclado se tiene su respectiva
coordenada, la cual ocuparemos al momento de realizar la parte del control con los
microcontroladores PIC.
Como se ha dicho anteriormente el teclado es una serie de pulsadores conectados entre sí.
Por lo que el teclado también se lo puede conectar a 0L o 1L, además necesita en su
programación un antirebote para evitar que los datos sean erróneos.
46
S. C. ´ PI C
47
S. C. ´ PI C
48
S. C. ´ PI C
También se puede notar que el antirebote para el teclado se forma con las 4 columnas del
mismo, obteniendo datos exactos.
DISPLAY s
Una de las aplicaciones de los leds se encuentra en los displays, que son dispositivos
electrónicos que permiten visualizar datos en forma de números, letras o palabras si se los
coloca uno tras otro, permitiendo al usuario identificar lugares, contar equipos, etc.
Existen displays en el mercado de varios tipos: displays 7*5, displays de 7 segmentos
tipo ánodo o cátodo común, entre otros. En este caso empezaremos estudiando los
displays de 7 segmentos.
Un display de 7 segmentos quiere decir que consta de 7 leds internos los cuales se
encuentran conectados de tal manera que permiten al usuario visualizar números. Cada
uno de los segmentos tiene su respectivo nombre Así:
49
S. C. ´ PI C
Realizaremos una práctica que permita visualizar los números del 0 al 9 en un display de
7 segmentos tipo ánodo común. Lo primero que se debe hacer es generar una tabla para
identificar cual es la lógica binaria para encender cada uno de los segmentos que
identificará cada número.
Número Número g f e d c b a
Decimal Binario
Cero 0000 1 0 0 0 0 0 0
Uno 0001 1 1 1 1 0 0 1
Dos 0010 0 1 0 0 1 0 0
Tres 0011 0 1 1 0 0 0 0
Cuatro 0100 0 0 1 1 0 0 1
Cinco 0101 0 0 1 0 0 1 0
Seis 0110 0 0 0 0 0 1 1
Siete 0111 1 1 1 1 0 0 0
Ocho 1000 0 0 0 0 0 0 0
Nueve 1001 0 0 1 1 0 0 0
Como se puede apreciar en la tabla los segmentos se encenderán con niveles de voltaje
bajos es decir con 0L por que estamos usando un display tipo ánodo común.
Por lo tanto el diagrama en el proteus sería así:
50
S. C. ´ PI C
Las resistencias que se ocupa son de 330 ohmios igual como se ocupaba en los leds, ya
que éstas sirven para evitar que superen el voltaje permitido y sufran daños.
Lo único que se ha realizado en el programa es copiar el código para cada uno de los
números decimales que se realizó anteriormente.
51
S. C. ´ PI C
52
S. C. ´ PI C
En el diagrama se puede apreciar que se está manejando todos los bits del puerto B para
el teclado y los 4 primeros bits del puerto A para el display, por lo que la programación
sería la siguiente:
53
S. C. ´ PI C
Proyecto1_teclados_display.PBP
54
S. C. ´ PI C
55
S. C. ´ PI C
56
S. C. ´ PI C
RELES DE 12V
Los relés permiten al usuario conectar varios equipos de potencia, como son motores de
corriente alterna, bombas de agua, focos de 110V, etc. Es decir podemos controlar
circuitos de alta potencia, iniciando la automatización de diferentes procesos a nivel
Industrial.
Para cargar un relé a la hoja del proteus debemos introducir la palabra RELAY en la
parte de elementos, teniendo en cuenta que se debe seleccionar el relé que dice active
para poder realizar la simulación. La manera de conectar un relé a un microcontrolador es
la siguiente:
Como se puede apreciar el relé que estamos ocupando es un relé de 12V, por lo que
necesariamente necesita una fuente de 12V para poder funcionar. A más de ello se está
colocando un led, en el mismo puerto de salida para el relé, que permitirá visualizar si el
Relé se encuentra activado o no, ya que en la realidad no vamos a visualizar como en la
simulación que losdecontactos
cambio de estado cambian de estado. Sino se escuchará un sonido alertando el
los mismos.
57
S. C. ´ PI C
Continuando con la conexión del relé, se puede apreciar que se está colocando un diodo
1N4007, el cual permite proteger al microcontrolador. Además de ello se ocupa un
transistor 2N3904 el cual funciona en corte y saturación, permitiendo energizar o no
energizar la bobina del relé de 12V.
58
S. C. ´ PI C
Manejo_Relé. PBP
59
S. C. ´ PI C
LISTA DE MATERIALES
- 16 Resistencias de 4,7K A ¼ W.
- 16 Resistencias de 330 ohmios
- 8 leds de alto brillo color rojo para las entradas
- 8 leds de alto brillo color azul para las salidas
- 8 borneras de 3 entradas para las salidas del PLC
- 4 borneras de 3 entradas para las entradas del PLC
- 8 diodos 1N4007
- 8 transistores 2N3904
- 1 PIC 16F628A
- Placa de circuito impreso de S.C. ´ PIC PLC 23-02
60
S. C. ´ PI C
DIAGRAMA DE CONEXIÓN
Noten también que se ha suprimido los diodos 1N4007 que se deben conectar en la
entrada de polarización de cada relé, esto se debe a que en simulación no existe el
problema que se pueda quemar el microcontrolador, pero en la realidad es totalmente
necesario utilizar este diodo de protección.
Ahora realizaremos una aplicación con este dispositivo, que consistirá en lo siguiente:
Por medio de una entrada del PLC se accionen todas las salidas, pase un tiempo de 10
segundos y empiece a accionar los relés uno por uno hacia abajo.
61
S. C. ´ PI C
Aplicación PLC-01.PBP
62
S. C. ´ PI C
La Memoria flash es una forma evolucionada de la memoria EEPROM que permite que
múltiples posiciones de memoria sean escritas o borradas en una misma operación de
programación mediante impulsos eléctricos, frente a las anteriores que sólo permite
escribir o borrar una única celda cada vez. Por ello, flash permite funcionar a velocidades
muy superiores cuando los sistemas emplean lectura y escritura en diferentes puntos de
esta memoria al mismo tiempo.
Las memorias flash son de tipo no volátil, esto es, la información que almacena no se
pierde en cuanto se desconecta de la corriente, una característica muy valorada para la
multitud de usos en los que se emplea este tipo de memoria.
63
S. C. ´ PI C
64
S. C. ´ PI C
65
S. C. ´ PI C
66
S. C. ´ PI C
El segundo proyecto consiste en realizar una cerradura electrónica con una clave que se
guardará en la memoria RAM que posee el microcontrolador PIC 16F628A y a su vez
esta clave la cambiará el usuario de acuerdo a sus necesidades.
Una memoria RAM (Random Access Memory), memoria de acceso aleatorio, es donde el
la cual permite
microcontrolador guarda los datos que está utilizando en el momento presente;
grabarlos en variables definidas por el usuario, pero necesita que la energía suministrada
al dispositivo no se la retire, para evitar que éstos se pierdan.
Para simular esta práctica se puede utilizar el mismo diagrama esquemático ( Cerradura
Digital MEMORIA FLASH. Schematic Design ) visto anteriormente.
67
S. C. ´ PI C
68
S. C. ´ PI C
69
S. C. ´ PI C
En caso de que la clave ingresada sea errónea, el sistema realizará el destello de un LED
10 veces, el que indicará que la clave ingresada no es la correcta. En caso de olvidarse el
número de la clave debe resetear el sistema (Deshabilitando la energía y l habilitándola
nuevamente), así el sistema accionará la clave de fábrica.
70
S. C. ´ PI C
El tercer proyecto consiste en realizar una cerradura electrónica con una clave que se
guardará en la memoria EEPROM que posee el microcontrolador PIC 16F628A y a su
vez esta clave la cambiará el usuario de acuerdo a sus necesidades, con la finalidad de
que si desconecta el suministro de energía al sistema esta permanezca con la misma clave
utilizada.
EEPROM.- Esta instrucción permite grabar datos en la memoria que lleva el mismo
nombre, los cuales se irán posicionando en cada una de las celdas del microcontrolador,
cabe destacar que el PIC 16F628A, posee 128 celdas para grabar datos, las cuales
manejan 1 BYTE cada una, que significa que podremos guardar un número hasta de 255
La sintaxis de manejo es la siguiente:
EEPROM 0, [6,2,”S”,”C”,6,8]; indica que los datos [6,2,”S”,”C”,6,8] se guardarán en
las celdas 0, 1, 2, 3, 4, 5 de la memoria EEPROM, y en cuanto a las letras, se grabará el
carácter ASCII correspondiente a cada una de ellas.
READ.- Esta instrucción permite leer los datos que se encuentran en la memoria
EEPROM, y guardar el contenido de las celdas en una variable previamente definida por
el usuario, su sintaxis es:
71
S. C. ´ PI C
72
S. C. ´ PI C
73
S. C. ´ PI C
74
S. C. ´ PI C
75
S. C. ´ PI C
76
S. C. ´ PI C
En el mercado existe gran variedad de módulos LCD, los que permiten realizar gráficos,
los alfanuméricos 16*2, 16*4, 8*2, , con backlight, sin backlight, etc.
En esta ocasión estudiaremos los módulos LCD alfanuméricos 16 * 2 y 8 * 2 con
backlight azul. Ya que este presenta la ventaja de darle la elegancia al proyecto que se
vaya a realizar, ya que la luz de fondo es azul y las letras son blancas.
LCD alfanumérico 16 * 2.- Este tipo de LCD, permite visualizar datos de hasta 16
caracteres por 2 líneas, cada carácter está compuesto por una matriz de leds 7*5,
permitiendo formar cualquier letra que se le asigne desde el microcontrolador.
El backlight es el color de fondo que va a tener el LCD, entre ellos se encuentran los de
color azul, amarillo, blanco, naranja, rojo. Y de acuerdo a estos colores varían su precio
en el mercado. No es indispensable que un LCD tenga luz de fondo o backlight, ya que si
el usuario lo desea no lo conecta, ahorrando energía y consumo de corriente.
LCD alfanumérico 8 * 2.- Este tipo de LCD, permite visualizar datos de hasta 8
caracteres por 2 líneas, siendo esta la única diferencia en comparación con el LCD 16*2.
Y de acuerdo a la aplicación que realice el usuario debe seleccionar el LCD a utilizar.
77
S. C. ´ PI C
El LCD consta de 14 pines, para realizar el manejo o el control del módulo y 2 pines
adicionales para controlar el backlight que posee, en LCDs que no poseen la función de
backlight o que no poseen luz de fondo, solamente poseen 14 pines para utilizarlos en la
parte de control.
A continuación presentamos una tabla correspondiente a las funciones que realizan cada
uno de los pines del LCD.
# PIN
1 Símbolo
Vss Pin donde se conecta al GNDDESCRIPCION
del sistema
2 Vdd Pin donde se conecta a Vdd o 5V del sistema
3 Vo Ajuste para el contraste del LCD varía de (0 – 5V)
4 RS Registro de control/datos (Al microcontrolador)
5 R/W Read / Write, lectura y escritura del LCD (A GND del sistema)
6 E Enable, habilita o deshabilita el módulo LCD (Al microcontrolador)
7 D0 Bit para datos menos significativo
8 D1
9 D2
10 D3
11 D4
12 D5
13 D6
14 D7 Bit para datos mas significativo
15 A Ánodo del Backlight, Vdd
16 K Cátodo del Backlight GND
Como se puede apreciar en la tabla, Los bits que permiten controlar el LCD son 8, lo cual
representa una gran velocidad en visualización de datos. Pero una pequeña desventaja es
que debemos conectar varios cables a nuestro sistema, y ocupar todo un puerto completo
para transmisión de los mismos. Por esta razón los fabricantes de LCDs, permiten al
usuario trabajar solamente con 4 Bits para transmisión de datos, lo que significa que se
enviarán grupos de 4 bits, primero los más altos y luego los más bajos, la velocidad de
transmisión sería menor pero no representaría problemas porque el LCD trabaja en el
orden de microsegundos.
Conocida la disposición de pines del módulo LCD, pasaremos a estudiar las instrucciones
que permiten al usuario controlarlos y manejarlos de acuerdo a sus necesidades.
78
S. C. ´ PI C
NOTA: Se a conseja utilizar siempre todas las definiciones en un solo puerto, es decir
escoger el puerto B, o el puerto A en el caso del PIC 16F628A. Para evitar que los
datos sean incorrectos.
COMANDO OPERACION
$FE, 1 Limpia el visor del LCD
$FE, 2 Vuelve al inicio del LCD
$FE, $0C Apaga el cursor
$FE, $0E Subrayado del cursor activo
$FE, $0F Parpadeo del cursor activo
$FE, $10 Mover el cursor a una posición a la izquierda
$FE, $14 Mover el cursor una posición a la derecha
$FE, $80 Mueve el cursor al comienzo de la primera línea
$FE, $C0 Mueve el cursor al comienzo de la segunda línea
79
S. C. ´ PI C
Practica con
Microcontrolador
Y la programación sería:
80
S. C. ´ PI C
NOTA: En el simulador Proteus no existe el LCD 8*2, pero las conexiones son las
mismas, la única diferencia es que acepta hasta 8 caracteres, por lo que se debe
simular ocupando solo 8 caracteres.
Si se desea visualizar en un módulo LCD algún número decimal de una variable lo que se
debe realizar es lo siguiente:
Que significa: Limpie el visor del LCD, ubique el cursor al comienzo de la primera línea,
y visualice el decimal de lo que contenga la variable datos.
81
S. C. ´ PI C
Que significa: Limpie el visor del LCD, ubique el cursor al comienzo de la primera línea,
y visualice con 2 decimales lo que contenga la variable datos.
Que significa: Limpie el visor del LCD, ubique el cursor al comienzo de la primera línea,
y visualice: X= y el decimal de lo que contenga la variable datos, es decir si datos tiene
un valor de 245 entonces el usuario observará:
82
S. C. ´ PI C
83
S. C. ´ PI C
84
S. C. ´ PI C
INSTRUCCIÓN LOOKUP
Puede ser usado para obtener valores de una tabla de constantes de 8 bits, permite obtener
un carácter de letras o números de una cadena y guardarlos en una variable asignada por
el usuario. Su sintaxis de manejo es:
85
S. C. ´ PI C
Y su programación será:
86
S. C. ´ PI C
INSTRUCCIÓN SOUND
Esta instrucción permite generar sonido, trabaja a 8 bits, y el ruido generado va en un
rango de 0 a 255.
Que quiere decir saque por el puerto B el tono 110, manténgalo durante 10 milisegundos,
y saque el tono 100 durante 20 milisegundos.
87
S. C. ´ PI C
INSTRUCCIÓN FREQOUT
Permite al usuario sacar frecuencias por un PIN, las cuales pueden estar entre 0 a 32767
Hz, y su sintaxis de manejo es:
88
S. C. ´ PI C
INSTRUCCIÓN DTMFOUT
Lo que se realizó en el programa anterior es generar los tonos de teléfono para un número
celular, obteniendo cambios de frecuencia cada 50 milisegundos. Ahora con el estudio de
la instrucción DTMFOUT podremos sacar los mismos tonos de celular de una manera
más sencilla, es decir simplemente escribiendo el número de teléfono a llamar.
Que significa saque por el BIT B.0 las frecuencias correspondientes a digitar los números
de teléfono 0, 9, 7, 0, 8, 7, 9, 9, 9
Para realizar la prueba de esta instrucción generaremos una llamada telefónica al número
2 506 145, la cual se escuchará en un parlante de 8 ohmios. La simulación de esta
práctica se puede realizar en el mismo circuito anterior. (Instrucción SOUND. Schematic
Design)
La programación será:
Para realizar una llamada telefónica con el microcontrolador se debe accionar un relé
para indicarle a la entrada de la línea telefónica que se descolgó el auricular y proceder a
enviar los tonos correspondientes al número que se desee llamar. El siguiente diagrama
de conexión permite realizar esta función:
89
S. C. ´ PI C
En el programa se energiza el relé de 12V, para simular la acción del levantamiento del
auricular en un teléfono convencional.
90
S. C. ´ PI C
ASCII son las siglas de American Standard Code for Information Interchange o Código
Estándar Americano para el Intercambio de información.
El formato ASCII es reconocido por todas las computadoras y se puede utilizar para
comunicarse con el microcontrolador. Como se pudo ver de la tabla del ejemplo, un
conjunto de bits representa cada carácter. Una forma más compacta de representar un
conjunto de bits, es mediante la representación Hexadecimal. Esta representación toma 4
bits y los representa por un número o una letra que va del 0 al F.
Se llama comunicación serial, porque los códigos se reciben uno detrás de otro o “en
serie”. Existen 2 tipos de comunicación serial, la sincrónica y la asincrónica, la única
diferencia entre los dos es: La comunicación sincrónica necesita una señal de reloj para
compararlos con la línea de envío de datos y garantizar que los datos enviados sean los
correctos.
91
S. C. ´ PI C
En cambio la comunicación serial asincrónica envía datos sin necesidad de una señal de
reloj, en su reemplazo ocupa un mecanismo como referencia tierra (norma RS232), o
voltajes referenciales (norma RS422/485).
En este libro se va a estudiar la comunicación serial asincrónica, por ser la más utilizada a
nivel mundial por varias empresas de comunicación y también porque nos permitirá
comunicarnos con el software LABVIEW y VISUAL BASIC 6.0.
La maneradiagrama:
siguiente de transmisión de datos en comunicación serial asincrónica se detalla en el
A
O D
I A
C R
I
N A
I P
E
D
T
0 1 1 0 0 0 0 1 E
D
T
I I
B B
+5V
0V
Número enviado
0V
Número enviado
92
S. C. ´ PI C
Las velocidades para transmisión de datos van desde los 300 hasta los 9600 bits por
segundo en el modo de comunicación serial, pero hay que tener presente si son
velocidades de datos verdaderos, o datos invertidos. A continuación presentaremos una
tabla con las velocidades para cada uno de éstos casos:
Para utilizar estas instrucciones es necesario incluir los modos de comunicación mediante
la siguiente instrucción:
Que significa: Recepte el dato serial por el BIT B.0 del puerto B a una velocidad de 2400
bits por segundo y guarde en la variable DATOS.
SEROUT.- Mediante esta instrucción se enviarán datos seriales por un pin del
microcontrolador, su sintaxis es:
Que significa: Envíe el dato “A” en código ASCII a una velocidad de 2400 bits por
segundo por el BIT B.0 del puerto B.
93
S. C. ´ PI C
Transmisor. PBP
94
S. C. ´ PI C
Receptor. PBP
El transmisor no es más que un LED infrarrojo, el que enviará los datos seriales.
En cuanto al tratamiento de los datos, que se le debe dar a este tipo de comunicación
serial, es igual al estudiado anteriormente, lo que quiere decir que en lugar del cable que
se ocupó para comunicar el primer dispositivo con el otro, se utilizará un diodo LED
infrarrojo transmisor y un diodo LED infrarrojo receptor los que enviarán y recibirán
datos respectivamente. Y la programación será la misma.
95
S. C. ´ PI C
96
S. C. ´ PI C
Ciertas computadoras utilizan este conector para colocar periféricos de entrada como el
mouse, PLCs, entre otros. Cada uno de los pines del puerto serial está dedicado a un
propósito específico, que fue determinado cuando se elaboró el estándar RS232. A
continuación se presenta una tabla con cada una de las funciones que realiza este puerto.
Como se puede apreciar en la tabla, los pines 2 y 3 son los más importantes para nosotros
ya que permiten recibir y transmitir datos respectivamente.
97
S. C. ´ PI C
Por defecto aparece la aplicación EXE estándar que es la que necesitamos para realizar el
control computarizado de proyectos electrónicos con microcontroladores mediante
comunicación serial.
98
S. C. ´ PI C
Esta pantalla contiene una sección que se llama Form1, la cual permite al usuario generar
el Formulario, es decir permite visualizar como va a quedar nuestro proyecto con los
elementos que necesite para su proyecto.
99
S. C. ´ PI C
Para realizar comunicación serial con este software es necesario agregar a la ventana de
herramientas el modo de comunicaciones realizando un clic derecho en la parte inferior
de la ventana de herramientas, seleccionamos componentes.
100
S. C. ´ PI C
101
S. C. ´ PI C
Conocidos los elementos más importantes para el manejo de este software, realizaremos
una práctica que consistirá en prender un LED desde el computador durante 5 segundos ,
apagar el LED y a la vez monitorearlo, utilizando Visual Basic 6.0
Para realizar esta práctica debemos adicionar al formulario los siguientes componentes:
- Un botón (CommandButton)
- Un reloj (Timer), que permitirá monitorear el LED si se encuentra
- encendido o apagado.
Modo de comunicaciones
- Un círculo, simulando un LED
Para sacar el círculo se debe escoger la herramienta shape que permite dibujar
rectángulos, cuadrados, óvalos, círculos, etc. Para nuestro caso ocuparemos un círculo,
pero hay que tener en cuenta que por defecto visual Basic carga al shape con un
rectángulo, lo que significa que en las propiedades del objeto shape se debe cambiar a
círculo así:
102
S. C. ´ PI C
Para seleccionar un color plomo al círculo hay que seleccionar en propiedades del
elemento, FillColor y escoger el color a usar, y en FillStyle seleccionar SOLID, para que
el color se fije en todo el círculo.
103
S. C. ´ PI C
Para esto dar clic derecho con el mouse en el componente similar a un teléfono y
seleccionar propiedades, donde aparecerá una pantalla como la siguiente:
104
S. C. ´ PI C
Donde indica los valores para la comunicación serial. Que se encuentran establecidos en:
9600,n,8,1 que significa: Envío de 8 bits de datos seriales, sin paridad y con un bit de
parada a una velocidad de 9600 bits por segundo.
Ahora lo único que falta es realizar la programación para este proyecto que será la
siguiente:
a objetos, Como se ha dicho
empezaremos anteriormente
a programar que formulario.
el objeto visual BasicDando
es unadoble
herramienta
clic en orientada
cualquier
parte del formulario que no contenga ningún elemento. Aparecerá una ventana similar a:
Esta parte del programa lo único que realiza es enviar el dato serial de “P” para que el
microcontrolador recepte este dato y encienda el LED.
105
S. C. ´ PI C
Ahora lo único que hace falta es programar el timer, para que realice el monitoreo del
LED.
Si se encuentra encendido, cambiará el color del círculo a rojo; caso contrario cambiará el
color del círculo a plomo, monitoreando de esta manera el encendido y apagado de un
LED.
Para cumplir con este objetivo hay que dar doble clic en el componente timer que es
similar a un reloj, en donde aparecerá la siguiente ventana:
106
S. C. ´ PI C
107
S. C. ´ PI C
108
S. C. ´ PI C
109
S. C. ´ PI C
Es en esta pantalla es donde se encontrarán los elementos que el usuario vaya a utilizar.
Para visualizar la tabla de controles dar clic derecho en cualquier parte de la pantalla y
aparecerá una ventana similar a:
110
S. C. ´ PI C
Donde se encuentran botones, switch, leds controles numéricos, indicadores gráficos, etc.
111
S. C. ´ PI C
LOS DATOS: Como el algoritmo maneja datos, requiere de un espacio en memoria para
estos, lo que hace tomar en cuenta que el computador usado debe tener la memoria
suficiente para manejarlos. Por ejemplo, cuando se usan grandes matrices en cálculos se
puede requerir de mucho espacio.
Pausa el programa
Ejecuta el programa una sola vez, por esta razón se debe tomar en cuenta
que si no se realiza un lazo repetitivo, el usuario no podrá observar el
funcionamiento del programa, debido a que el programa se ejecutará muy
rápido.
112
S. C. ´ PI C
Para la realización de esta práctica en la ventana de LabView seleccionar una hoja virtual
en blanco, así:
113
S. C. ´ PI C
Noten que al presionar CTRL + E aparece la pantalla del diagrama de bloques con los
dos objetos seleccionados en el panel frontal. Ahora simplemente hay que ejecutar el
programa para visualizar el proyecto.
NOTA: Tener en cuenta que si se desea observar el funcionamiento hay que correr el
programa con el icono que ejecuta el programa repetitivamente, ya que no se le ha
asignado ningún lazo repetitivo al proyecto.
114
S. C. ´ PI C
En el diagrama de bloques dar clic derecho en cualquier parte de la pantalla y se tiene una
nueva ventana con diferentes herramientas:
En esta ventana se tiene varios elementos, los cuales permiten realizar funciones de
comparación, suma, resta, entrada de datos, salida de datos, etc. Para nuestro caso se
seleccionará en Exec Ctrl para seleccionar un lazo While Loop que permite realizar
repeticiones en el sistema.
Para que este lazo funcione en la práctica que estamos realizando se lo debe adicionar
dentro de los elementos que se está utilizando de la siguiente manera:
115
S. C. ´ PI C
Y como se puede apreciar al colocar este lazo se generó un nuevo elemento denominado
STOP, el que permitirá parar el sistema en cualquier momento durante su ejecución.
Para ejecutar el programa basta con dar un clic en el icono , el que ejecutará el
programa repetidamente gracias al lazo While Loop que se ha adicionado al sistema.
116
S. C. ´ PI C
Para comparar si el estado del pulsador es alto o bajo es necesario ingresar en el diagrama
de bloques la función Case Structure, la cual permitirá obtener un dato verdadero si se
digitó el pulsador y un dato falso si no se lo presionó.
117
S. C. ´ PI C
Cuando el dato sea verdadero, el sistema permitirá el ingreso de datos seriales, caso
contrario el sistema no aceptará el ingreso de los mismos.
118
S. C. ´ PI C
Noten que en esta tabla, se encuentra la configuración del puerto serial, el que contiene:
Modo para lectura, modo para escritura, modo para cerrar el puerto de comunicación
serial, entre otros.
Los que necesitamos para el presente proyecto son: Los modos de configuración, lectura
y cerrar que posee el puerto serial.
119
S. C. ´ PI C
120
S. C. ´ PI C
121
S. C. ´ PI C
122
S. C. ´ PI C
MANEJO DE MODULOS DE
RADIO – FRECUENCIA
La RADIO – FRECUENCIA, permite al usuario comunicarse entre dos equipos, a través
de dispositivos de transmisión y recepción de datos, sin necesidad que los equipos se
encuentren alineados, y en algunos casos, no necesitan que se encuentren en línea de
vista, es decir puede estar un equipo en una habitación y otro equipo en otra habitación.
Actualmente existen en el mercado una gran variedad de módulos de radio – frecuencia,
los cuales permiten al usuario operar con dispositivos electrónicos sin necesidad de
cables.
En algunos casos estos módulos no son muy costosos, como los módulos de transmisión
y recepción de datos de FUTURLEC.
Cada uno de estos módulos necesita circuitos integrados que permitan codificar la señal
que están enviando y recibiendo, en el caso del transmisor de radio – frecuencia necesita
el circuito integrado HT12D, y el receptor utiliza el HT12E.
El fabricante de éste tipo de módulos, trabaja con modulaciones de tipo ASK, por su bajo
costo y alto desempeño a la hora de transmitir y recibir datos. Poseen 2 tipos de
frecuencia, la de 315 MHz y la de 433.92 MHz.
El manejo de estos módulos de RF, es muy sencilla, ya que estos circuitos integrados
tienen la ventaja de asignar un código para transmisión de datos, el cual debe ser el
mismo
HT12D en el receptor
y HT12E, para
operan que4 bits,
hasta el sistema pueda
si se desea funcionar.
mayor Lospara
capacidad circuitos integrados
el trabajo se debe
utilizar los circuitos HT648L en el caso del receptor y HT640 para el transmisor.
123
S. C. ´ PI C
Noten que la entrada de datos se la realiza por el PIN 14 del HT12D, y el código se lo
asigna del PIN 1 hasta el PIN A7, en este caso el código será: 00000000 para recibir
datos.
124
S. C. ´ PI C
El manejo de estos módulos de radio frecuencia no es muy complejo, ya que lo único que
se debe realizar es medir la variación del potenciómetro que posee el transmisor y de
acuerdo a ese dato proceder a realizar una función específica. A más de estos módulos es
necesario tener un microcontrolador, el cual medirá la variación del potenciómetro. Por
esta razón es necesario estudiar la instrucción POT, la cual permite medir la variación de
un potenciómetro de 5K hasta 50K de acuerdo a la carga y descarga de un capacitor
conectado en serie. El diagrama esquemático para esta función será:
125
S. C. ´ PI C
INSTRUCCIÓN POT
La sintaxis de esta instrucción es:
Que significa: Tome el dato del potenciómetro a 8bits y guárdelo en la variable DATO.
De esta manera se podrá leer el módulo de radio frecuencia conectando el PIN RA3 del
receptor en la entrada del PIN RB0 del microcontrolador PIC y de acuerdo a ese dato de
8bits, realizar cualquier tipo de aplicación, como el monitoreo de una plataforma para la
alineación de vehículos.
126
S. C. ´ PI C
PROGRAMANDO EL PIC
“16F819” Y EL “16F877A”
MICROCONTROLADOR PIC 16F819
La programación para los microcontroladores en general es la misma, lo que difiere unos
de otros es la capacidad que poseen, y ciertas ventajas más como la de tener conversores
análogo – digital.
INSTRUCCIÓN ADCIN
Los bits del puerto A, que permiten realizar la función de conversores análogo – digital
son el A.0, A.1, A.2, A.3 y A.4, los que detectan el nivel de voltaje que ingresa por el
PIN, y si trabajamos a 8 bits, el nivel de voltaje los dividirá en 256 segmentos que irán
desde 0 a 255.
Que significa lea el canal cero, y guarde el resultado obtenido en la variable DATOS.
Si recordamos. Para
microcontrolador PICapagar los comparadores
16F628A y convertirlos dea digitales,
voltaje delsepuerto A que
realizaba posee el
mediante la
instrucción CMCON=7. Para este tipo de microcontrolador la instrucción que permite
realizar esta función es: ADCON1=7.
127
S. C. ´ PI C
A continuación se presenta un programa el cual permite leer los niveles de voltaje que
ingresan por el pin que actúa como conversor análogo digital que posee el
microcontrolador PIC 16F819. El potenciómetro debe ser de 5K hasta 50K.
128
S. C. ´ PI C
Uno de los proyectos mas utilizados con este tipo de microcontrolador PIC es un
termómetro
de digital
salida una utilizando
variación el sensor
de 10 mV pordecada
temperatura LM 35, el que
grado centígrado cual haya
presenta en su pin
censado. La
alimentación para este censor varía entre 4 a 30 voltios, para nuestro caso lo
alimentaremos con 5 Vcc.
129
S. C. ´ PI C
130
S. C. ´ PI C
Y en los bits de configuración se puede deshabilitar la opción del MCRL, para no ocupar
el Master
cuenta queclear.
estas Ahora si seleccionamos
opciones en el indicando
no se las encuentra, IC-PROG al
el usuario
PIC 16F877A, nos daremos
que no posee master
clear programable ni oscilador interno.
131
S. C. ´ PI C
Por esta razón para que el PIC 16F877A funcione es necesaria la siguiente conexión:
132
S. C. ´ PI C
133
S. C. ´ PI C
134
S. C. ´ PI C
MANEJO DE MOTORES
Los motores son una herramienta fundamental para realizar procesos industriales, como
el transportar un producto de una estación a otra, se utiliza también en proyectos de
robótica, mecatrónica, entre otros.
En el presente libro detallaremos el funcionamiento de motores paso – paso y de
servomotores. Los cuales ayudarán al lector a realizar proyectos como: posicionadores,
robots, etc.
En el proteus podemos encontrar los 2 tipos de motores paso – paso, digitando en la parte
de elementos la palabra motor.
135
S. C. ´ PI C
Para manejar el motor paso – paso bipolar se requiere de un circuito integrado L298 que
dispone de 2 puentes H (H – Bridge) o por lo menos debemos hacer un arreglo de 8
transistores, (4 NPN y 4 PNP). También se necesita el circuito integrado L297
En cuanto al voltaje de alimentación que se requiere para los 2 tipos de motores, varían
entre 1.3V, 1,9V, 4,5V, 5V, 12V y 24V, y la corriente que consume un motor puede estar
desde 300mA hasta 3ª, dependiendo del torque que éste se encuentre manejando.
El único inconveniente que se tiene es poder identificar las 4 bobinas principales (A, B,
C, D). A continuación se presenta una gama de colores con la que se las puede
identificar:
BOBINA COLOR
A Amarillo
B Naranja
C Negro
D Café
Y los demás hilos serán los comunes, los cuales se los conecta a la entrada del voltaje de
operación.
En las especificaciones del motor viene dado el grado de precisión, entre algunos de ellos
tenemos de 0.72º, 1.8º, 3.75º, 7.5º, 15º, 90º etc. Y de acuerdo al grado que gire el motor
por impulso, se debe dar un número de pasos para que este gire una vuelta completa, por
ejemplo:
Para un motor que el grado de giro sea 90º, el número de pasos que debe dar para dar una
vuelta completa será de 4, para un motor de 1,8º el número de pasos será 200.
Para manejar este tipo de motor es necesario un circuito integrado buffer ULN2003, el
cual es de muy bajo costo y posee toda la circuitería interna para manejar este tipo de
motores. Por lo tanto el diagrama de conexión es:
136
S. C. ´ PI C
WAVE DRIVE
FULL STEP
137
S. C. ´ PI C
138
S. C. ´ PI C
139
S. C. ´ PI C
Los circuitos integrados L297, y L298 permiten generar las secuencias necesarias para
energizar las bobinas del motor bipolar. Por lo tanto la programación para este tipo de
motor es:
140
S. C. ´ PI C
MANEJO DE SERVOMOTORES
Los servos son un tipo especial de motor que se caracterizan por su capacidad para
posicionarse de forma inmediata en cualquier posición dentro de su rango de operación.
Para ello,Están
realizar. el servo espera un formados
generalmente tren de pulsos
por unque se corresponden
amplificador, con ellamovimiento
un motor, reducción dea
engranaje y la realimentación, todo en una misma caja de pequeñas dimensiones. El
resultado es un servo de posición con un margen de operación de 180° aproximadamente.
Como se puede apreciar en la figura, posee tres cables. El rojo es alimentación (+5V), el
negro es tierra (GND) y el cable amarillo es el que permite realizar el control. El motor
interno que posee, es de corriente directa, el cual posee una tarjeta controladora la cual le
indica cuantas vueltas debe girar para acomodar el engranaje.
La posición deseada se determina por medio de pulsos, siendo la duración del pulso la
que indica el ángulo de giro por esta razón cada servomotor tiene sus márgenes de
operación que corresponden al ancho de pulso ya sea máximo o mínimo.
El intervalo de tiempo con los que opera el servomotor está dado entre 10 y 30
milisegundos, para que un servomotor se mantenga en la misma posición durante un
cierto
el que tiempo es necesario enviarle continuamente el pulso correspondiente al ángulo en
se encuentra.
141
S. C. ´ PI C
En este libro se estudiará el servomotor HITEC HS – 311, por ser más económico y tener
un torque de salida de 3.0Kg.cm, suficiente para proyectos de robótica.
142
S. C. ´ PI C
INSTRUCCIÓN PWM
PULSE WIDTH MODULATION, modulación por ancho de pulso, esta instrucción
permite enviar un tren de pulsos modulado por ancho a un PIN. Cada ciclo de PWM está
compuesto de 256 pasos. Su sintaxis es:
Que quiere decir, saque 3 pulsos al 50% en alto por el BIT B.0 del puerto B.
Cada ciclo depende de la frecuencia del oscilador, para un cristal de 4 MHZ cada ciclo
será de 5 milisegundos de largo, para un cristal de 20 MHz cada ciclo será
aproximadamente de 1 milisegundo.
143
S. C. ´ PI C
SERVOMOTOR. PBP
144
S. C. ´ PI C
Con estos conocimientos podrá realizar un robot como el que se muestra a continuación.
En el CD encontrará una simulación con el movimiento que debe realizar las patas del
ROBOT para que no existan atascos en el avance del mismo.
Como se aprecia este robot se ha realizado con servomotores estudiados en el libro.
145