Professional Documents
Culture Documents
16F8XX
P ro g ram a cin en B A S IC 16F87X
Segunda edicin
CARLOS A. REYES
IMPRESO EN QUITO-ECUADOR
C O N T E N ID O
K # 5 ^ fc ^ P $ S |S ^ S p I:
P r lo g o.........
Introduccin.
C aptulo 2
E L M IC R O C O N T R O L A D O R P IC
2 Qu es un m icrocontrolador?........................... ..................................................................17
2.1 El microcontrolador PIC 16F628A ................. ...................................................................17
2.2 Arquitectura del PIC 6F628A ......................... ................................................................. 18
...................................................................19
2.4 La memoria de d a to s ....................................... ............................................................. 20
2.5 Caractersticas generales................................................................................................................... 22
2.6 Diagrama de pines y funciones........................................................................................................ 22
2.7 Consideraciones bsicas pero muy tiles a la hora de montar un proyecto..............................23
C aptulo 3
E L PR O G R A M A M icroC ode Studio
3.1 Configuracin de MicroCode Studio (m ecanique)........................................................................25
3.2 Manejo de MicroCode S tu dio ...........................................................................................................28
3.3 Identificacin de errores en la com pilacin................................................. ................................. 31
v
PRO G R A M A N D O EN LENGUAJE BASIC
4.1 Diferencias entre el lenguaje Basic y ensam blador....................................................................... 33
4.2 Aprendiendo a programar el Pie 16F628A con microcode ......................................................... 35
4.3 Grabando el PIC con el IC-prog 105D ...................................................................................... 36
4.4 Diferentes caminos a seguir para conseguir un mismo objetivo................................................. 39
4.5 Declaraciones disponibles en el compilador pbp 2 .4 4 ..................................................................41
5.2 P R O Y E C T O S DE R E PE T IC IO N E S
5.2.1 Ejercicio con la instruccin POR N E X T .................................................................................... 50
Las variables BIT, BYTE y W O R D ........................................................................ 50
5.2.2 Luces del auto fantstico (desplazam ientos)...............................................................................51
5.2.3 Proyectos propuestos con le d s................... 52
vi
U palabra D EC, HEX. B IN ..................................................................................................... 86
5.5.5 Tacmetro d ig ital.............................................................. .............................................................86
5.5.6 Lectura de un potencimetro con L C D ........................................................
La declaracin P O T ................................................................................................................... 88
5.5.7 Proyectos propuestos con L C D ........................................................................................ -...........89
5.6 SONIDO
5.6.1 Generacin de S o n id o.................................................................................................................... 90
La declaracin F R E Q O U T ......................................................................................................90
5.6.2 Una sirena p o licial.......................................................................................................................... 91
La declaracin S O U N D ................................................................................................. - .........91
Utilizando un cristal de mayor velocidad................................................................................ 91
5.6.3 Generacin de un timbre de telfono celu lar..............................................................................93
5.6.4 Llamada telefnica D T M F ............................................................................................................ 94
La declaracin D T M F O U T ......................................................................................................94
5.6.5 Proyecto propuesto......................................................................................................................... 97
5.8 P R O Y E C T O S CON M O TO R ES
5.8.1 Manejo del PNVM como variador de velocidad de un motor D C ........................................... 115
5.8.2 Un conversor D/A con el CI. L M 358 ......................... - .............................................................117
5.8.3 Los motores paso a paso bipolares y unipolares.......................................................................118
5.8.4 Manejo de un motor paso a paso en secuencia WAVE D R IV E .............................................121
5.8.5 Manejo de un motor paso a paso en secuencia FULL S T E P ...................................................123
5.8.6 Manejo de un motor paso a paso en secuencia HALF S T E P .................................................. 125
5.8.7 Proyectos propuestos con m otores..............................................................................................126
5.9 C O M U N ICA C I N
5.9.1 Qu es la comunicacin serial?.................................................................................................127
5.9.2 Modos de transmisin de d a to s...................................................................................................127
5.9.2.1 S im plcx.................. 127
5.9.2.2 H alf-duplex....................................................................................................................127
5.9.2.3 Full-duplcx....................................................................................................................127
5.9.2.4 Full/full-duplex..............................................................................................................128
5.9.3 Comunicacin serial RS232 ................................................................. 128
5.9.4 Comunicacin serial Pie a P C ......................................................................................................129
La declaracin S E R O I T .........................................................................................................129
5.9.5 Comunicacin serial PC a P ie ......................................................................................................132
La declaracin S E R IN ............................................................................................................. 133
5.9.6 Comunicacin serial con el Cl. M A X 232..................................................................................135
5.9.7 Comunicacin serial PIC a P1C....................................................................................................137
5.9.8 Comunicacin serial RS422/485 ................................................................................................. 139
5.9.9 Comunicacin serial PIC a PIC con la interfaz RS485 ............................................................ 139
5.9.10 Comunicacin serial de VISUAL BASIC Y P IC ...................................................................142
vi i
5.9.11 Comunicacin serial sincrnica ......................... ....152
5.9.12 Comunicacin I2C con una memoria serial 24LC04B...........................................................152
La declaracin 12CW RITE y I2 C R E A D ............................................................................ 153
5.9.13 Comunicacin 12C con el reloj calendario DS 1307.............................................................. 156
5.9.14 Proyectos propuestos de com unicacin...................................................................................159
5.10 IN TE R R U PC IO N ES
5.10.1 Utilizando la interrupcin del puerto B.O....................................... 160
Las declaraciones ON INTERRUPT, DISABLE, RESUME Y E N B L E ..................160
5.10.2 Utilizando la interrupcin del puerto B.4 al B .7 .....................................................................162
5.10.3 Reloj digital utilizando la interrupcin del T M R 0................................................................. 162
5.10.4 Proyectos propuestos con interrupciones................................................................................ 165
mm
Apndice A Sitios web relacionados con esto lib ro ....................................................................... 2 11
Apndice B Prxima en treg a..............................................................................................................2 1 1
A veces lo pasamos desapercibidos, pero estn all, en algn lugar estn trabajando
incansablemente sin que nos demos cuenta las 24 l oras del da, los 365 das del ao, lo llevamos
hasta en nuestro bolsillo, algunos tan cerca como dentro del cuerpo y otros tan lejos como en el
planeta Marte, hoy podemos encontrar en un hogar hasta 40 de ellos y van en aumento, lo cierto
es que cada vez dependemos ms de ellos. Actualmente lo supera a la cantidad de
microprocesadores existentes en el mundo, estoy hablando de los microcontroladores, pequeas
computadoras que hacen que nuestra vida sea ms fcil.
Ha pasado ms de 30 aos desde que hicieron su aparicin y ningn otro circuito
integrado ha sido tan verstil, ha tenido tanta acogida ni se ha escrito tanto de ellos como los
microcontroladores. El microcontrolador es hoy en da la piedra angular de lo que ser el imperio
tecnolgico del siglo XXI. dentro de unos aos estaremos rodeados de microcontroladores y sern
indispensables para la vida cotidiana. Si analizamos actualmente lo que pasara si dejaran de
funcionar por un minuto, nos daremos cuenta que no habra comunicacin, Iqs centrales
telefnicas, celulares y radios dejaran de funcionar, lo mismo sucedera con; los computadores,
los satlites y con ello el comercio martimo entrara en caos, el trfico aereo estara en peligro,
los mismos aviones no podran volar sin sus instrumentos de navegacin, los sistemas
electrnicos de los vehculos fallaran, las fabricas paralizaran su produccin, en los hospitales
muchos equipos electrnicos fallaran, en el hogar dejaran de funcionar los sistemas de
seguridad, vigilancia y de incendio, los ascensores, el microondas, la lavadora, el televisor, la
radio, el DVD, etc. en definitiva sera como que si el mundo se detendra aunque seguira girando
por supuesto.
Por eso es tan importante el conocimiento y la utilizacin de estos circuitos integrados
que en un principio lo llamaron microcomputadores para en la actualidad conocerlos como los
poderosos microcontroladores. El que en este libro trataremos es especificamcntc el
microcontrolador PIC de M icrochip Technolopy Inc. ya que es el fabricante que lleva el
liderazgo por su bajo costo, fcil programacin y la gran disponibilidad de modelos a elegir segn
sea las necesidades.
La metodologa de enseanza ser hacer el proyecto y poner en funcionamiento, para
luego dar sus debidas explicaciones bien detalladas ya que tambin est orientada a principiantes,
podra parecerles muy obvio pero para alguien esa explicacin no estara dems, yo mismo he
tenido problemas con algunos libros al no poder pasar ms all del primer ejercicio, aunque el
libro deca que era para principiantes, y sin contar que me cansaba leyendo tanta teora. Por eso
no pretendo ponerles una montaa de teora y causar desinters en el lector, porque para ello
existen muchos libros donde tratan ms a fondo la estructura del microcontrolador, ms bien
intento entusiasmarles con proyectos de fcil aprendizaje y muy til aplicacin en su hogar,
empresa y por qu no para realizar proyectos importantes de automatizacin de fbricas, ya que
ix
se incluye circuitos de control y manejo de control computarizado con Visual Basic, al final de
todos los captulos se dar referencia de paginas web en donde se puede encontrar ms
informacin al respecto.
Ya que este libro fue realizado con el apoyo de prcticas reales, encontrarn la
informacin y los consejos ms importantes que puedo darles en base a las experiencias propias
que he adquirido a la hora de montar mis proyectos, aos y aos de trabajo encontraran en este
resumido libro. Justamente este es el motivo ms grande que me impuls a escribir este libro. Un
da mientras realizaba una prctica con los microcontroladorcs PIC, vino mi hijo de 5 aos con
sus preguntas de Qu es esto?, Para qu sirve?. Cmo funciona?, etc. En ese momento me
puse a pensar cmo podra ensearle todo lo que s y con su temprana edad cmo podra
entenderlo, he sido profesor de microcontroladorcs por un tiempo y mi problema de audicin que
cada da se agrava me impide continuar con esta noble labor. Una vez un profesor de la primaria
me dijo; El objetivo del hombre en la vida cra? sembrar un rbol tener un hijo y escribir un libro,
el rbol significaba el trabajo y la contribucin para d futuro del planeta, el hijo significaba la
experiencia de ser padres y la continuacin de la especie humana, el libro es nuestra experiencia y
lo que nosotros aprendemos a lo largo de nuestro ciclo de vida y lo resumimos paru nuestros
hijos, para que as puedan continuar con nuestro trabajo y avancen mucho ms que nosotros.
Tambin una vez mi padre me dijo: Cuando uno se muere ni siquiera la ropa que estamos puestos
nos podemos llevar. Con todas estas palabras deduje si algn da llego a morir, todos mis
conocimientos me los llevo, es lo nico que se va conmigo asi que eso no se puede dejar de
herencia, por todas estas razones he pensado que el mejor regalo que puedo dejar, son las letras,
es decir un libro, donde todos podrn aprender de l, ya que en algn lugar siempre habr una
persona que necesita de mis conocimientos.
Adicionalmcnte para ayudar al lector se incluye en este libro una lmina para
transferencia trmica del grabador de PIC'S y un CD con todos los ejercicios, diagramas, hojas de
dato y fotografas a color de las placas que a lo largo del Captulo 5 y 7 se van presentando, aqu
podrn observar detenidamente y con total claridad cada una de las placas electrnicas (lCB), as
como tambin podrn observar una secuencia fotogrfica de cmo hacer placas de circuito
impreso con el mtodo de transferencia trmica. Para utilizar el CD, nicamente copie todo el
contenido del CD en una sola carpeta de su disco duro
Finalmente quiero expresar mi ms sincero agradecimiento a Microchip por su valiosa
ayuda tanto en informacin como en softvvares de libre distribucin, a mccanique por su valioso
editor de textos que se distribuye gratuitamente por internet, a Bonnv Gijzcn por su programa IC-
Prog, a microF.nginccring Labs., a todos mis profesores y amigos que me han ayudado a despejar
m is dudas, a mi esposa que tanto me apoy en la realizacin de este libro, y de manera especial al
Sr. Ing. Juan Bernardo Tamariz y la seorita Julia I-en de C orpoim pcx distribuidores exclusivos
de M icrochip para Ecuador, por facilitarme las hojas de datos que se incluye en el CD, y
permitirme utilizar el logo de M icrochip en este libro, adems de softwares. materiales,
informacin y facilidades que me han brindado.
Quito, Ecuador.
Mayo del 2006
x
El Captulo 1 se traa de la descarga c instalacin de los soflwares necesarios para la
programacin de los microcontroladorcs PIC, mediante ilustraciones grficas se seguir paso a
paso la descarga de cada uno de los programas, todo esto para que el lector no pueda perderse.
En el Captulo 2 se da una breve teora del microcontrolador, especficamente del
PIC16F628A, y sus caractersticas ms sobresalientes, adems se da consejos muy tiles para el
correcto funcionamiento del microcontrolador PIC.
Rn el Captulo 3 se ensea a configurar y programar en microcode. as como tambin a
reconocer ios tipos de errores que se pueden dar en la compilacin del programa escrito.
En el Capitulo 4 se cxplicu por qu escoger el compilador PicBasic Pro 2.44 y su
comparacin con el lenguaje acostumbrado el ensamblador, tambin formas diferentes de escribir
los programas, y cmo grabar un PIC con en el software IC-prog, adems se ensea a reconocer
errores en la grabacin del PIC y las declaraciones disponibles en el compilador pbp.
En el Captulo 5 se inicia el aprendizaje con ejercicios bsicos pero muy necesarios para
poder comprender el funcionamiento del microcontrolador PIC. Tambin cabe recalcar que es
indispensable disponer de un grabador de PIC 'S y as poder realizar cada uno de los 52 proyectos
que se encuentran en este captulo, tambin es necesario seguir en orden cada uno de los
proyectos para poder entender ms adelante, ya que cada vez sern ms grandes pero no muy
difciles de entender.
El Captulo 6 es completamente nuevo en esta edicin y trata de la simulacin y ruteado
utilizando el programa PROTEUS, de igual manera se ensear paso a paso cmo montar un
circuito para simular y adicionalmcntc para su posterior ruteado, terminando con la impresin de
pistas y screen de elementos.
En el Capitulo 7 se ensea a fabricar circuitos impresos, mediante un sencillo mtodo: la
transferencia trmica, aqu se indicar todos los pasos necesarios para la fabricacin del grabador
de PIC'S UNIVERSAL PICmcro5, pura el cual se entrega conjuntamente con este libro una
lmina para la transferencia trmica de las pistas y el screen de los elementos, adems se
ensear tcnicas de soldaduras y terminaremos con la fabricacin de un chasis para sus
proyectos, este le dar una buena presentacin y ccabado.
m ssm sm m m
iwwawBm
:::<j::'. ;::r:
CAPITULO 1
SOFTWARES PARA EL FU N C IO N A M IE N TO D E f PIC
;.i.: ,....
wmmmmmm
hn este Captulo se aprender a descargar los sottwares necesarios para poder editar, compilar
y programar los ejercicios prcticos que se incluye en este libro, se seguir paso a paso cmo
descargar del internet. Recuerde que hay actualizaciones cada 6 meses por lo que debe estar
visitando frecuentemente estas pginas, adicionalmente se incluye algunos de estos softwares
libres en CD :\Soft-Free.
Este es el primer programa que debe descargar del internet, primero ingrese en la pgina
\v\v\v.mecanique.co.uk y luego realice los siguientes pasos:
la) Una vez abierto la pgina web haga un clic en M icrocode Studio, como ilustra la siguiente
figura:
1 10
-
m
p ro d u tf Index s a le s Inform ation contar t
< N1icrtrC>av S liu llo w Ttie n rw rccr.aineorno Leas m elabs) v S d pio flf in rr# ris dovon end p-3v,j.i(.;| fu:... <
vcur oonitM/i'i A ddoont pow er a a n te r is n o e d e d . * p*r,y/tr.itr.ir li *ecc>o->iii*
C m n jiiliirs 10 (Human In te n s e s C^ /c e ) , r.v h o r m a n a >wtUc> serial CoT T n * >-r.prnve-; tl e spe
h * *I*irr. Tin- niiw i!eQr. i; jmafl an d ComtMC*. m natu-w Q cctv 1.5* X 2 3".
- P r o g r o m m o r v
v. O o v o lo p m o n t n n n rrfs m o v /M in O to
- P r n tn t y p in g O o o rris
T M o d u le s C iim pilon
- USB
Tb- ta te s t PM aosic oro Cc ^ p ilc ' b y n c ra S iw tn e e flo g t - s
H A S M l n ti H y v I o n . cv . reate p roem n s fot r i al Mtroci-ds P lC n ia o S
inxrocontrollw s. Alio ehede o u i O te rn*w Proton
e v e lo p n e n t Suite, s o a n a ? in g PICBas-.c developrnor*
C f l t r tr tn r Dr-ols
1 gg.~ 3 nironmen* for MIC T.icrcintrc>i
- M ii:tt eo n tro llB rs
s a J e ,m tl a y
yj M-idr. CjdlVrriev.tVT # W fm
m sye
pro d v e t In d m u l e t In fo rm iM iin c o n U it
*
' H n ir n r iin y n M lira C u d Studte
*; M ic n C o d o P tu d lu
M kjo C o ia S tu d c is i v ftJ ia l'tn h M ra ta d O a ta ip p fM i'fl -n v iro n a ic i c i.'OI
0 C o m p ile r s
and sicRASICt>0~ cowpiCf.
r. D m g r u r n in iin
rr.iin m to rp ro ic b n M I ty n ta x hiuNrc-titiQ o f v t w f l d * o rth c o n l f f r yo =y>>
1 D n v tilo p m iin t U u * n H i r i T f t a o d e e x o lo w f a lo w t you tu utdrnaocally u tn p to im i.- Ii fin
a rJ te s . a s e s an d m odfiers, s rrrc o ls an d l i t i s , tft a t a'e concam ec th in .u u r .oui .
> li ii j i o 1 y p i r ) i | R u n r d t UC, to e r . p a it e a n d no do I t p ro v iie d . to3*th*< - rth s **rr.h n d ryo U co ##&**<:.
M o d u lo *
M icro C o do S tu d lo n o w In c iv il * fa y y H ID W l/e r d , a fr e e to d e Q yn pratio n to o l Ib a l eno
q u ltk ly Im p ir m r M b l d lre ttio n a l to m m u lc a tl n h e tv r r r n an nm baddd IMC m ltrtu
. USB
f LA 9 M L a b 8 y to n t
BflaialflBBittea
- B l c r l n r n i< o K
le) En esta pantalla haga un clic en USA hosted by m icroEngineering L abs, o cualquiera de
otros servidores y espere un momento para pasar al siguiente literal.
U S & h o s s e d b y rr..o-Pfcr.-,!iTeennq
M E S } .S 6 - h O d b y KyynpU-.
M lc ro C o d r S tu d to P lu s
__
V i
i u r h (V n r m n c w u M A r t
QklijjM:
nC afcn M Cl S d u fe iid ttM M L ia d iu a
W m ^ w i I n ln M S i f h r n
MtrrcCBt SUrfc:
(V-fr t e a c m
MifT-icht MP1ALW
IbnCtdi
le) En esta ocasin descargar el software Microcode Studio versin 2.3.O.O. Esta es la versin
ms reciente que corresponde al mes de abril del 2006. posteriormente podr descargar de la
misma manera las ltimas versiones disponibles. Ahora bien proceda dando un clic encima de
Do>vnloud M icroC odc Studio 2 J .0 .0 .
.j Ya?)*** .meo
i
/?
! g ; .. fe** feote* ^ a *6 vi
p )t a z mim mv-*rwymrr f a t e xnfre ic u c e i.W 'j i i . t y r Q * " .ji -
suFt>4rtfMr/^.i
BtilBtVwwIXMm
AiUlQtnrx.sn
D tUCItftil le J l ( M w
31 r ft<J r w ut M im C o Ji S tw
Onu i y S idioM Ud w .lc a n tiU d
oUnMUriSy tk you lo Ih* t
OfcUhtBilM i Is d ib u g lid n i * im iiI uu
oniMeiioi*
u Tpe C jtp r* c a r o tn A (tn ap), ,*2 MP
JU lj k tA !liIl rU b
n a ame imnea n m y a y n i
I O* tnr do te OBltrxil' C ede Diurno. M im C cde 8IU'
ENw* It un a n o to * itr rt i. yo j m u
Ig) En instantes sale una nueva ventana similar al siguiente grfico, proceda a guardar el archivo
comprimido en alguna carpeta que elija, en este caso lo haremos en la carpeta llamada descargas
que fue previamente creada en C:. luego haga un clic en G uardar.
1 1 H 1
i
n c m i c 2? . c C u j i i Iai n>
n nnrw ayM
r o c e - Stw
B C aM M ua . ^ .w tO l iv r,|O q m j
H p"
ip e rifr H ( T . MO
8
n c iU J L l h a Mi PC
: YOJ n'B V
nCM B dA U
n fw n r* tH * Meoit* B b u i V 1
s
f n r f t 1V en d o t tU lr*t *< ird Ti Co*i t e n e n d * |m rx>) y .: [ C e r rr V * !^
y:
-----------------------
.............................................................
# W ainal
ra . t t r V - < r i r t / w n . * ta
no'AMc.rxMBa
W9
le ilfl3 v lZ H i t o U -|iW l* . 1 7 \ ilc Ok a / .0 0 /i|i
ASCII C i t m t
o yu <iri 1* UiftnCod Sui
^sbictasaka t& j b . jlir-L A ii id <am*eui
utceet a ra ly tifct ynu tu ihe r
n...iwcPiw r* 1 **bu< * * * IMH oo
fcntUu
10un. Km- <1.*0tteUJW<*;
On.vpr* C\**tn*paZJX-BO
tmj o* e s</itn'4> M * if l I ftdl #* Wn**l Ir y *t*
lie:/}!*?! oCqc titudlc Mltrocsd# a
nijdur> JC t Crrat I <4 ir ref-m wv*i. >ou tnj
'i'rwwnrwwrLtin >a>* *
l*KMiriJJaKTl
futicnisiuy Vbir-Xc.*. Sludo l4 i
2aj Ingrese a la pgina VyW W .IC-prog.com. y haga un clic en el medio deI grfico.
NOTA: este software se incluye en C D :\S o ft-F rcc por cortesa de Ronny Gijzen.
? -P . =. H i t i
r^OBV K || '-I- i jg
HBRR
I C -Prcig P ro lotype Proeranm icr
P i o y n o H . J 2 f 5 l o C r n ; W F w , N F 8 7 fc I S t e x . I f F ? * . J 4 C & M C W W S & ; j a s *
34*0*051 S 9 S M . !O *0. W C AVK . t t C M W
M H E S B B H B ? I j-Jl
ir r n o w tt rr m tt
llt l lir i t I I o tt
u n >trr n r r * m rr im
n a ti
n.i
titllfll
1
J | r
; w i* t w * t t t t f r r o t t m v ttn
jm.i n i rr rrr tro rr rr rr ni Ittv rli;
>: s m KIT rrr u n n r r r rrr w n n iM r t
. m rrr rrr * u i r rr w r r r r r i i r h t
m t m rr rrr *rr n rr m r n r r r ir I; ->"<
! m <. <m u n rrr ir n i n u ttm i iv u
P io g iM ix t : P 1 G 1 6 F 8 1 8 . 1 0 F S 1 9 , 10 T 6 O . ltF'. P I C 1S F.
P I C 1 8 F I J 2 0 . P IC 1 8 F 6 6 2 0 . 1 S P 2 I 2 .I 8 F 2 4 S . 1 S F 2 5 2 . 1 S F 2 5 8 .
1 S F 4 4 2 . 1 8 F 4 4 S . 1 S F 4 5 2 . 1 8 F 4 5 8 . 1 2 0 5 0 8 , 1 C 8 4 ,1 0 F 8 4 . P I O
1 F S ~ . 1 6 F " 4 . 2 4 P I 6 . 2 4 C 3 2 .9 3 C 4 0 . P O S 1 2 0 0 .5 P C U , S 9 C 2 0 5 1 .
8 9 ,$ 5 3 , 2 5 0 x 0 . P I C . A V E . S 0 C 5 1 t
E c q u n c in c u tR M i n 8 M b ^ and a 1
jh o c oi
2c) En esta pantalla podr descargar 3 archivos simultneamente, el primero es el programa IC-
Prog 1.05D. el segundo es el d riv er p a ra W i n d o w s NT/2000yXP que podra necesitar si dispone
de estos sistemas operativos, y el tercero es un archivo de ayuda en espaol ticlpfile i n Spiinisli
Lunguagc. Primero descargue IC-Prog 1.05D como se indica en el siguiente literal.
H lC-Pw*NTCOOO|
(0 kivnac
'tetWO * - t j i j ! i-
MEUtoit&toar
H lC - P r S o f t v f
B lC -P rQ g ? c f lv a r
Hltolilci
BlCPr^OZPO
K*lj filo* ip ijiu ic I n i- n i H F x i ilw e i 4 u ld r ii* r )
' t u n jo . 1; n d i r n u n r l o i - p i o - r l n n a n d / o j w t o i ' j n o c s o to U U
2c) Proceda a guardar el archivo, y luego contine descargando los otros 2 archivos restantes.
Este es el compilador que nos facilita la programacin de los PIC'S, hasta aqu ya dispone de
un programador de PIC el IC-Prog I05D, y un editor de texto el Microcode Studio 2.3.0.0 y slo
falta un programa compilador que se encargar de generar el archivo hexadecimal .IIKX.
necesario para poder grabar en un niicrocontroladcr PIC. Para esto necesita adquirir el programa
pbp 2.44 que cuesta alrededor de 250 USD., tambin puede descargar la versin dent eu la
misma pgina www.mecanique.co.uk. haciendo un clic en Com pilers. y luego en PTCRaNir
Professional. a continuacin proceda a descargarlo como se aprendi en los casos anteriores.
.VSP!VI* WVW
1
i
i
i
y r Al .i
Q titi ujicuiii o guidit n io mcKvvo?
m
! Nohjji W MdvBO jhfUl.ctf
; IHM'Ni'WMr MI Ouui^'KNw
i____ I Tpo Aokacon. 3,10MB
0 ww/.aooenp'aanc^jbi.caTi
1 1 .1
'a o H J * \
jf. d e s c a r g a s E l f f l *
I Archivo Edicin Va r v o ro* H crranfcM tM Ayuda
_Jie.Vfesi.wfrM V j 3 ir
Para insialar este editor de texto, primero debe descomprimir el archivo mcs2300.zip que termin
de descargar anteriormente, para esto existen 2 formas de descomprimirlo, la una es utilizando
WTNZIP que se ensear ms adelante (pgina 11), y la otra es utilizando el extractor de archivos
comprimidos del mismo WINDOWS XP, para esto haga doble clic sobre mcs2300.zip* se abrir
una nueva ventana mostrando su contenido (ver la siguiente fig. izquierda), luego presione en
E x traer todos los archivos y en la siguiente ventana (figura derecha), presione Siguiente
A continuacin aparecer una nueva ventana en donde se muestra el lugar que se va a descargar el
archivo, djelo en la misma carpeta C:\dt\seargas\mcs2300. presione Siguiente. Luego se abre una
nueva ventana informando que los archivos han sido descomprimidos, marque la casilla M o stra r
archivos extrados y presione Finalizar (figura derecha).
A tslc cic p-trac>l>ui:r
: her zta
C\iegiVTCi:0
>*awetM m( # * ir
a rr
M tu **t>w . n fe .
yy ctr tn f r a r pa t
a
Mitr.'wn i.r.
U ' VU<.;w
r*W iw :m o
Mi.vnr. i u
M icroCode Studio
Rut tm
a v i t n m r.v tv K tM Ha w ! il n tUHNOK
; > * - TWS SOHVftjfVlMEB ! CO*>PCiKTn{ tf YDUWCH 10
;*<W5ini=>.'*pr- snrrwAFt(xas oM*tuavjcabu
vi t * !M!(ns?OfiWD'H.OVDt ?* r*VW|, VDCMUI1
. wtCAMiyir I * r w <vaM *w(Tm *iTii(K
U!<<>I<*vticownTixJmami l(aScJtmV*^*n!
WM
.| te l*aasoe rW > O w tu ttrfc *
SE C V .V a w a r ^ x rs
"
C3W n | U-<l
Owi'
V * *4 .*11 n tfi. -ih tT c u * I V * I r |~ *.
Te rvlat M >.Vt
I r **1-41.. i <1
CSflrn*.s r Je!, j
Tr^ ,
r. -tx'tMe'.MCs
-C B S
Para instalar este software slo necesita descomprimirlo, como ya conoce existen 2 formas de
hacerlo, la primera es utilizando el extractor de archivos de WINDOWS XP (ver pgina 9). y la
segunda forma que se aprender en esta ocasin es descomprimindolo mediante el software
WI.NZIP. esle software lo puede descargar gratuitamente desde w w w .uinzio.coin.
Una vez que est instalado W1NZIP en el computador, localice el archivo
icproglU5D.zip a travs del explorador de Windows y haga doble clic sobre el mismo, en ese
instante se ejecutar el programa W IN ZIP, en esta pantalla presione la tecla Agregar (I Agree),
slo si sale una pantalla similnr a la figura derecha que se presenta a continuacin presione
Wizard.
9 'l &
e r C oc m i 'u U l J O s ir y fc r
THANK. YOU n jfl IIIYING WIKZIPt
T r it n a H t/ < j< ljcrd \rucQ oinvi .c s c r > lo i <?*tk-*ar w * on>, B fc -_ m i.. a f t a jV*t
The r?>sSfe< v w tn n M tt r o l d c c i.'y U n n o li:
I S iu l 1 f A yp I O x to m g W o
>vi<<ee .
<ll*^.*lc2olhinYCuf*t*S9fU*l
fticrooBcnU,o:d -fnitxMon2o te
F v rd r* /T j l n w n ;
*MolerAilvji ir.iUkOosicmm)UJEte
Otten j
fttQ X - j
CfcHt'Nee"odienepmei
A continuacin seleccione Unzip o r install froi icprogl05D .zip y presione Ncxt, luego 1c
indicar la carpeta en donde se va a ubicar C:\un/ipped\icprogl05D si lo desea djelo ah pero
tome en cuenta que despus tendr que reubicarlc en C:\mccanique\icprogl05D. en todo caso en
esta ocasin se lo instalar en C:\unzipped\icprogl05D, presione la tecla lln zip Now y espere
unos segundos.
Tfc mtm * m f b t a .
7-
3
J -.U . I*WihBuiMkmfliMMdn(*IM>WWtohauvo
. w j .
W in Z ip W iz d rd U n z p Com plete
i. r o n o t d t p i y t r i < i a t e f l i g a n
Si usted dispone de cualquiera de estos sistemas operativos es necesario para que el programador
IC-progl05D funcione correctamente tener instalado este driver. Caso contrario observar una
serie de errores en la ejecucin del programa, (ver figura derecha). Para instalarlo primero
necesita encontrar el archivo Icprog_driver.zip que descarg del internet, luego proceda a
descomprimirlo como se aprendi anteriormente. Una vez que termine de descomprimir,
aparecer la carpeta icprog_driver el cual contiene el archivo icprog.sys, este archivo debe
moverlo dentro de la carpeta C:\m ecanique\icprogl05D . junto al archivo ejecutable icprog.exe
slo de esta manera se lo podr activar, (ver la siguiente figura izquierda).
N O T A : El grabador de micros que se incluye con este libro funciona con puertos seriales de
computadoras porttiles, pero no funciona con los com ersores de USB a serial.
IJna vez solucionado el problema de los puertos seriales de un clic en OK. aparecer una
pantalla similar al de la derecha de los siguientes grficos, en esta ventana abra Scttings y luego
haga un clic en O ptiuns.
En esta nueva pantalla, se puede cambiar el lenguaje, seleccione Spanish y luego presione O K. en
ese mismo instante observar que todo cambia a espaol, bien ahora vuelva a abrir A justes (antes
llamado Settings) y luego de un clic en Opciones, esta vez de un clic en m iscelnea para habilitar
el driver de Windows NT/2000/XP. una vez que se marque el casillero aparecer un cuadro de
dilogo preguntando si desea rciniciar IC-Prog ahora, presione YES, luego aparecer otro cuadro
de dilogo preguntando si desea instalar el driver de IC-Prog, presione YES (ver los siguientes
grficos). Si el problem a persiste desinstale el D RIV ER y vulvalo a in stalar nuevam ente
1 "O g A O o p SmarlCora | L w ip iM g e J 5he4 | M ttc | II C cn frn a to n | N D tirm ic o | |*C I Prpgi * 111*103 ] S N yiiN ie | 1
C c n tm o n c r ! Motrfcatfcn re j f Y i J k m i n j | ShortcU3 | | Creg 5 Drcp sm ertcflrr: U ngw sgc | S ftt | s in c j 1
<* 1 L J
O pciones : ><
C o n firm
CurifirmKicn : As* i PC ; Progr^TKciin | Aicjos |
Arastrer $ Sotar j Smartcard Mfcma | 5>vK Mee *} D ebe r e in o a r IC-Prog a n to s do u t t a a r d D rver.
*/
Ooc.lcrws. D e sea rdrciar IC-Prog ahora?
OK | ancatsr Ic a ^ jj '
1 .7 IN S T A L A C I N D K . |> b p 2 4 4 ( P ic B a s ic P r o sersin 2 . 4 4 ) .
Este programa se debe descomprimir de igual forma que se aprendi anteriormente, si decide
utilizar la versin demo debe tener en cuenta que slo puede compilar 31 lneas de programa,
tambin se debe considerar que no se puede incluir la declaracin TNCLUDE, por lo que no se
puede realizar proyectos de comunicacin serial. Para este libro se asume que usted tiene la
versin completa de PICBasic PRO, de todas maneras la mayora de las prcticas a realizarse son
posibles compilarlos con la versin demo. adems si no dispone de ningn compilador se incluye
en el CD todos los archivos .HEX, necesarios para grabar en el PIC16F628A, de esta manera se
podr ver el funcionamiento de todos los proyectos que se encuentran en este libro.
Para instalar este compilador, debe ejecutar el archivo PBP_demo_iiistaU.exe, y seguir los pasos
que se muestran en las siguientes figuras, puede ubicarle directamente dentro de la carpeta
C:\mecanique\PBPDEMO, si lo prefiere, caso contrario lo deber mover posteriormente.
| . k i ..fiP M .J
\.* ! $ V rM * J |
i n
1 i S ; |
l 1M . JL -1 )5 1 r*
En esta ltima ventana asegrese que la casilla Instnll M icroCode Studio IDE no este mareada,
pues este es el instalador de Microcode Studio versin 2.1.0.7, el cual no lo necesitamos, ms
bien lo eliminaremos para que no ocupe espacio en el disco duro (ver figura derecha).
Un microcontrolador de fabrica, no realiza tarea alguna, este debe ser programado para
que realice desde un simple parpadeo de un led hasta un sofisticado control de un robot. Un
microcontrolador es capaz de realizar la tarea de muchos circuitos lgicos como compuertas
AND, OR. NOT, NAND, con ver so res A/D, D/A, temporizadores, dccodificadores, etc.,
simplificando todo el diseo a una placa de reducido tamao y pocos elementos.
$ : M IC R O C O N TR O LA D O R PIC16T628A.
Los microcontroladores PIC (Peripheral intertace Controller), son fabricados por la empresa
IV1ICROCHIP Technology INC. cuya central se encuentra en Chandlcr. Arizona, esta empresa
ocupa el primer lugar en venta de microcontroladores de 8 bits desde el ao 2002. Su gran xito
se debe a la gran variedad (ms de 180 modelos), gran versatilidad, gran velocidad, bajo costo,
bajo consumo de potencia, y gran disponibilicad de herramientas parn su programacin. Uno de
los microcontroladores ms populares en la actualidad es el P1C16F628A y sus variantes
PIC16F627A y PIC16F648A, estos uC. sopona hasta 100.000 ciclos de escritura en su memoria
FLASH, y rOOO.OOO ciclos en su memoria Leprom (tiempo de retencin de datos 100 aos), este
est reemplazando rpidamente al popular PICI6F84A. pues presenta grandes ventajas como son:
i 9 bits
- 4 ---------
Memoria : Bus ccmn de
nica direciones
de CPU
8 Dits
Bus de Datos e
Instrucciones
Figura 2.2.1. En la arquitectura Von Neumann se conecta el CPU con una memoria nica en
donde se almacenan datos e instrucciones en form a indistinta, compartiendo el mismo bus.
Instrucciones
14 bits
i
Bus de
Instrucciones
El CPU del microcontrolador emplea una avanzada arquitectura R IS C (computador con juego de
instrucciones reducido) con un set de 35 instrucciones poderosas pertenecientes a la gama media
de la familia de los microcontroladores PIC, la mayora de instrucciones se ejecutan en un ciclo
de instruccin a excepcin de los saltos que requieren de 2 ciclos, dentro de su Procesador existe
una PILA de 8 niveles que permiten el anidamiento de subrutinas, esto quiere decir que puede
recordar 8 lugares diferentes de linea de programa e ir regresando a cada uno en el orden inverso
al que fueron anidados (ver figura 2.3.1).
X j r
\ MUX /
RBOflNT
RR1/RX/D7
Control
DocooOcaocr HB2/IX/CK
RB3.CCP1
RB4/PGM
RB3
Generador
KK=> de tiempos r**? Reg w RB6/T10S0/T1CKI
RB7/I10SI
OSCI.CLKIN
OSCZCLKOUT
MC1B VDD
VSS
Comparadores Timer 0
31
F igura 2.2.3. Diagrama ci los bloques funcionales del PIC, su conexin interna es
mediante buses, se aprecia la conexin de las 3 memorias Flash, Ram y Eepront.
Conocido tambin como memoria de instrucciones, aqu se escribe las ordenes para que el CPU
las ejecute. En el caso del microcontrolador PICI6F628A tiene memoria de programa no voltil
tipo FLA SH , en comparacin a su antecesor la memoria EEPROM, este se caracteriza por ser
ms rpido en el proceso de escritura/borrado elctrico, adems dispone de mayor capacidad de
almacenamiento, esta caracterstica hace que sea ideal para prcticas de laboratorio en donde la
grabacin y el borrado son frecuentes (recuerde que soporta 100.000 ciclos de escritura/borrado).
El bus de direcciones de la memoria de programa es de 13 bits, por lo que el Contador de
Programa puede dircccional 8192 posiciones de 14 bits cada una (desde la OOOOh hasta lPFFh),
de las cuales slo las primeras 2048 lneas tiene implementadas (desde la OOOOh hasta la 07FFh).
es decir que el PC slo utiliza los 11 primeros bits de direcciones los dems bits los ignora.
Nivel 8 de la Pila
Figura 2.3.1. Mapa de la memoria de Programa,
de las 8196 posiciones, slo tiene implementado las Vector de RESET OQQUh
primeras 2Q4R posiciones, la direccin OOOOh est
reservada p ara el vector de reset y la 0004h est
reservada para el vector de interrupcin. Vector de INTERRUPCION OOCMh
05h
M EM ORIA
DE
PROGRAMA
PIC16F628A
07FFh
NO
IMPLEM ENTADO
1FFFh
2 4; l a m i m m m ra to s ,
El PIC16F628A, tiene dos tipos de memorias de datos, la RAM esttica o SRAM (Random
Access Memory) o memoria de acceso casual, es un tipo de memoria voltil, es decir sus datos
permanecen en la memoria mientras exista alimentacin en el dispositivo, es de vital importancia
porque ah residen dos tipos de datos, los registros de propsito general (GPR). en donde se
almacenan las variables y los registros especiales (SFR). que son los encargados de llevar el
contador de programa, el conteo del Temporizador. el estado de los puertos, la configuracin de
las interrupciones, etc.
El otro tipo de memoria es una memoria auxiliar no voltil llamada E EPR O M . con
capacidad de I28 posiciones de 8 bits cada una. Esta memoria puede ser accedida por el usuario
mediante programacin, es muy til para almacenar datos que el usuario necesita que se
conserven an sin alimentacin, tal es el caso de la clave de una alarma, esta puede ser
modificada, pero no debe perderse por un corte ce energa, el fabricante asegura que la serie
PIC16F6XXA, tiene una retencin de datos en esta memoria mayor a 100 aos.
Como este microcontrolador es fabricado con tecnologa CM OS, su consumo de potencia
es muy bajo (2 mA a 4 Mhz) y adems es completamente esttico, lo que significa que si el reloj
se detiene los datos de la memoria RAM no se pierden, esto mientras el micro sigue alimentado.
Ea memoria de datos RAM. tiene 512 lneas de 8 bits cada una y est particionada por 4 bancos;
el banco 0. banco 1. banco 2 y banco 3, cada uno con 128 bytes. el acceso a cada banco de
memoria lo realiza los bits RPI y RPO del registro STATUS, la mayora de los bytes son
ocupados por los Registros de Funciones Especiales (SFR) o no estn implemcntadas. Para el
caso del PCI6F628A slo 224 posiciones de memoria RAM estn disponibles para los Registros
de Propsito General (GPR). la distribucin de memoria se muestra en la tabla de la figura 2.4 .1.
9 6 Bytes
Propsito . 150h &W f:
Registros G eneral
Propsito EFh : f. ' 16Fh 1EFh
G eneral 70h FOh 170h IFOh
acceso acceso acceso
70h - 7Fh 70h - 7Fh 70h - 7Fh
7Fh FFh l7Fh 1FFh
Figura 2.4.1. Mapa de la memoria de DATOS SRAM, los bloques marcados con tramas no son
implementodos, se leen '"O" las localidades marcadas con fl) no son registros fsicos, las
localidades 20h a 7Fh, corresponden a os 96 bytes de los registros de propsito general GPR.
SO bytes GPR en el banco KAOh - EFh) y 4S bytes GPR en el banco 2 (I20h - NFh), dando un
total de 224 bytes disponibles para el usuario. Para mayor informacin y utilizacin de los SFR,
refirase al datasheet del PIC16F6XXA que se incluye en el CD de este libro.
Hasta aqu se puede resumir las caractersticas ms relevantes del PIC 16F628A, estas son
Excluyendo los dos pines de alimentacin, lodos los 16 pines restantes pueden ser configurados
como entradas o salidas, algunos de ellos tienen funciones especiales, ver figura 2.6.2.
R A 2 / A N 2V R F F - R A 1/ A N 1
R A 3/ A N 3/ C M P 1 - R A 0/A N 0
R A 4/ T D C K I/ C M P 2 R A 7 / O S C 1/ C L K IN
R A S 'M C L B T T H V - R A 6 /O S C 2/ C L K O U T
VSS- VDO
R B O / IN T R B 7/1 l O S l
R 3 1 /R X /D T * R B C / T 1 0 S O / T 1C K I
R B 2/ T X / C K - RB5
R B 3/ C C P 1 R B 4/PG M
NOTA: sus 2 puertos el y IB entregan un total de 200mA cada uno, es decir 25 mA cada pin.
Eli modo sumidero pueden soportar cada uno de sus puertos 200mA. es decir 25 mA. cada pin.
Es muy importante tomar en cuenta estas recomendaciones ya que si no se las sigue podra correr
el riesgo de daar el PIC:
1. recuerde que el PIC tiene tecnologa CMOS, esto quiere decir que consume muy poca corriente
pero que a la vez es susceptible a daos por esttica, se recomienda utilizar pinzas para manipular
y asi poder transportar desde el grabador al protoboard o viceversa, o a su vez utilizar una manilla
antiesttica.
2. procure utilizar un regulador de voltaje como el 7805 que nos entrega exactamente 5V. y no un
adaptador de pared, ya que el voltaje de salida no siempre es el mismo del que indica su
fabricante, por ltimo puede utilizar un circuito con un diodo zencr de 5.1 V.
3. no sobrepase los niveles de corriente, tanto de entrada como de salida, recuerde que el PIC
puede entregar por cada uno de sus pines lina corriente mxima de 25 mA. Asimismo soporta una
corriente mxima de entrada de 25 mA., esto quiere decir que puede encender un led con una
resistencia de 330 O, revisemos:
Voltaje que sale de un pin del PIC, si c> alimentado con 5 V. = 5V.
Corriente que requiere el led para un encendido normal = 15 mA.
Qu resistencia es necesario para encender el led correctamente?.
V -R x I R= V R= 5 V. R - 333,33 0 330 f t
1 0,015 A.
Esto quiere decir que la resistencia mnima u colocarse serla de 220 f i para estar al limite
de la capacidad que soporta el PIC, pero no es muy aconsejable trabajar con los lmites, por lo
que se recomienda utilizar una resistencia de I KO a 10 KO, asi el PIC estara trabajando
tranquilamente con una corriente de entrada de 5 mA o 0,5 mA respectivamente.
4. En algunos proyectos es necesario conectar un capacitor de I uF en paralelo al PIC, este evita
mal funcionamientos que podran ocurrirle, en especial cuando se utiliza teclados m atricules y se
tiene conectado adicionalmente un buzzer activo (parlante activo o chicharra) y rels.
5. Cuando se necesite precisin en el trabajo del PIC (comunicacin serial, tonos L) I MF, etc.), se
recomienda utilizar un cristal oscilador externo de 4 MHZ en adelante, ya que el oscilador interno
RC que posee i i u tiene muy buena precisin. En en experimento r e a liz a d o se conect dos PIC
idnticos con el mismo programa el cual consista en hacer parpadear un led con intervalos de 1
segundo, ambos PIC compartan la misma fuente y al momento de arrancar los dos parpadeos
eran iguales, al transcurso de unos minutos los leds se haban desigualado, esto demuestra que la
calibracin interna no es igual en todos los micros, si utilizramos cristales externos de 4 MHZ en
ambos PIC, no se desigualan nunca, esto debido a que los cristales son muy precisos en cuanto a
la frecuencia que entregan.
Con todas estas recomendaciones se tiene el siguiente diagrama para encender un led y
conectar un pulsador sin que el PIC sufra ningn dao.
Figura 2.7.1. Diagrama bsico para conectar un PIC con un LED y un pulsador, noten que el
PIC no necesita oscilador externo ni tampoco resistencia pidl-up conectado al M CLR o puerto
RA5 como lo necesitaba su antecesor el PIC16F84A.
25
En esta pantalla busque View y haga clic en E ditor O ptions..., luego marque show linc num her*
in left g u tte r que sirve para que aparezco el nmero de la lnea que est programando, esto es
muy til al momento de encontrar errores. Si desea tambin puede indicar la carpeta predefinida
en la que desea guardar los archivos \p b p , por ejemplo podra ser una ubicacin donde ya
previamente haya creado como: C:\mis documentos\ejercicios PIC, si no desea crear ningn
vinculo, slo presione la tecla OK.
Bien ahora observe que aparecen nmeros al lado izquierdo del editor de texto esto ser muy til
en lo posterior, vuelva nuevamente a la parte superior donde dice View y de un clic en Com pile
and P rogram p tio n s...
i Codelxpto-er
1 ;*yw< C o in ra j*e cr
t o-
t .- i r r u i r v
** . vj* r w t ffTTi?
-.i. - J E yH H > U viteard
z f rrtkcr C fX W .,,
CodeE*pb
T o ab ars
UxXatl
Dethes 2 '* tfa a e UKTLTLHL
Constencs * A u t b < jf i la c la d
i j tyvtn 4 iV o t ic e : C o p y n <ft.
1 '* : A l 1 JO t
SSSF^TTT >) t t o i l H x l f o s c * n i* + - 9 S /r t W
Aparecer una nueva pantalla ms pequea, en donde ver que ya est predefinido la ubicacin
C:\niccanique\pbp244. si apareciera C:\Unzipped\pbp244 o cualquier otro destino es porque no lo
borr de la ubicacin anterior, y microcode tomo el pbp244 de esc lugar, para corregirlo debe
eliminar el archivo C:\Unzippcd\pbp244, y volver a ejecutar el programa microcode,
automticamente volver a buscar el compilador.
Una vez corregido lo anterior presione la pestaa Programmcr, aqu aparece el
programador disponible microEngineering Labs >crial Programmcr. pero no aparece IC-prog, as
que debe crearlo con la finalidad de que a futuro pueda llamarlo desde microcode. si no lo hace
deber ejecutar por separado el programa IC-prog creando una demora en la programacin.
1.a forma de adicionar el programa IC-Prog es presionando el botn que dice A dd New
P rn g n im m er ver los siguientes grficos:
J t C* | | ^ |
Inmediatamente aparece otra pantalla aun ms pequea en donde debe marcar crate a custom
p ro g ram m er en try , luego presione Next. En la siguiente pantalla escriba cualquier nombre que
desee darle al programador, en este caso ser ieprog y luego presione la tecla Ncxt.
OaptorMarae: Kp-ag
| Cereal
En esta pantalla le pedir que ponga el nombre del archivo ejecutable escriba icprog.cxc y luego
presione Ncxt. Aparecer otra pantalla coi: dos botones el uno localiza automticamente la
carpeta en donde se encuentra el ejecutable, y el otro es para localizar manualmente, si est
seguro que es el nico archivo icprog.cxc puede presionar la tecla Find A utom atically.
idd H aw Progromnier
S c h i p R t g m n v n e r E x K u U b le
'"'T j ly t* miho ruma c/ ll* prognrww tnaUte nana, KcroCodSbudorijtHMtiutr seanMcr '.* petH
Jfr f Por e x a u d e , ep K v n .sx t o r rrr4naAn.exe D cn^ n d u ie thet c a ta te Ifte proyamer xaataWe, ce yoa cen
th * p a tfr * n , ju tt th acuUtte rvyrvf. chowe t manuely.
[not-deflned]
L i . 3** J
t < *~ l L * * J L f l t
Microcode es un programa editor de texto como el Bloc de notas de windows, pero con la
diferencia que este est hecho exclusivamente para facilitar la programacin de los
microcontroladores PIC. los procedimientos para programar son muy sencillos, primero
seleccione el modelo del PIC I6F628A, 16F877A. c tc .(l), escriba el programa y gurdelo bajo u ii
nombre, en este caso como led interm itente y por ltimo presione el botn compilar (8), si el
programa est bien escrito y sin fallas compilar y mostrar en la parte interior izquierda el
espaeio que requiere en el PIC (4), enseguida se crear automticamente 3 archivos: led
intermitente.mac. Icd ntcrmitente.asm y led intermitente.hcx. este ltimo es el ms importante
para el PIC y es el que se debe grabar en el microcontrolador. A continuacin las partes ms
importantes de la pantalla de MicrCode Studio:
11= -I
113 J J J J ?; ste___________ CCTompi lador
a a*
2. Buscador ) . i
Id U I > ; * IB*.- Tim r. . ,p :.c n ;
de cdigos MIH > fw l* l <0/ M44 |Ml KM
I Ai i 10*'* > " * "
?.e : xi/u/>ee* 7. Encabezado
n M i i.o
jr-jlts i del programa
3. Nmero
de lnea del O ie d i u* *!><" . u r u u i . cikJo
2. B uscador de cdigos.-
Aqui se van adicionando cada que se crea una variable, al incluir un define, o errar algn
nombre de linca, sirve para saber qu componentes incluyen en el programa y tambin como
buscador de lincas, para esto basta con dar un clic en el nombre de la lnea que desea encontrar y
automticamente le indicar donde est dicha linea.
Lnea 14: led VAR portb.O. indica que el Pin U 6 del PIC I6F628A se llamar en adelante led
L in ca 15: pepe:, estamos asignando una subrutina con el nombre de pepe y se lo crea
escribiendo cualquier nombre seguido de 2 puntos ( : ) ejemplo:
Luis:. LUIS:, LuIS:. Alarma:. l.edApagado:. Zona3:, Contador:.
N OTA; No se debe empezar con nmeros y tampoco debe contener espacios, ejemplos de lo
que no se debe hacer
3pepe: en su lugar escriba pepe3:, pepe 3: el espacio no acepta PlOBsic Pro. tampoco
acopla pepe3 porque hay un espacio entre el 3 y los dos puntos.
Lnea 16: H1GH led. significa sacar 5 voltios por el pin 6, lo cual encendera el led.
L inea 17: PAUSE 1000, genera una pausa o retardo de 1000 milisegundos, que equivale a Is.
N O T A : Los PAUSE que se puede utilizar es de 1 a 65535, es decir que PAUSE 65535, equivale
a ms de I minuto y 5.5 segundos, y PAUSE l equival a 0,001 segundo.
Lnea 19: PAUSE 1000, como ya se explic antes genera una espera de I scg. sin hacer nndn.
Linea 20: G O T O pepe. Como el ingles lo dice i r a pepe, indica continuar desde la lnea 15. con
esto se repetira el parpadeo del led para siempre.
NO TA : PicBasic Pro ejecuta las instrucciones en orden desde arriba hacia ahajo, en el caso del
ejercicio anterior desde la linca !4. luego U 15, 16,17,18.19*20. luego de esta ltima salla
a la lnea 14 por accin del GOTO pepe, y nuevamente repite el p rocesa
Lnea 21: E.ND. Fin de las instrucciones, sirve para indicarle al compilador pbp que hasta aqu es
el programa vlido.
6. C om entarios.-
Es recomendable usar comentarios todo el tiempo, aunque sea obvio pat a usted, alguien
podra necesitarlo, y por qu no para usted mismr. dentro de un tiempo no recordar ni cmo lo
hizo ni cmo funciona, ni para qu serva tal instruccin.
NOTA: Los comentarios se crean anteponiendo un punto y coma ( ; ) , noten que el texto cambia
de color de negro a azul y del tipo cursiva
Trate de poner comentarios entcndiblcs por ejemplo:
H1GH portb.3 . activar el rel, que enciende el MOTOR.
8. C om pilador.-
Estos 2 trotones sirven bsicamente para compilar el programa y crear el archivo. ASM,
.MAC. y el .1IFX. el .HEX sirve para grabar en el micro, el .MAC slo sirve para el PICRasic y
el .ASM, para personas interesadas en ver cmo lo hizo el compilador en assembler ya que
podemos abrirlo en MPLAB.
* Com pile O nly - F9. Este primer botn sirve para compilar, es decir el programa lo
cambia a assembler y lo crea el .HEX. ms adelan.e se ver cmo trabaja.
V * Com pile and P rogram - FIO. Este botn tiene doble funcin, aparte de hacer lo mismo
que el botn anterior, es decir compilar, tambin puede llamar al programador Ic-prog, con la
finalidad de ahorramos tiempo y no tener que abrir por separado, es aconsejable utilizarlo una
sola vez. y una vez que el programador IC-prog ya est abierto, en adelante slo se debe utilizar
el botn Com pile Only - F9.
F.n el momento que se compila un programa e>te realiza una previa verificacin del mismo, si
existen errores microcode seala el primer error que encuentra con una franja CAF, luego cu la
parte inferior menciona los dems errores con el nmero de lnea y su explicacin, por eso se
recomienda activar la opcin que muestra el nmero de linca de programacin, (si desea activar
esta opcin refirase al captulo 3 pgina 26), a continuacin un ejemplo de error en la
compilacin en el que se escribi highh en vez ds high.
$ :M f e ro C o (f c S tu d io i'K.'HASff PRO ( tc il in fc itm V rn lp lio* >
. '/ 8A v ,
3 - .C 3 - > O O O C0M! r . a s
.nfaLO<w * 3 | i M i m n K * ' I
* ; 4 ,V
J tK J u O *
1^3 CQMtanb f
Juilitt 11 d un fjr r- M o o d a ua loJ con intcsvalus de I
t v ^ M w ttd ttid H e rs i3
. , 14 |,?rt V* * p o ttb .O . ' ( j Q u a t a p a r a *1 p u e r t a t . O
... iS p e p e : , 'l i a e a s a o s u d o c o a e l a o s O c e p e p e
i. m i H m
:>j s w
17 PAUSE 100 e a p s r a r 1 0 0 0 milis aguados ( 1 segunde)
1 L W ie d . ' i p i <j*e 1 l e d
in PAUSE 1C1 esp erar 1 0 0 0 milisegundos ( l segunde)
20 COTO p e p e :ir a l a l i a e a g v a te n ? a e l a a a fc rc p e p e
21 C*D . f in d e l a s n a tra c c io n e s v
E e o jlt 3
CPRCr .lw 16: 'yi\/n n w , (tal H (f itUa p.a.bai)
C o ra ro n orors i n l e : Col 1
CAPTULO 4
PROGRAMANDO EN LENGUAJE BASIC
Para poder entender la diferencia entre los dos lenguajes de programacin, debemos entender qu
es un lenguaje de alto nivel y que es un lenguaje de bajo nivel, a travs del siguiente cuadro
podemos ver los niveles de programacin.
Otros lenguajes
w m m m s Lenguaje Ensamblador
L E N G U A JE D E M AQUINA
Por consiguiente vamos a programar con un lenguaje de alto nivel, el que ms entendemos los
humanos, esta es la gran diferencia entre Ensamblador y BASIC, a continuacin un ejemplo de un
programa en Basic para el PIC16F628A que hace p a rp a d e a r un led con intervalos de 1 segundo.
list p=16F628A
reset org n
u
....... ;se escribe en la linea 0 la instruccin
goto inicio ;$alta a la lnea etiquetada con inicio
org 5 ;!as siguientes lneas se escribirn desde la direccin 5
Como se puede ver es mucho ms largo y difcil de entender, adems debe conocer las posiciones
de memoria que estn disponibles para este PIC. as como tambin la arquitectura del PIC,
tambin se debe hacer clculos muy precisos para generar el retardo de 1 segundo.
Este es el objetivo primordial de este libro, ensear a programar micros PIC de la forma ms
rpida posible, si no ha ledo completamente el libro le recomendamos leer el literal 3.2
MANEJO DE MicroCode Studio pgina 28.
Vamos a proponer nuevamente el proyecto que ya hemos visto antes, pero esta vez lo
pondremos en funcionamiento, escriba el programa que viene a continuacin, o abra el archivo
del CD Ejercicios\ led intermitentc.pbp y siga los siguientes pasos. NOTA *.pbp = *.bas
>w o . * s s
ni'
> rc v O O y J * & -~
; i r * 3 | j d d n i l M i
y mu pir a i \ i . n A \ -
jt a 'n 3 i s .n o zt s c z uacar p ja v .. .e p tia a * *
C<rU-i B a lie m t CoivuiiiM > *004 la m w tvlat t i r a . . . e p on *)
C j '-UUn i A l l Jtigaei tasarra*
- >1) U am I r f m : < P .f ; 3 1 /O J /K C S *
T V m m i i 1 .1
M
H ile s : m
U
l .*d VM portb.O i u < a i o a r ta b.O
11 im pa: . h a e t j g u d a c u <2 a tajee paya
11 K IM l e =C9S3X c: ie d
n v a in a 103 amparar I9P0 a i l l t t f U M M t i aaffum**)
la Lma lad -apagar a l i mi
1 PAVSZ 103 n ; l f 1000 m iiia a p u m ta a t i aapvamto}
10 MTD m m x z a J a 21M U qaa lampa a ) mam+ra par
t a*D ,- tta 9a l a s
.
D * < m
Finura 4.2.1. Programa microcode con el archivo led intermitente, bus o .pbp
| O) CompJnQ Circulo verde mientras est compilando el programa con php 2.44.
| Succgss: 59 wofd$used Circul0 plomo finalizar y nos da el tamaflo que necesita en el PIC.
Si todo est bien y dice succcss : 59 w ords used.. presione o FIO, espere a que compile
nuevamente y se abra el IC -Prog 1.05D, si es la primera vez que ejecuta este programa no olvide
revisar el Captulo 1 pgina 14. A continuacin la pantalla de IC-Prog 1.05D.
A*
IC P r p ft 1 .0 5 0 PoftKnvUoi do p n tlo tip o " SI
I Actviti f to n Bufet Ajustn Conendc Hert Ayuda
G B ? |t y 9 % % % it, sp CJ G* S SEQ H SH H r.
1
:o V f f f 3r r r 3r r r 3FTP3FTF 3 i r r 3 rrr jrr r r r r m r i a ;j O tcM d or i
00(11: 3FFP 3F T F JTFF 3FTF3r r r j r r r i r r r 3r r r T m r n i - _ ,1 '
n o i0 : 3 r r r i r r r jt t t 3 IT F 3 r r r 3 p f f 3 F rr j r r r T T rir/ n
5 -
0018; ir r r i f f t 3r r r 3 P IT s r r r j r r r i r r r 3r r r rrrrrrtr
11020: 3F I T 3 F F F 3PTF 3FFT 3r r r 3F P F 3 T T T 3FTT T rrrrrr/
00 20: jr r r jr r r 3r r r a rrr a rrr j r r r 3r r r a r rr yyyyyyyy
0 0 3 0 : JFPP 3F F T 3FFT 3 r r p 3 F F F 3 r r r 3 r r r 3FFT yyyyyyyy
U U J Il: I F P f 3FFT 3FTP ir r p a r r r j r r r j r r r 3r r r rrrrrm t
0 0 1 0 : 3F F P 3 F T F 3 IT F 1FPF 3 F T F 3 r r r 3PPP 3FTT YY Y Y Y Y TY
o o i a : i r r r 3r r r j r r r j r n r 3r r r 3r r r 3 rrr 3 I T T rrry y y y y Ola cortfViwrartu
0 0 5 0 : 3r r r j r r r 3r r r 3PTT 3 P P r i r r r 3 rrr 3 rrr y m m v V VSCiT
0030; ir r r 3 P rr 3 rrr jr r r 3 rrr rrrr j r r r 3F T F m v rrrr v:
PVMU
: t l j
O ecciJo o a c s Eeeror: .v M U
| oooo: rr rr rr rr rr rr rr rr rrrrm n t A ? nccew
IV L W
;o o o e : rr rr ft r r r r rr fp rr m y rry r
o o iii: rr rr rr rr rr rr pt - r r v tn m rt r c o
n o ta : rr rr rr rr rr rr r r rr yyyyyyyy :r CP
0020: rr rr rr rr rr rr ri* rr rm rrm
0028 fp it r r r r rr rr r i rr CheOiuni V*lof O
r rr rr m
no n i : r p r r rr rr r r r r r r r T rrrrrri jis r r fT '
0 0 3 0 : r r rr rr r r r r r r ri r r ryyyyyvy H. lo A x 3fTFh 1
bJtrer 1 | 3j tu lim i 1
X *P ro o w w o rw iC rl O c p w liv o P*C 16FS2M <1473 {
L
Figura 4 3.1. Presentacin de la pantalla de IC-Prog I.05D.
3. Seleccione el PIC que se va a grabar, noten que el cdigo de programa est slo 3FFF 3FFF
esto quiere decir que est vaco, no hay ningn programa a grabarse.
4. Abra Archivo > busque led nterm itente.H EX . ponga Abrir e inmediatamente ver que el
cdigo ha cambiado por algunos nmeros, este es el programa que el PIC entiende, la
presentacin ser similar a la siguiente pantalla:
a : Q .(Jfe . i ff . a. $
Otcen-CAdoatiojriS t SRgRSS?
:0 0 0 0 : 2 8 2 0 0 1 A 3 0QA2 30FF 07A 2 IC O 3 0 7 A 3 1 C II3
jUUOO; 2 8 2 3 3 0 0 3 0QA1
tC y C .t. OKAWOr
JO D F 20Q F 2 8 0 3 01A 1 3CC 0
i0010: 00A 0 09A 1 30FC
1C 03 2818 07A 0 1 8 0 3 2815 lo .. ..
0010: 07A 0 0064 2813urAi 1820 VB IR 1 CAO 2822 d|...
0 0 2 0 : 0000 2622 0008 1383 1303 1283 0064 0008
io u v a : 1306 1603 1006 1 2 8 3 .1 0 0 1 nAi inrn ?nnv .J.J.JC*.
0 0 3 0 : 1006 1683 1006 1283 3003 00 A 3 3 0 F 8 2 0 0 2 .f.f.Z*.
- .0 0 3 8 : 2 8 2 8 0 0 6 3 2839 3FFF 3IT T 3r r r 3T T T 3TFT (cyFVyy
0 0 4 0 : 3 F F F 3FF F 3TFF 3F F F 3FFF 3FF F 3FTF irrr yyyyyyyy
jn o r 3r r r jrrr 3FF F 3FF T 3FT F 3ITF 3i t f 3r r r D ls n 'q w w j v
0 0 5 0 : 3F F F 3F P F 3TFF 3F F F 3FFF 3FF F 3 F F F 3 P r r yyyyyyyy
0 0 3 8 : 3r r r 3 fft 3FF F 3FFT 3F F F 1FFF
ww t
o PWI
C*ec=Jan Detos Esfcr. r JrtCLf
0000: F F F F F F FT FT !> OCCCN
0008: r r r r r r n re n rr rr r lvp
jn o io : r r r r ff rr ff ti rr rr r cpo
] 0 1 8 : r r r r f f r r f f ir rr ir T.cp
;0 0 2 0 : f f f f r r r r pr ir rr rr
0 0 2 8 : F F F F F F r r F F rr rr rr e re c ta k s v < ip
0 0 3 0 : F F F F F F F F F F F F FT FF je y o f rrr
0 0 3 8 : r r r r r r r r r r r r r r r r
P w w a conflg. 3FSW
Outt f f i [j j i w i r 2 1 e u f fa t3 ) B u n .4 ) \
F igura 4.3.2 . Pantalla de IC-Prog con el archivo led intermitente, hex cargado.
Despus de abrir el archivo .HEX (No antes), proceda a cambiar la configuracin del oscilador a intKC
T/O (Oscilador interno resistencia condensador pin de 1/0 los A6 y A7), el M C LR (reset externo)
debe estar deshabilitado, y la proteccin de cdigo apagada. Si ya est listo e instalado el PIC en
el Grabador de micros, presione o F5 y espere a que salga el siguiente mensaje:
Information X
i. ...S....J
Figura 4.3.4. Cuadro de dilogo que indica error en Ia programacin dei PIC
1. Si el LED rojo del grabador no se encendi mientras estaba programando, revise si est
conectado en el puerto com correcto.
2. Si dispone de dos puertos com pruebe cambiando al otro puerto com hasta que se encienda el
led rojo del grabador.
3. Si el LED rojo del grabador se enciende pero de todas maneras sale el mismo mensaje de error,
revise si el PIC est correctamente insertado en el grabador.
4. Si analizado los 3 puntos anteriores, contina saliendo el mismo mensaje, es muy probable que
el PIC se encuentre daado, reemplace por otro c intente grabar nuevamente.
Para los dems puertos AO, A l, A2, A3. A6, A7, estos funcionan normalmente como el puerto B
tanto como para entradas o salidas, siempre que incluya la lnea cmcon7.
emeon = 7 ;apaga ios comparadores de voltaje del puerto A y los convierte en digitales
Hn este literal se pretende aclarar que existe varias formas de desarrollar un programa, se
presentarn a continuacin varias maneras de escribir un programa que realiza el mismo trabajo
final, es decir hacer parpadear un led con intervalos de 1 segundo en el puerto RBO.
Portb= % 0 I 0 0 I0 I 0
B7 B 6B 5R 4 B3 B2 B1 B0
Indica encender el Puerto B.6, el B.3 y el B.l, para todos los dems significa permanecer
apagados, esto es m uy til en casos en que se necesita encender un grupo de Icds. como los
proyectos que ms adelante se ver como el semforo y luces del auto fantstico, de todas
m aneras lo emplear para hacer parpadear un Icd.
NO TA: PBP reconoce bases numricas en decimal, en binario usando el prefijo % y hexadecintal
utilizando el prefijo $ ejemplo:
12 es igual que % 1100 y tambin es igual a
Seguimos con otra forma de programar un parpadeo de un Icd, esta v e/ como el ejemplo anterior
pero con la diferencia de que slo manejaremos un pin y no todos en conjunto
Como se podr ver hay distintas formas de escribir un programa y todos tienen el mismo
resultado final, asi que si un proyecto no funciona correctamente, pruebe escribiendo de una
forma diferente.
Debemos entender que declaraciones son cada una de las palabras que el compilador pbp 2.44
tiene reservado para realizar una tarca especfica, las ms utilizadas son: H IG H , LO W , PAUSE,
GOSU B, G O T O . LCDOIT, SERIN, SEROUT, FO R , NEXT, IF, TH EN , SOUND. LNI), un
ejemplo:
H IG H portb.3
Esta instruccin H IG H es reconocida automticamente por microcode, lo coloca ctl
negrilla y mayscula, y sirve para que el compilador realice los ajustes necesarios para cambiarse
al segundo banco de la RAM, colocar como salida el puerto B en TRISB. y luego regrese al
primer banco de la RAM y setea en 1 al Portb.3, todo esto nos ahorramos gracias al pbp 2.44.
A continuacin las 83 instrucciones disponibles con una breve explicacin.
5. PR O V E C T O S DE APLICACIN.
NOTA: Para mayor facilidad en la escritura de los programas se ha cambiado el nombre de los
pines de los puertos por ejemplo: el pin RB6 se lo llamar nicamente B.6 o simplemente B6, el
puerto RB5, se lo llamar B.5 o B5, y asi con lodos los dems puertos. Otro punto importante que
observar en Jos proyectos es que no hay diagramas de flujos, esto se debe a que no es necesario,
porque el programa escrito en si es como un diagrama de flujo. En esta edicin se ha cambiado la
extensin de los archivos .bas por .pbp. ambos se puede abrir en cualquier versin de micrcode.
Este proyecto ya se revis muchas veces anteriormente, si usted no lia ledo todo el libro lea por
lo menos la pgina 29 y 30 y de seguro entender el siguiente programa, adicionalmcnte puede
abrir el programa que se encuentra listo en el CD en Ejercicio^ led intermitente pbp
Figura 5.1. /. I. led intermitentc.pbp Programa para el PICI6F628A que hace parpadear un led.
Una ve/, escrito el programa compile y grate el PIC. si no sabe cmo hacerlo se recomienda leer
las pginas 35 a la 38. no olvide poner en el IC-prog oscilador intR C 1/0 y deshabilitar el
M C LR , luego de que lodo est bien conecte el PIC como ilustra la siguiente figura:
Una vez realizado este proyecto siga intentando con diferentes tiempos de PAUSE, recuerde que
son en miliscguntlos y sus valores son desde 1 hasta 65535. pruebe con PAUSE 100 ver que el
parpadeo es ms rpido y PAUSE 20(10 e> ms lento, asimismo ponga de diferentes valores entre
los 2 PAUSES ejemplo el primer PAUSE coloque PAUSE 2000 y en el segundo coloque PAUSE
500 ver diferentes efectos.
NO TA: recuerde que el PIC ejecuta cada lnea de programa en I uS. (0,000001 segundos) por lo
que si no coloca uno de los 2 PAUSES ver el LED slo encendido o slo apagado, esto se debe a
que no hay tiempo para ver el efecto de transicin del LED.
Figura 5.1. .3. Programa para entender 1a velocidad a la que trabaja el PIC.
Si ya coloc en el protoboard ver que el LED permanece slo encendido, pero no es asi el LED
se apago, pero por un perodo muy corto, lo que a simple vista no lo notamos pues este dura I uS
el tiempo en que el PIC cambia a la siguiente instruccin. Analicemos detenidamente lo que hace
c! PIC desde el momento en que corre la linea HIGH led.. en ese mismo instante se enciende el
LED luego pasa I uS. y ejecuta el PAUSE 1000, este es un grupo de subrutinas que el
compilador pbp genera para dar un retardo de I segundo sin hacer nada, por su puesto el LED
sigue encendido porque an no lo decimos que se apague. Una vez terminado el periodo del
PAUSE 1000 pasa a I,OW led en I uS.. cu este mismo instante se apaga el LED, pero la
siguiente linea no es otro pause sino ir a pepe y esto se demora 2 uS. por lo que enseguida se
enciende el LED al llegar a HIGH led.
Recuerda que en la pgina 40 se habla de manejar un grupo de leds, pues bien, este es el ejemplo
ideal para entender cuando utilizar HIGH y cuando PORT. se recomienda utilizar HIGH cuando
se trata de un slo led o rel. etc., pero si se va a utilizar un grupo de leds veremos que es mucho
ms fcil si manejamos todo el puerto sea este el A o el B, pero de todas formas escribiremos el
programa de las dos maneras, y usted se darn cuenta cual es la forma ms rpida de programar,
en la figura 5 .1.2.1 .se muestra el diagrama de conexin para este proyecto.
trisb= 0 : indica que todos ios pines del puerto B son de salida
semforo: nombre de a linea semforo
portb = % 1 0 0 0 0 1 encender rejo del 1er semforo y verde del 2 do semforo
PAUSE 9000 esperar 9 segundos
portb=% 1 0 0 0 1 0 cambiar en el 2 do semforo de verde a amarillo
PA U S 3000 esperar 3 segundos
portb-% 0 0 1 10.0 cambiar a verde en el I cr semforo y rojo el 2 do semforo
PAUSE 9000 esperar 9 segundos
portb - % 0 1 0 1 0 0 cambiar en el I er semforo de verde a amarillo
PAUSE 3000 esperar 3 segundos
CiOTO semforo continuar con el ciclo para siempre
END : fin de la p-ogramacin
Figura 5.1.2.4. Programa del semforo manejando pin mr pin con H IG H y LOW .
En esta otra manera de escribir el programa, noten que es ms largo que el primer programa, y
adems no escribimos trisb 0 al inicio, porque H IG H ya los convierte en salida, tambin aqu se
ve algo nuevo los 2 puntos ( : ), estos sirven para declaraciones mltiples en una sola linea, para
ambos casos el tamao de cdigo generado es el mismo.
Ejemplo, si queremos expresar en una sola lnea las 2 siguientes declaraciones:
HU H rojo l
HIG H vcrde2
quedara a s : H IG H roiol : H IG H verde2
NOTA: si desea aplicar este proyecto con focos de 110v,, se debe utilizar perifricos de salida
com o s rels; el siguiente es el diagrama de conexionado de un rel:
o
12 v.
y
s
8
o
Este proyecto propone familiarizar an ms con el manejo de los puertos,esta vez vamos a
utiiizar las 8 salidas del puerto B. se trata de una secuencia de luces quedeben encenderse de
M A T E R IA L E S
-8 LEDS de 5mm.
8 resistencias de 330 l a Vi vatio, naranja-ncranja-cuf
Prueba2:
Porlb-%00000001 Portb-%00000001
PAUSE 1000 GOSUB pablo
Portb-% 00000010 Pnb-% ooooooio
PAUSE 1000 GOSUB pablo
Portb=% 00000100 Portb-%00000100
PAUSE 1000 GOSUB pablo
G O T O prueba I G O T O prebrt2
Pablo:
PAUSE 1000
RETU RN
Figura 5.1.3.2. S i quisiramos cambiar el PAUSE 1000 por PAUSE 500. en el programa de la
izquierda deberamos cambiar a cada uno de ellos, cu total 3. pero para ai de la derecha bada
con cambiarle a l que est dentro del la subrutina paldo, y tendramos el mismo resultado.
NOTA: la ubicacin de la subrutina pedro es importante fijarse que se encuentre despus y fuera
de las lineas principales de programacin, si esta misma subrutina lo colocramos al principio del
programa, de seguro se nos cuelga porque al encontrar un RETU RN simplemente no sabe a
dnde retornar ya que nadie lo ha enviado an
Figura 5.1.3.4. Fotografa del proyecto de luces kira discoteca, se muestra un mdulo de * leds
con sus resistencias, basta con conectar el ler cable a tierra y los dems a cada uno de los pines
del puerto B del PIC, esto ahorra tiempo de instalacin.
5.2. L E JE R C IC IO C O N L A IN S T R U C C IO N F O R NEXT.
Este proyecto es muy imprtenle entenderlo, ya que el siguiente proyecto de luces <le nulo
fantstico tambin utiliza la declaracin FO R NEXT.
Esta declaracin sirve para ejecutar un nmero n veces una lnea de programa o grupo de
lneas de programa, el siguiente proyecto prelende encender un led en el puerto R 0 5 veces con
intervalos de '/: segundo, despus debe detenerse por 2 segundos y luego parpadear 3 vcccs ms,
detenerse por 3 segundos y luego repetir nuevamente el proceso, se puede utilizar el proto que se
arm para las luces de discoteca ya que el mismo nos servir despus para el siguiente proyecto el
de las luces del auto fantstico, FO R NF.XT se utiliza de la siguiente manera:.
Petcr VAR BYTE ;primero se crea y asigna un tamao para la variable peter
FOR peter = 1T O 5 ;Kjecuta las siguientes instrucciones 5 vcccs hasta donde dice NFXT
............. ;una vez concluido las repeticiones contina con la declaracin que est
;despus del NEXT. peter debe ser creado como variable, es decir
NEXT ;asignarle un espacio en la memoria en este caso para 5.
LAS VA R IA B LES BIT, BYTE Y W ORD. Estas son creadas para guardar datos en la memoria
RAM (Randoni Access Memory) o memoria de acceso casual, esta memoria trabaja nicamente
mientras est alimentado el PIC, una vez que el PIC es desconectado, los datos de la memoria
RAM se borran.
Para crear una variable es muy similar a asignar un nombre de un pin. como peter VAR
portb.3, la diferencia est en que en vez de poner el pin se pone el tamao de la memoria a
utilizar y estos son los siguientes:
Para nuestro caso como queremos hacer 5 repeticiones, nos corresponde crear un BYTE que nos
permite almacenar un nmero husta el 255.
Este proyecto es muy similar al de las luces para discoteca, con la diferencin de que este se
enciende de izquierda a derecha y luego de derecha a izquierda, pensaramos que el programa
seria el doble del tamao que el que hicimos para las luces de discoteca, pero no es as, recuerden
que existen varios caminos para llegar n un misino objetivo, y este es uno de ellos, esta vez
utilizaremos los desplazamientos, que no son nada ms que recorrer un uno lgico a la izquierda o
a la derecha de la salida de los puertos.
Los desplazamientos utiliza la multipUcactu y Va dm sttt, sab-wwos e\ ? \C Vtabaja
con el sistema binario, si tenemos una variable X con un valor inicial de I (% 0000000l) y lo
multiplicramos por 2 . el resultado seria 2 (% 0 ')0 0 0 0 1 0 ). y este a su vez lo volveramos a
multiplicar por 2 el resultado sera 4 (%00000100), y asi sucesivamente hasta llegar a 128, en
donde en binario sera (% 10 0 0 0 0 0 0 ), veramos que los leds se enciende do la misma forma que en
las luces para discoteca, para hacer que las luces regresen hasta el puerto B.O debemos dividir
para 2, entonces 1 2 8 /2 es igual a 64 (% 0 1000000), como podemos ver ahora est regresando a
su lugar de origen, los desplazamientos se escribe de la siguiente manera:
L.BDS - LEDS << 1 equivale a multiplicar por 2 y se desplaza uno a uno. tambin podemos
LEDS - LEDS << 2 equivale a multiplicar por 4 v se desplaza de dos en dos
LEDS - 1 J :.DS l equivale a dividir por 2 y se desplaza uno a uno hacia la derecha.
PROG:
FOR x - 1 TO 7 repetir 7 veces
LEDS = LEDS 1 desplazar uno a uno a la izquierda
PAUSE 200 esperar 2 0 0 milisgundos
NEXT repetir hasta que x sea = a 7
Figura 5.2.2.1. auto tantastico.pbp Programa para encender las luces del auto fantstico.
NO TA : No olviden carg ara LEDS = 1, porque si no lo hace significa que vale cero (0) y esto
multiplicado por 2 siempre dar cero, en conse:uenci nunca veramos el despla/amicnto.
1. Encienda un led conectado en RB4 durante 2,5 seg. y luego apguclo por 0.5 seg. el
proceso debe repetirse slo 4 veces, luego el led debe permoner apagado.
3. En el proyecto 5.1.3 juego de luces para discoteca, encienda los leds del medio hacia los
extremos, es decir empiece por B4 y B3. luego apagelos y encienda B5 y B2 y as
sucesivamente hasta llegar a los extremos B7 y B0, utilice PAUSE 200 y haga que se
repita indefinidamente.
A. Encienda una ruleta con leds conectados a todos los pines del micro (15 leds), excepto
RA5 y hgalo girar las luces a la velocidad y en el sentido que desee.
5. Genere 6 parpadeos de un led con intervalos de 300 mis. luego haga 2 parpadeos de I
segundo con un segundo led. luego haga que los 2 leds parpadeen 3 veces, repita el
proceso indefinidamente.
Fsfe ser el primer contacto del PIC con el mundo exterior, un perifrico de entrada, primero se
debe entender cmo funcionan los pulsadores con el PIC. existen bsicamente 2 tipos de conexin
para los pulsadores, el que siempre est en I lgico (5 V.) y cuando es pulsado cambia n c.c.ro
lgico (0 V.), y el que est en cero lgico y cuando se le pulsa pasa a uno lgico, los siguientes
son los diagramas de conexin.
Fxisle otra manera de hacer un pulsador o entrada con ms voltaje del que el PIC sopona, y es
haciendo un divisor de voltaje, esto es muy utilizado para indicar si una batera de 12 voltios por
ejemplo, se encuentra cargada o descargada.
Ejercicio:
Calcular la resistencia R2. para hacer un divisor de voltaje en el que salga aproximadamente 5
Voltios, si la fiiente es una batera de 24 Voltios DC.
L- Vt 1- 24 1= 1,93 mA] ;Lo cual estarla bien, considerando que el PIC soporta
Rcq 12400 25 mA en modo sumidero por cada pin.
ENDIF
IF (porta. I 0) AND (porta.2=0) TH EN prog ;s porta. I y porta.2 son igual a cero ejecuta prog.
asimismo soporta los dems operadores como: OR, XOR, NOT AND, NOT OR. N O T XOR
M A T E R IA L E S.
-I LEI) de 5mm.
- 1 resistencia de 33012 a V vatio, naranja-naranja-caf
-1 resistencia de 4.7 K2 a XA vatio, amarillo-violcta-rojo
-I pulsador para protoboard normalmente abierto como el de la figura 5.3.3.2.
Figura 5.3.1.5. nulsador.nhp Programa para leer un pulsador, si este es presionado se enciende
un led que est conectado en el puerto A. I y se apaga despus de I segundo.
En esta prctica haremos un contador binario, el resultado lo veremos en cdigo binario a travs
de 8 leds conectados en el puerto B. Para esta prctica necesita poner un antirrebote al pulsador.
V \1 A T E R IA L E S .
' -8 LCDS de 5mm.
I -8 resistencias de 3 3 0 0 a / ; vatio, naranja-naranja-calc
' -I resistencia de 4.7 K Q a '/; vatio, amarillo-violcta-rojo
| - 1 pulsador para protobonrd normalmente abierto como el de la figura 5 .3 .3 .2 _________ _______
5 v.
pulsar:
portb^num indica sacar el valor de num a.travs del puerto B
F bolon=0 TH EN contar ;pregunta si el botn ha sido presionado
G O T O pulsar ir a pulsar, mantiene encerrado en este loop
contar:
num=num + 1 suma 1 a la variable num y el nuevo valor le guarda en num
G O T O pulsar volver al principio del programa
Figura 5.3.2.2. Programa para sumar en cdigo binario sin antirrebote de tecla.
Si tuvo la oportunidad de ver funcionando este proyecto, se dar cuenta que cada que se pulsa el
botn el contador aumenta demasiado, esto es como se dijo antes porque el PIC trabaja a luS.
cada instruccin y cuando una persona presiona el botn, por lo menos necesita de 100 mS de
tiempo para soltarlo, en ese tiempo el PIC ya sum alrededor de 25.000 veces. Para solucionar
este problema proponemos hacer un programa de antirrebote de tecla, en el cual si presionamos el
botn, este le enva a un programa que lo mantiene encerrado, y nicamente sale de esta subrutina
Figura S.3.2.3. contador binario.pbp Programa para sumar en cdigo binario con anirrebole.
Para conocer ms sobre los operadores matemticos disponibles como: resta, multiplicacin,
divisin, etc., existentes en el compilador PICBasic Pro. se recomienda ver la ayuda de
microcode en Help Topies\PicBasic Pro Basics\Math opcrators\ntroduction o el manual en
espaol del pbp de vvww.frino.com.ar.
Este proyecto se basa en dos pulsadores, el 1ro para aumentar la frecuencia del parpadeo del
LED, y el 2do para disminuir la frecuencia de parpadeo. Para esto utilizaremos 2 operadores
matemticos, la suma y la resta, la suma incrementar las repeticiones de una instruccin FOR
NEXT, que contiene un PAUSE 5, mientras que la resta disminuir las repeticiones del mismo
pause. Debemos tener en cuenta que una variable BYTE no puede exceder su contenido a ms de
255. ni tampoco pasar a valores negativos al ser restado consecutivamente, si excediera el valor
de la variable a ms de 255, el mismo se carga con valor de cero, y viceversa si el resultado de la
resta pasara a -5, la variable se carga con 255.
Para comprobar lo dicho anteriormente, despus de hacer la prctica principal, en una
prctica aparte eliminen o convirtales en comentarios las lincas que dice:
La primera se encarga de no permitir que siga restando, para que el tiempo mnimo de
pause sea de 50 milisegundos (10 x PAUSE 5). mientras que la segunda se encarga de no
permitir que siga sumando si el valor de la variable es mayor que 150, este ejecuta un RETURN.
con esto el tiempo mximo de pause sera de 750 milisegundos (ISO x PAUSE 5).
Figura 5.3.3.1. Diagrama de conexin de Figura 5.3.3.2. Fotografa del diseo armado en
2 pulsadores y un led en elpuerto B. el protoboard. tambin muestra el tipo de
pulsador de 2 patitas ideal pura ios protohoards.
inicio:
H IG H led encender el led
GO SUB timer ;r y retomar de timer
L O W led apaga el led
GO SUB timer ;irv retomar de timer
G O T O inicio
timer:
IF psube - 0 T H E N GOSUB restar pregunta si presion psube
IF pbaja - 0 T H E N GOSUB sumar pregunta si presion pbaja
F O R xy = 1 T O veces repite desde 1 hasta el valor que contenga veces
pause 5 retardo de 5 mis
NEXT siguiente repeticin
RTU RN retomar al que 1c envi
C ontina....
reslar:
IF veces<10 THEN RETUR> ;retoma si veces es menor que 1U
veces - veces-5 : resta 5 u la variable veces
RF.TURN retoma hacia el que le envi
Figura 5.3.3.3. led variahlc.nbn Programa pare, el led Intermitente de velocidad variable.
Este es un reset externo que el PIC posee, aparte del resel al encendido que dispone, la utilizacin
del M C L R es muy sencillo, slo debemos instalar un pulsador I lgico (pul up) en el puerto
A.5. cuyo pin es especifico para el MCLR, el proyecto debe funcionar de la siguiente manera:
hacemos un programa para que parpadee un led cada 200 milisgundos (PAUSE 200), para
siempre, y al pulsar el boln del MCLR. este parpadeo debe detenerse y al soltarlo debe continuar
con el parpadeo del led. es importante tener habilitado el MCLR en el momento de grabar el PIC
en el programa IC-prog, el siguiente grfico muestra cmo debera estar la configuracin de los
fusibles de configuracin del 16F628A en el IC-prog antes de grabar el PIC:
, Configuracin
: Oscilador.
intRC/0
1
: 0its configuracin:
. Vj WDT Figura 5.3.4.1. Configuracin de! IC-prog, con oscilador
I V ' FWRT Interno RC y habilitado el MCLR ( reset externo
i fv MCLR ^ necesario para esta prctica.
i V BO DENn-
r lvp
r c pd
i: r CP
Checksum Valor ID
|E5F8 jFFFF
Figura 5.3.4.3. Programa para un parpadeo de un led cada 200 mS. con reset externo.
Con todo lo aprendido hasta aqu usted podra tranquilamente hacer un PLC como el de la
siguiente figura:
t o m a s i s ;
3. I laga un proyecto con 2 pulsadores PI y P2 y 3 leds, led I, Icd2 y Icd3, si presiona Pl este
hace que se encienda el ledl durante 1 scg. liego esto se apaga, si presiona P2. este hnco
que c! Ied2 se encienda durante 1 seg. y luego se apague, si presiona P Iy P2 al mismo
tiempo, el Ied3 parpadea 5 veces con una pauta de 300 mis. luego permanece apagado.
Los displays son mu\ utilizados para visualizar calos. Para esta prctica se utiliza como perifrico
de salida un display tipo nodo comn, para lo cual se facilita el diagrama en la figura 5.4.1.7. I-I
proyecto consiste en hacer un contador decimal (0,...,9),con intervalos de 0.5 segundos.
f l programa es muy similar al del 5.3.2. contador binario, con la diferencia que slo se
necesita los 4 bits ms bajos (B .0 .13.1. B.2. y B.3). el decodificador binario a 7 segmentos (7447).
es el encargado de transformar el nmero binario que inglesa a nmero decimal.
' M A T E R IA L E S.
-I DISPLAY nodo comn preferible como el de la figura 5.4.1.2. ideal para protobonrds
-7 resistencias de 3302 a Z2 vatio, naranja-naranja-caf
-I CI. 7447 dccodiPicador IICD ____ ____ ____ _____
encerar:
numero - 0 ;carga con cero a la variable nmero
display:
portb-num ero ;saenr por el puerto b el contenido de nmero
PAUSE 500 ;esperar 0.5 segundos
II' num ero-9 THEN encerar ;si nmero es - 9 encerar nmero - 0
nm ero-nm ero i* I ;sumnr 1 a la variable nmero
G O T O display ;ir a display
F.ND
M A T E R IA L E S.
-1 DISPLAY nodo comn, preferible como cl de la figura 5.4.1.2
-7 resistencias de 3302 a vatio, naranja-naraiija-eaf
-I Cl. 7447 decodificador BCD
-1 pulsador para protoboard normalmente abierto como los de la figura 5.3.3.2_________________
aumentar:
IF bol- 0 TH EN aumentar ; si cl botn sigue pulsado encerrar en aumentar
PAU SE 200 esperar 0 .2 segundos
IF numero=9 TH EN encerar si nmero es =9 encerar nmero - 0
numero=numero -+ 1 sumar 1 a la variable nmero
G O T O display ir a display
END
Finura 5.4.2.1. displav7seg boton.pbp Programa para el display de 7 segmentos con pulsador.
Usted se preguntarn cmo hacer para que cl nmero se incremente apenas se pulsa la tecla y no
cuando soltamos como actualmente sucede, pues bien para esto utilizamos banderas que no son
nada ms que una vuriable de I bit, esta nos indica cuando ha sido pulsada. F.l siguiente es un
ejercicio adicional aplicando la bandera.
Figura 5.4.2.2. displav7see boion2.nhn Programa para el display' de 7 segmentos con pulsador
y utilizando una bandera que indica si se ha presionado la teda.
Como se dijo en un comienzo al PIC se le puede programar para reemplazar a casi cualquier
circuito integrado, en esta ocasin haremos que el propio PIC sea como un Cl. 7447. para esto
debemos saber que para sacar cl nmero 3 por ejemplo, debemos calcular el nmero decimal que
hace que se enciendan los segmentos correctos del display, esto se hace de la siguiente forma.
Como debemos encender los segmentos a. b. c. d, y g.. revisamos los pines del PIC que
les corresponde y estos son: BO. B l. B2. B3. Y B6 , respectivamente, estos debemos ponerlos en
estado cero lgico para que los segmentos se enciendan (recuerde que el display es nodo
comn), y los dems I lgico pura que permanezcan apagados:
B6 B5 B4 B3 B2 B l B0
0 1 ; 1 0 0 0 equivale al decimal 48. el display saca cl nmero 3
I M A T E R IA L E S .
-I DISPLAY nodo comn preferible como cl de la figura 5.4.1.2
-7 resistencias de 3302 a Vz vatio, naranja-naranja-caf |
N O T A : En esta prctica se puede utilizar un-pulsador en el MC.R el del ejercicio 5.3.4.; con In
finalidad de poder resetear el programa y as volver a empezar el conteo desde 0 .
El siguiente proyecto debe encender 4 displays para poder mostrar cualquier nmero desde el 0
hasta el 9999. esto lo conseguimos gracias al transistor tipo PNP. que nos ayudar a multiplcxar
cada uno de los displays, el funcionamiento es bastante sencillo, debemos conectar los 4 bits ms
altos a cada transistor y los cuatro bits ms bajos al CI. 7447, si por ejemplo queremos sacar el
nmero 6874, primero habilitamos el 4to transistor, el de la derecha y enviamos el nmero 4, el
CI. 7447 se encarga de formar el 4 en el display, luego pasamos a cero lgico el 2do transistor, y
los dems lo mantenemos en nivel alto, al mismo tiempo sacamos el nmero 7 por los bits menos
significativos del puerto B. y as consecutivamente, el tiempo que debemos mantener activado
cada transistor no puede ser mayor que 5 milisegundos, es decir que los cambios son tan rpidos
que el ojo humano ve lodos los displays encendidos al mismo tiempo, cuando en realidad solo se
enciende uno a la vez.
Ejem plo: para sacar el Nro 8 en las centenas debemos sacar ( 176-8), es decir el nmero
184 porque si analizamos en cdigo binario, tenemos que los bits ms bajos entran al CI. 7447. y
los bits ms altos, son los encargados de encender el displny que le corresponde a las centenas.
M A TEM ALES.
-4 DISPI ,AYS nodo comn
-4 transistores 2N3906
-7 resistencias de 33011 a '/: vatio, narnnja-nnranja-cafc
-4 resistencias de 4.7 KQ a V vatio, amarillo-violeta-rojo
-1 CI. 7447 decoditicador BCD.
Figura 5.4.4.2. Fotografiu del entrenador experto l-h-02 de AUTOM ASIS, ideal para estas
prcticas por Ia facilidad en el ensamblaje dt proyectos, adems dispone de mdulos como leds,
4 display de 7 segmentos, LCD. pulsadores, teclado matricial. rel, parlante, dipsmtch,
comunicacin RS232. RS422/4S5. memoria serial, reloj calendario, chicharra, con ver sor D/A.
etc. tambin permite programar el PIC sin necesidad de desmontarlo de su zcalo.
Como experimento para comprobar que el PIC slo est activando un display u la vez. cambie
todos los pauses a PAUSE 150.
2N3906
2N3906
2N3906
2N 3906
A2
A3
2M3904
Figura 5.4.5.1. Esquema de conexionado del con ador de 4 dgitos, adicionalmente se muestra la
forma de la chicharra activa a 12V de referencia GS12I2.
[ m a t e r ia l e s .
I A DISPLAYS nodo comn
-4 transistores 2N3906
-I transistor 2N394
-7 resistencias de 3302 a Z vatio, naranja-naranja-caf
-4 resistencias de 4.7 K2 a Z vatio, amarillo-violeta-rojo
-I CI. 7 4 4 7 dccoditlcador BCD
-2 pulsadores normalmente abiertos
-1 chicharra de 12 V. como el de la figura 5.4.5.1. _____________ ______ ___________
El siguiente es el programa para controlar los 4 displays, contar, encerar, comparar y visualizar el
nmero almacenado en la memoria.
seum idH que queremos que nos de aviso 0024 podemos cambiarlo
sctdece-2 ;# que queremos que nos de aviso 0024 podemos cambiarlo
scrcent^O que queremos que nos de aviso 0024 podemos cambiarlo
setm ile-0 que queremos que nos de aviso 0024 podemos cambiarlo
PAUSE 5
G O S l'B teclas revisar el estado de las teclas
G O T O display
teclas:
IF conlar-0 T H EN sumar si pres onan tecla A ir a sumar
TE eoccra-f) T H EN encerar ;si pres.onan tecla B ir a encerar
IF visual_ 0 THEN visualizar si presionan tecla C ir a visualizar
activar - 1 bandera de tecla A evita que cuente - de 1 vez i
RETU RN
sum ar: :
IF activarlo T H E N RETURN ; bandera de tecla A
actyar = 0 bandera de tecla A cuando ya ha sido pulsada
untd=unid+l sumar 1 a las unidades
IF unid<10 THEN comparar si Unid es menor a 10 comparar
unid - 0 hace cero a las unidades
dece~decetl ;> incrementa las decenas
I F dece<10 THEN comparar
dccc - 0
: cent-cent+l
IF Ccnt<10THEN comparar
ccn 0
m il=rnile-l
IF mile<10 TH EN comparar
milc - 0
RETU RN retomar ojgosub teclas
visualizar:
portb= 224+setiinid 224 % 11 i 00000.activa las unidades
PAUSE 15
p o rta - zo-hscKiece 208 %} lOlOOOO.activa las decenas
PAUSE 15
p o rtb - 1761setcent . 176 %1011 OOOO.activa las centenas
PAUSE; 15
: portb" 1 1 2 +setmile : 1 12 % 0 1 1 1 0 0 0 0 ,activa los miles
P A U S E IS
TE v k n n l-0 T H FN visuali 7 ar
RETU RN retom ara aosub teclas contina...
Finura 5.4.5.2. contador l-9999.nhn Programe para el contador decimal desde l a 9999.
A continuacin otra manera de escribir el misino programa an ms corlo, esta vez utilizando
una variable con capacidad de almacenamiento de 65535 (nmero YrAR W ORD), y para poder
tomar cada dgito de esta variable y mostrar en cada uno de los displnys, utilizamos cl operador
matemtico DIG, que sirve pura tomar cualquier dgito que necesitemos de una variable, ejemplo:
encerar:
nmero - 0 carga la variable nmero con cero
L O W chicha apagar la chicharra
oispiay:
unid ^numero DIG 0 loma cl dgito 0 (unidades) y guarda en unid
dece^nmero DIG I toma las decenas y lo guarda en dece
cent=numero DIG 2 loma cl dgito 2 (centenas) y lo guarda en cent
m ilc- numero DIG 3 toma cl dgito 3 (inilcs)y lo guarda en milc
contina .....
teclas:
IF contar=0 T H EN sumar ;si presionan tecla A ir n sumar
IF cncera=(>. THEN encerar :si presionan tecla B ir a encerar
IF visual~0 TH EN visualizar ;si presionan tecla C ir u visualizar
nf'ivnr^:
UVll >Ul 1 .bandera de tecla A evita que cuente - de 1 vez
RETU RN
sumar:
IIF
1 UVI
ctivar=0
I V 411 V T
1Hl l lFN I\ 1J 1 RN
n l RFTU IV11 ;bandcra de tecla A
activarlo ;bandera de tecla A euurido ya ha sido pulsada
numero=aumero .+ 1 ;sumar 1
IF numero=compura T H EN HIG H chicha ;si nmero es - compara
IF numcro>9999 T H EN encerar ;si el nmero es >9999 ir a cnccmr
RETURN :retomar a gosub teclas
visualizar:
umd^-compara D IG 0 toma el dgito 0 (unidades) y guarda en unid
dece-coiripara DIG 1 jo m a ol dgito 1 (decenas) y lo guarda en decc
cent=compara DIG 2 Jom a las centenas y lo guarda en cent
inilc=compara DIG 3 torno el dgito 3 (miles) y guarda en inile
p ortb- 224+unid ;2 2 4 % l 1 lOOOOO.activa las unidades
PAUSE 15
p o rto - ~U8 fdece ;208 % 1101OOOO.activa las decenas
PAUSE 15
portb^ 176-1 cent ; 176 % 101.1 OOOO.activa las centenas
PAU SE 15
portb= 1 12 ^mile .112 % 011 OOOO.activa ios miles
! PAUSE 15
IF visual-0 T H EN visualizar
RETU RN retomar a gosub teclas
END
Figura 5.4.5.3. contador2 1-9999.pbp Programa para e l contador decimal desde 1 a 9999
utilizando el operador matemtico DIG.
Es posible hacer un co ntador decim al igual que el del proyecto anterior y sin ayuda del C l. 7447,
Figura 5.4.6.1. Esquema de conexionado, para manejar 4 displays directamente desde el PIC y
nnillipicxando /w r el puerto A.
M A T E R IA L E S.
-4 DISPI.AYS nodo comn
-4 transistores 2N3906
-7 resistencias de 33011 a V: vatio, naranja-naranja-caf
-4 resistencias de 4,7 KQ a '/? vatio, amarillo-violcta-rojo
Figura 5.4.6.2. palabra HOI A 1P.pbp Programa para presentar la palabra HOLA en los 4
displays.
Pura hacerlo ms interesante el proyecto anterior le aadiremos movimiento, con esto podemos
ingresar frases completas como HOLA LUIS, pero para no alargar mucho el programo slo
utilizaremos la palabra HOLA, movindose continuamente de derecha a izquierda y con un
espacio por palabra.
La variable x es la que regula la velocidad con que se desplazan las letras, para
comprobarlo modifique el valor de todas las repeticiones de I T O 20 al doble- I T O 40. y vera
cmo se desplazan las letras ms lentamente.
texto:
FO R \ 1 T O 20 repeticiones de este segmento
p o ria-1 4 :p o rtb -8 :pA%l i 10 y pB%0001000 forma la letra A
PA U SE 5
po rta- J 3 :portb=7l pA% l 101 > pB% 000111 forma la letra L
PAUSE 5
porta=l 1 :portb-64 ;pA% 1011 y pB%1000000 forma la letra O
PAUSE 5
p o n a - 7 :portb 9 ;pA%0l 11 y pB%000100l forma la letra H
PAUSE 5
NE X T
FO R \ - l T O 20 ; repeticiones de este segmento
porta=14 p o rtb -127 ;pA% 1110 y pB%I l l l l l ) apaga el displav
PAUSE 5
p o rta -13 portb- 8 ;p% l 101 y pB 3/o00010U0 forma la letra A
PA U SE S
p o rta -11 :portb-7l :pA%IOI I y pB% ]000111 forma la letra L
PAUSE 5
prla-7 portb- 64 ;pA% 0111 y pB%! 000000 forma la letra O
PAUSE 5
NEXT
FO R x - l T O 20 ; repeticiones de este segmento
porta= 14 :portb^9 pA% 1110 y pB% 0001001 forma la letra 11
PA U SES
po ila';13 p o rtb -127 pA% 1101 y pB% I l i l i l apaga el display
PAUSE 5
porta=l 1 :portb = 8 pA% 1011 y pB% 0001000 forma la letra A
PAUSE 5
porta-7 :portl>7 1 pA%0l 11 y pB% 1000111 forma la letra I.
PA U SES
NEXT
FO R v i T O 20 repeticiones de este segmento
p o rta-14 :portb~64 pA% 1110 y pB% 1000000 forma la letra O
PAUSE 5
porta- 13 :portb-9 pA%l 101 y pB%OOOIOOI forma la lelrn H contina
Figura 5.4.7.2. Fotografa del bloque de 4 displays a. c. del entrenador experto F.li 02.
Estos displays son muy utilizados para transmitir mensajes en bancos y instituciones de atencin
al publico, la ventaja de estos son la gran cantidad de caracteres que se pueden formar y el gran
tamao de los displays (desde 3 x 2 cm hasta 15 x 8 cm), en esta prctica aprenderemos a manejar
un display de 35 segmentos de 14 pines, pero tambin existen displays bicolores y tienen 28
o oooo
JO0.0-0 o
ooooo
ooooo
ODO O
ooooo
r r r r n i
E G 2 | | 5 F
Figura 5.4.. I. Presentacin de un display' 7x5 de 14 pines
y su respectivo diagrama de pines. 6 H
E jem plo: si queremos encender el 2do led de la columna 2. debemos conectar el pin B a 5 V. y el
pin 2 a Gnd. Si queremos encender el led del centro podemos conectar el pin o el pin II a
positivo (el pin H es auxiliar) y a tierra el pin 3 o el 6 ya que tambin tiene un auxiliar.
B 1 D 3 4 A C
1 1 1 1 1 1 1 ,
A - m ^ 0 OOOOO
A -> ' S r A
O s .. O fO O O
r i ' 'n
y -
a ; ooooo
A
/
s
. Y A
) ^) ooooo
A
C ooooo
X( N
)
r " n
k J U o oooo
G -
o m ooooo
i i i r i i i
r < <
6 H
Ctodos (-)
M A T E R IA L E S.
-1 DISPLAY 7 x 5 monocolor (14 pines)
-5 transistores 2N3904
-7 resistencias de 3302 a '/j vatio, naranja-naranja-cafc
-5 resistencias de 4,7 KQ a '/: vatio, amarillo-violcta-rojo.
Fo o o o o
6 12 3 4 5
s
r j l\> UJ
---------------- H e
UJ
K
' iu j
El programa a realizar, debe multiplcxar los Ieds de forma que se encienda como la secuencia l,
permanece 100 miliscgundos y cambia a la secuencia 2. luego a la secuencia 3, y finalmente a la
secuencia 4 , para luego volver a repetir toda la secuencia desde el principio. Como resultado
observaremos un hombrecito que agita los brazos.
animacin:
F O R x - I TO 10 repetir esta secuencia 10 veces
poria /o0 0 0 0 0 ()l portb-% 0010000 PAUSE 4 esperar 4 mis. total 20 mis cada
poita - % 0 0 0 0 0 1 0 portb-%0100111 PAUSE 4 escena
porta=% 0 0 .0 0 1 0 0 portb-% l i l i 000 PAUSE 4
:' l
porla- % 0 0 0 1 0 0 0 p orlb-% 0100111 :PAUSE 4
"p o m ^ . 1000000 portb-% 0010000 PAUSE 4
NF-XT
F O R x ! T O 10 repetir esta secuencia 10 veces
porta - % 0 0 0 0 0 0 1 portb=% 0100000 :PAUSE 4
[Ki1 a -% 0 0 0 0 0 l 0 portb=%010 0 111 :P A l SE 4
porta-% 0 Ut){)10 0 portb-% 1111000: PAUSE 4
porta = % 0 0 0 1 0 0 0 portb= % 0 1 0 0 1 1 1 :PAUSE 4
porta-% 1 0 0 0 0 0 0 porib -% 0 100000 :PAUSE 4
NEXT
F O R x - I T O 10 repetir esta secuencia 10 veces
porta - % 0 0 0 0 0 0 1 portb-% 1000000 PAUSE -I
porta = % 0 0 0 0 0 1 0 porrb=% 0100111 PAUSE 4
porta - % 0 0 0 0 1 0 0 porth% l I ! 1000 PAUSE 4
p orla-% 0 0 0 .1 0 0 0 portb % 0100111 PAUSE 4
porta-% 1 0 0 0 0 0 0 portb-% 1000000 PAUSE 4
NEXT
FOR x I TO 10 repetir esta secuencia 10 veces
porta= % 0 0 0 0 0 0 1 :poHb=%0100000 PAUSE 4
purta - % 0 0 0 0 0 1 0 :portb=%010 0 1 1 1 . PAUSE 4
porta - % 0 0 0 0 100 portb-% 1111000 PAUSE 4
porla^/OOOlOOO portb-% 0100! 11 PAUSE 4
porta=% 1 0 0 0 0 0 0 portb=% 0100000 PAUSE 4
NEX'l
(O T O animacin :ir a animacin
END
Como podemos observar en el programa anterior, tratamos de no utilizar el puerto A.4 y A.5,
porque el primero es de colector abierto, y el segundo slo puede trabajar como entrada, adems
este programa se puede reducir por lo menos a la mitad si utilizamos COSUB en la secuencia del
hombre con los brazos en la mitad, ya que este se repite 2 veces, tambin en los PAUSE 4 y
algunas partes de secuencias como las piernas y la cabeza que no se mueven, estos podemos
agrupar tambin en una subrutinn de GOSUB. pero para poder entender bien el funcionamiento
se pretiri no reducir el programa.
lis muy importante considerar el tiempo de multiplcxajc, ya que no se debe sobrepasar un
total de 20 mis. por ejemplo si utilizamos 2 displays 7x5. debemos bajar el tiempo de pauses a 2
milisgundos para tambin tener un total de 2 0 mis.
1. En cl proyecto 5.4.3 haga que aparezca la frase HOLA PACO y que vuelva a repetirse.
2. Con cualquiera de los 2 proyectos anteriores del literal 5.4.5 haga que compare el nmero
almacenado ya no por 12 ni por 24 sino por 110.
3. En cl proyecto del literal 5.4.7 haga aparecer el mensaje HOLA PACO desplazndose.
I .os mdulos LCD (Display de Cristal Liquido), son utilizados para mostrar mensajes que indican
al operario el estado de la maquina, o para dar instrucciones de manejo, mostrar valores, etc. hl
LCD permite la comunicacin entre las mquinas y los humanos, este puede mostrar cualquier
camclcr ASCII, y consumen mucho menos que los displays de 7 segmentos, existen de varias
presentaciones por ejemplo de 2 lincas por 8 caracteres. 2x16. 2x20, 4x20. 4x40. etc sin
backlight (14 pinos) o con backlight (16 pines. iluminado de pantalla), el LCD ms populares el
2 x 16. 2 lneas de 16 caracteres cada una.
LA DECLARA CION L C D O l'T . Sirve para mostrar tenis en una pantalla de cristal liquido, se
utiliza escribiendo: LCD OUT. luego escribiendo SFE. y seguido por el comando a utilizar, el
siguiente cuadro muestra los comandos ms utilizados:
Los LCD se puede conectar con el PIC con un bus de 4 u 8 bits, la diferencia est en el tiempo
que se demora, pues la comunicacin u 4 bits, primero enva los 4 bits ms altos y luego los 4 bits
ms bajos, mientras que la de 8 bits enva todo al mismo tiempo, esto no es un inconveniente si
consideramos que el LCD trabaja en microsegundos. Pero la gran ventaja de hacer conexin a 4
bits, son los pocos cables que se deben concelar, como podemos ver en la figura 5.5.1.4. slo
debemos conectar el bit de Registro, el Enable y los 4 bits ms altos del LCD. con esto es
suficiente para enviar los mensajes.
El compilador PDP soporta mdulos LCD'S con controlador Hitachi 44780 o
equivalentes y por defecto, asume que se conect en el pin A4 el bit de Registro, en el pin B3 el
bit Enable y en el puerto A empezando desde AO hasta A3, los bits ms altos del LCD. Esta
configuracin predefinida, se lo puede cambiar de acuerdo a la necesidad, como lo veremos ms
adelante.
M A T E R IA L E S .
-I DISPLAY LCD 2x16 (preguntar si es compatible con los PIC 'S)
-1 resistencia de l O2 a'/a vatio, caf-negro-negro
-1 potencimetro de 10 K2 .
Figura 5.5.1.5. I CD Hola.php Programa para presa atar la palabra Hola micro PIC
NOTA: algunos L C D S no requieren do ningn PAUSE al inicio, pero existen otros mdelos-que
necesitan unos pcs miliscgundns para estar listos, por eso colocamos un PAUSE 2U al
conicj) 2 0 del programa.
Bien una v e/ visto el texto notaremes que las dos palabras estn al lado izquierdo, si
querernos que salgan centradas en nuestro LCD, tenemos 2 maneras de hacerlo, la primera es
dando espacios antes de cada palabra ejemplo:
L C D O U T SFF, I , " Hola y LCD O U T$FE. SCO, u microPIC"
Lo cual es sencillo pero no es muy recomendable porque ocupa ms espacio cu el PIC, la segunda
manera es asignando el lugar donde se quiere cue aparezca cada palabra ejemplo:
Se debe entender que existe un cursor que aunque no lo vemos, pues este es el que indica donde
aparecer la siguiente letra, para poder entender haremos un ejercicio completo, asi podrn
aprender ms del I.CD y las funciones de cada uno de los comandos. Primero que nada haremos
visible el cursor y luego pondremos PAUSES para poder ver el funcionamiento.
PAUSE 2000
LCDO UT pepe, 1 limpia el visor del LCD
PAL SE 2000
LCD O U T pcpc.SOF muestra el cursor en casilla negra
PAUSE 2000
LCDO UT pepe,SOL subrayad cursor
PAUS 2 0 0 0
LC D O U T pepe.S 14 desplaza el cursor una casilla a la derecha
PAUSE 2000
LCDOUT. "MIK.RO escribe mikro, desde donde se encuentre el cursor
PAU SE 2000
1FOR
\ / IX \ - 11 TXO 1 repite 3 veces las Siguientes instrucciones
LC D O U T pepe.S 10 ; desplaza el cursor una casilla a la izquierda
PAUSE 1000
NEXT
r 1/UU
Lv. jii
n o i r 1r . X enva el carcter ASCII "C" para corregir MICRO
PAUSE 2000 contina ...
I ;CI)C)U r pepe.SC(H 12."IMC" escribe en la segunda linca casillero 13
esto equivale a $CC o 204
PAUSE 2000
L C D O IIT pepe,2.**1" vuelve al inicio d la lera fila y escribe 1
FND
Figura 5 .5 .1.6. I.CD I Iola2.pbj> Programa utilizando la mayora do. as comandos d el LCD.
Observen que la constante SFE se le cambi por pepe, asimismo si se les dificulta memorizar
como pasar a la segunda linca, puede definir la constante: Iin2 CON SCO. y cuando deseen
escribir en la segunda linca pondran: L C D O l'T pepe. Iin2, "hola, o lo que es lo mismo
utilizando nmeros decimales: L C D O L T 254, 192, "hola . Tambin cabe recalcar que el LCD
tiene una memoria RAM (Random Access Memory) que lo explicaremos ms adelante, por lo
que una vez. que se le envia el texto, este permanece ah y el PICT se lo puede utilizar para otras
ta rca s o p o d e m o s d e s c o n e c ta rlo si lo d e s e a m o s .
Fn ocasiones especiales se debe cambiar la configuracin de los pines del PIC hacia el
LCD. por ejemplo para utilizar los comparadores de voltaje que se encuentran en el puerto A.
necesitamos dejar disponibles estos pines. esto se logra adicionando al principio lo siguiente:
Una vez que se define la nueva configuracin de pines para el I.CD. programamos de la mismo
forma que las ocasiones anteriores, es importante adems saber que los 4 bits de datos slo se
pueden configurar en los 4 bits ms bajos (B.O al B.3) o los 4 bits ms altos (B.4 al B.7) de un
puerto del PIC, y si deseamos hacer una comunicacin a 8 bits con el LCD. estos deben estar en
un slo puerto, adems debemos definir en el PRP que vamos a utilizar un bus de 8 bits, esto es
de la siguiente manera:
D EFIN E LCD_BITS 8 ; define comunicacin a 8 bits con el LCD
Y si nuestro LCD posee 4 lincas, tambin debemos definirlo de la siguiente forma:
D E FIN E LCD LINES 4 : define un LCD de 4 lneas
P IC 1 6 F 6 2 8 A
\
Figura 5.5.1.8. Fotografa de una
tarjeta que controla un l.CD 2x!6
el cual posee un PICI6F628 que
se encarga de enviar los datos y
adems enciende el hackligl
a travs de un transistor 2N3904
dispone adems:
Un led que indica envo de datos
Una salida de transistor IIP JO
Una salida de transistor 2N3904
Un pulsador de reset al StCLR
Un potencimetro para el ajuste
del contraste.
Figura 5.5.2.1. I C D c s n c c ia l.n h n Programa para mostrar uno por uno cada carcter.
/
/
5.5.3. DESILAZAM1 r.NTO DE UN T EX T O EN LCD.
h'l I.CD dispone en cada una de las lneas *10 posiciones de memoria, de los cuales nicamente 10
son visibles, en el siguiente ejercicio escribiremos un mensaje desde cl casillero 17 ($90). el cual
no es visible y luego iremos desplazando n la izquierda, como resultado tendremos un texto que
se mantiene en movimiento, tina vez que este termina recorrer 16 posiciones en blanco y luego
volver a aparecer los 24 caracteres del texto.
Este proyecto, consiste en contar el nmero de pulsos que ingresan por un pin en un determinado
periodo, este a su vez se visualiza en uu LCD, si la cantidad de este supera n los 1 2 0 pulsos por
segundo es decir 120 HZ, se encender una alarma que en este caso ser un Icd rojo, y si la
cantidad de pulsos baja a menos de 100 IIZ. este encender un led verde, si la frecuencia se
mantiene entre estos 2 rangos, no se encender ningn led.
Este proyecto tiene muchas aplicaciones como por ejemplo para un regulador de voltaje
en el que a ms de indicarnos cl voltaje de salida podra adems indicamos la frecuencia.
Para esta prctica utilizaremos un Cl. 555 que nos ayuda a generar un tren de pulsos
variable, el cual lo conectamos al PIC para su posterior contco.
LA D ECLA RA CI N COUNT. Sirve para contar el nmero de pulsos que ingresan por un pin
cii un determinado tiempo, este a su vez lo guarda en una variable para su posterior
procesamiento, la manera de utilizarlo es la sigiiente:
Frecuencia:
105 Hz
- g g ! UJ8 5 8 a S B I 3 5 < ^ Q S V.
*+ 2 o Lod Rojo
<22
P IC 1 6 F 6 2 8 A 02
B0 B1
L o d V o id e
Si no colocamos ninguna instruccin nos inusUuia el ASCII que representa el nmero 105. es
decir la letra i.
L C D O L T SFE. SC5. puls, 1lz" ; muestra en el LCD asi i 1lz
5.5.5. T A C O M E T R O D IGITAL. m m m m m
Este proyecto es muy similar al anterior, con Ir. diferencia que el tren de pulsos ya no es generado
por un C.l. 555. sino ms bien por el giro de un motor que se une a un cono de caucho, el cual
transmite movimiento a un disco de plstico 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
a 1. esta seal podemos conectarlo al PIC y visualizarlo en un LCD, el mismo principio utilizan
los marcadores de kilometraje de los autos y los tacmctros de los mismos.
| M A T E R IA L E S .
-I DISPLAY LCD 2x16
-l resistencia de I02 /
-I resistencia de 330 Q ^
-I resistencia de IKC2
- 1 resistencia de 4,7 KQ ^
-I potencimetros de 10 K fK
-1 eje de giro independiente con un disco de plstico negro
- 1 optoacoplador ECG 3100 con salida de transistor N P \ como e l de la figura 5.5.5.2.
Figura 5 .5 .5 . /. Esquema para unir el motor con el eje indejxmdicnte de un tacmetro porttil.
Figura 5.5.5.2. Esquema de conexin para hacer un tacme tro digital, adicionalmcntc muestra
la fo rm a del optoacoplador con fototransistor ECO 3100.
prog:
COU NT portb.OJ000,revo contar pulsos en el puerto B.O
revo *- revo * 60 multiplicar por 60 para tener 1 minuto rpm
I.C D O U T Sfe, 1."Motor girando a:" l nipiar LCD y escribir
L C D O L T $i*e,Sc3r DEC revo sacar el valor de la variable revo
LCDO UT Sfc, Sel),? RPM" ir a 2da linea casilla 9 y escribir RPM
G O T O prog
END
Observen que la variable revo es niulliplicada por 60. con la finalidad de que nos de el nmero de
vueltas que dara en un minuto, estos datos salen en mltiplos de 60. por consiguiente no es muy
preciso, si deseamos ms precisin podemos multiplicar por 30. pero debemos asegurar que la
declaracin CO U N T cuente durante 2 segundos, pera luego de multiplicar por 30, nos de RPM,
la linea de programa quedara as:
NOTA: Se puede utilizar los optoacopladores que vienen en los musc d e los PC. tambin es
importante que el disco sea de color negro, para impedir que la luz nlrarro| atraviese hacia el
transistor, un disco de metal tambin podra funcionar bien
m a t f . r ia t . e s
-1 DISPLAY LCD 2x16
-I resistencia de 102
-2 potencimetros de 10 KQ
-I condensador cermico de 0.1 uF ( referencia 104 )
88
-------------------------M icrocontroladorcs PIC Programacin onBASIC------
C MCON - 7 convierte en digitales cl puerlo A
dato VAR BYTE :variable daio con capacidad de 255
medir:
P O T porlb.0255.daio leer el potencimetro y guardar en dato
LCDOUTSFIv, I," Rango limpiar pantalla y escribir rango-
I .C D O I X #dato :mostrar el valor decimal de dato
PAUSE 100
G O T O medir
END
Figura 5.5.6.3. Fotografa del mdulo LCD del entrenador experto de PIC S EE-02 de
AIJTOMASIS.
El com pilador PBP es capaz de sacar las frecuencias especificadas por un pin del PIC, para esto
aprenderemos la declaracin FREQ O U T.
LA DECLA RA CI N FREQ OUT. Saca la o las frecuencias especificadas por un pin del micro,
estas pueden ser de 0 a 32767 llz. su utilizacin es de la siguiente manera;
Quiere decir sacar una frecuencia de 1000 ciclos (I Khz) durante 2 segundos por el puerto t.O
hn esta prctica lo utilizaremos para generar un sonido a travs do un piezoclcctrico
(Buzzer pasivo) o podra ser tambin un parlante.
M A T E R IA L E S
-I buzzer pasivo (pic/oeletrico) o un parlante grande o pequeo
-I capacitor de !0uF/25V. ________________________________
B0
Figura 5.6.1.2. Diagrama de conexin para Figura 5.6.1.3. Fotografa de 2 parlantes grandes
un parlante gnoide con un transistor TU*10. un pequeo y un piezoelclrico.
NOTA: tambin es posible utilizar los parlantes grandes con la conexin de la figura 5.6.1.1.
lista prctica consiste en sacar por un parlante el sonido caracterstico de una sirena policial, para
esto emplearemos la ayuda de la declaracin SOUND.
LA D ECLA RA CI N SOUND. Sirve para generar tonos y/o ruido blanco en un pin del PIC. y
es posible combinar hasta 2 frecuencias desde de I a 127 que son tonos y 128 a 255 ruido blanco,
0 es silencio, I equivale a 78,74 HZ y 127 a 10000 Hz, esto se lo utiliza de la siguiente manera:
SOUND portB.O.f 100,10,50.10]
Esto quiere decir sacar 2 tonos por el puerto b.0. el primer tono es 100 que equivale a (7874 Hz)
con una duracin de 10 milisegundos y luego un tono de 50 (3937 Hz) con una duracin de 10
mil segundos tambin.
En cuanto a los materiales y diagrama de conexin son los mismos de la prctica anterior
Programa:
SOUNI) portb.0, [ 10 0 .10,50,10] ;gencra tonos por el Puerto B.0
(O T O programa
FND
Figura 5.6.2.1. sirena.pbp Pritgrarna /tara generar una sirena policial a travs de un parlante.
Con un oscilador de 20Mhz, el micro trabaja 5 veces ms rpido que antes es decir si con un
oscilador interno de 4 Mhz, el PIC ejecutaba cada instruccin en I uS., con un oscilador de 20
Mhz lo har en 0,2 uS (0,0000002 S).
Para esta prctica necesitamos estos nueves elementos adems de los anteriores:
M A T E R IA L E S.
-I cristal de 20 MHZ como cl de la figura S.6.2.2. ideal para protoboards
-2 condensadores de 22 pF ( 22 picoFaradios)_____________________________________________
Figura 5.6.2.3. sirena20jyihz.pbpPrngram para generar una sirena policial mejor que Ja anterior
; Configuracin
- '
i Oscilador:
; H s
: LP
i; X T
.
<
: y WDT
I V PWRT
;r m clr
! ? B O D E N
i n lvp
: r C P D
Figura 5.6.2.S. Tabla de Configuracin de Oscilador para el IC-prog. segn el cristal u utilizar,
adems indica los valores de capacitores que so deben poner.
Tambin podemos agregar una linca de cdigo ensamblador para que se encargue de cambiarnos
el oscilador predefinido a US, esto se consigue de la siguiente manera, debemos insertarlo al
principio del programa lo siguiente:
Para comprobarlo una vez compilado abra el archivo en cl programa IC-prog > observar que el
oscilador lia cambiado a HS sin que usted haga nada.
5.6.3. ( i LN R A C I N D E UN T IM B R E U T EL FO N O CELULAR.
Esta prctica consiste en sacar por un parlante cl sonido caracterstico de un telfono celular, para
esto emplearemos la ayuda de la declaracin SOUND.
Pruebe con algunas combinaciones de tonos, as como tambin con diferentes tiempos y ver que
bien podria componer una meloda.
Esta prctica tiene como objetivo generar tonos DTMF (Dual-Tono Muliil'recuency) a travs de
un PIC, como los que genera cualquier telefono fijo o celular, estos tonos no son nado ms que el
envo de 2 frecuencias especficas asignadas a cada tecla, estas frecuencias podemos ver en la
figura 5.6.4.1.. lo que sucede cuando pulsamos una tecla por ejemplo la 6. es que este enva una
frecuencia del grupo bajo 770 Hz y luego una segunda frecuencia del grupo alto 1477 II/, esto
podramos hacerlo generando con la declaracin FREQ O U T.
Esto deberamos hacer por cada tecln que deseramos que marque, pero para facilitarnos las cosas
el coiiipiladoi PBP tiene una declaracin especifica para este trnbojo.
En la figura 5.6.I.2., se muestra el diagrama bsico de conexin para poder hacer una llamada
telefnica, debido a que el oscilador interno que posee el PIC es un RC (resistencia condensador),
este no es muy preciso, por lo que experimenta mente se comprob que el 70 % de los intentos
para marcar los tonos DTMF fallaban y slo el 30% restante de los intentos resultaban con la
llamada al nmero deseado.
Para que los tonos DTMF que generan el PIC sean vlidos al 100%, es necesario utilizar
un cristal externo, sea este de 4. 10 o 20 M U /, con sus debidos capacitores, en este caso
Figura 5.6.4.2. Diagrama bsico de conexin para generar una llamada telefnica, noten que el
lado positivo de la red tele fnica debe ir a tierra del PIC, caso contrario no
se podr generar la llamada.
Figura 5.6.4.5. Diagrama de conexin para generar una llamada telefnica, en la que no
importa la polaridad de la red telefnica, puesto que dispone un puente de diodos.
Este proyecto es muy utilizado en sistemas de seguridad, se puede hacer unn alarma la cual en el
momento de violar su seguridad, este realice automticamente una llamada al propietario, el
propietario en el momento de contestar escuchar una sirena, seal .suficiente para saber que
alguien ha activado la alarma, este mismo principio utilizan las centrales de monitorco. con la
diferencia que en vez de generar un sonido de sirena, se enva dalos en forma serial como: Qu
zona se abri, a qu hora, estado de batera, etc. lo cual aprenderemos ms adelante en
comunicaciones con microcontroladores PIC.
F igura 5.6.4.4. Fotografa de una tarjeta electrnica de una alarma de 3 zonas con armado de
llave, cargador de batera y llamada telefnica, comandado por un PICI6F628.
Finura 5.6.4.5. Mamada D I MF.pbp Programa para hacer mu llamada al telfono celular.
I. I Inga una alarma de 3 zonas (3 pulsadores) con armado de un switeh. es decir si el swith
est en OFF. los pulsadores no tienen ningn efecto, pero si est en ON, al presionar
cualquiera de los 3 pulsadores, se enciende un led indicando qu zona es y hace una
llamada telefnica a su celular u otro telfono lijo.
0
----------------------------- - $ M icrocontroladores P IC Programacin en B A S IC ------------------------------------------ 97
5.7,1. LECTU RA D E UN TEC L A D O DE 16 PULSADORES CON DISPLAY DL 7
SEG M EN TO S.
Los teclados matriciales son muy tiles para ingresar datos, un ejemplo es cl teclado del
computador, el teclado de una alarma que nos permite armar y desarmar un sistema de seguridad,
cl teclado de una caja fuerte, cl de una cerradura elctrica, etc. Para introducimos en el manejo de
un teclado, haremos un proyecto para aprender a identificar filas y columnas que lo componen un
teclado hexadccimal de 16 pulsadores, y su correspondiente barrido de teclas, luego se visualizar
en un display de 7 segmentos el nmero de la tecla presionada.
I M A TEN IALES.
| -1 teclado matricial hexadecimal de 16 teclas como el de la figura 5.7.2.3
-7 resistencias de 33012
-4 resistencia de 4.7 K2
-I DISPI AY de 7 segmentos nodo comn
I -I CL 7447 dccodificador BCD._________________________________
numtccla:
tecla = (tila* !)4(_\CD (coluA%l I I I ) ) .calcula el valor de la ted a multiplicando
;pbr 4 Ja fila a la que pertenece y sumando a la posicin que se encuentra
.para un teclado de 12 pulsadores, debemos cambiar (fila*3)
porla=tecla : sacar por el puerto A el valor de tecla
G O T O progl
FND
Figura 5.7.1.2. teclado 16-display.pbp Programa para leer im teclado h exadccim aly mostrarlo
en un display de 7 segmentos.
Debe considerarse que el lugar de las teclas no se pueden cambiar, puesto que este sistema de
programacin, utiliza operaciones matemticas para calcular la tecla pulsada, pero debemos
reconocer lo ixxjueo que es el programa, por eso se propone otro modo de programar, en donde
los valores se le puede asignar en cualquier lugar, as como tambin se le puede poner letras.
5 V.
Figura 5.7.1.5. Diagrama de conexin de tai teclado hexadccimal con diferente lugar de teclas.
BARRIDO:
io \v \ ;hocor bajo la lera lila
IF UNO - 0 TMEN PORTA ;s la 1ra tecla es presionada sacar I
JLF DOS OTIIEN PORTA ;si la 2dn tocia es presionada sacar 2
IFTRF.S - 0 TH EN PORTA :si la 3ra tecla es presionada sacar 3
IFC U A T R O - 0 T il EN PORTA 10 ;si la 4ta tecla es presionada sacar l
IIIG II A poner en alio la lera fila
LOW B hacer bajo la 2da fila
IF UNO - O TIIEN PORTA = 4 ;si la 1ra tecla es presionada sacar 4
IF DOS - O T H E N PORTA - 5 ; y as sucesivamente
IF.TRFS - O T I IF N PORTA - 6
TF CUATRO -O T I IE N PORTA II
HIG H B pncr en alto la 2da lila
LOW C hacer bajo la 3ra fila
IF UNO = 0 TITFN PORTA 7
IF DOS = 0 TH EN PO R TA - 8
IF 1 RES - O T IIFN PORTA - 9
IF CUATRO - O T H E N PORTA 12
H IG H C ;ponci en alto la 3ra fila
LO W D hacer1bajo la 4ta fila
IF UNO - 0 T H E N PORTA - 14
IF DOS -O T H E N P O R T A - 0
IF i RES - O T IIE N PORTA
IF CUATRO - 0 FUEN PORTA
H IG H D poner en alto ladta fila
PAUSE 10 pausa de 10 milisgundos
G O T O BARRIDO continuar con el barrido de teclas
END
Fifnra & 7-14- teclado! 6-di.splav2 .nbp Programa diferente para ieer un teclado hexadecimaI y
mostrarlo en un display de 7segmentos.
Como se puede ver este programa es un poco ms largo, pero ocupa menos espacio en la memoria
del IMG que el ejercicio anterior, adems tiene la ventaja de poder poner en cualquier lugar el
valor de las teclas y es ms fcil de entender, as que este sera la Forma que utilizaremos en
adelante. Su funcionamiento es sencillo slo debemos fijarnos cual tila es la que est en LO W y
E jem plo: si pulsamos la tecla 6, en algn momento se pondr en bajo la fila B y detectar un
cambio de estado de I a 0 en la columna 3 ( puerto B.6). por lo que:
I OW B
IF TRE$=0 THEN PORTA - 6 ; detecta jn cambio de estado v saca por el display el H 6
IIIG H B
Debemos considerar que una persona requiere como mnimo 100 milisegundos para presionar una
lela, en ese tiempo el PIC realiza 10 barridos, por lo que de seguro detectar inmediatamente la
Icela pulsada.
Para el caso de utilizar un teclado de 12 pulsadores, debemos eliminar una columna, las
que corresponde a la tecla A, B. C. y D, es decir eliminamos las siguientes lineas del programa:
IF CUATRO - 0 TH EN PO RTA - 10
IF CUATRO - 0 TH EN PORTA 11
IF CUATRO = 0 T H EN PORTA- 12
IF CUATRO - 0 TH EN PORTA* 13
En este caso quedara un teclado con pulsadores del 0 al 9 y dos teclas de propsito especial, la
tecla asterisco ( *) y la tecla numeral ( U ).
M ATERIALES.
-1 teclado matricial hexadecimal como el de la figura 5.7.2.3
-6 resistencia de 4,7 K12
- 1 resistencia de 330 O.
-2 transistores 2N3904
-I chicharra activa ( las que suenan directamente al alimentarles con 12 voltios)
- 1 rel de 12 voltios de 5 patitas
-1 LED rojo de 5 mm.
| -I Diodo rectificador IN4007.
Figura 5.7.2.1. Diagrama de conexin de un teclado hexadecinuil con un rel un led y una
chicharra, para hacer una cerradura electrnica.
BARRIDO;
LO W A sensar la fila A contina ....
TECLAUNQ:
GOSU B BARRIDO ;ir a barrido y retomar con un valor .
GOSU B PTECLA ;envia a un programa antirrebote para soltar tecla
IF NUMERO - I T H EN TECLADOS :si el nmero es igual a 1 ir teclados
G O T O LA!,SO :caso contrario ir a lazo falso
TECLADOS:
GOSU B BARRIDO: GOSUB PTECLA ;ir a barrido y retornar con un valor
Contina ..
TECLATRES:
GOSU B BARRIDO GOSUB PTECLA ;ir a barrido y retomar con un valor
IF NUM ERO - 3 T H EN TECLACUATRO .si el nmero es igual n 3 r tcclacuntro
CiO I O FAI.S02 .caso contrario ir a lazo falso
TECLACUATRO:
GOSUB BARRIDO GOSUB PTECLA ;r a barrido y retornnr con un valor
IF NUMERO = -1 T H FN OPENGE ;si el nmero es igual a 4 conectar rel
G O T O FALS03 ;caso contrario ir a lazo lalso
OPENGE:
F O llR - 1 T O 2 :2 pitos ndica clave correcta
PAUSE 100
H IG H UF.D:TTIGII BIP
PAUSE 100
LQ W LED : LOW BIP
NEXT
FALS03:
FOR R - 1 T O 3 ;3 pitos indica clave incorrecta
PAUSE ion
HJG H L ED : H IG H BIP
PAUSE 100
LO W L E D : LO W BIP
N EX T
G O T O TECLAUNO ;r nuevamente a comparar las claves
liM )
Figura 5.7.2.2. cerradura FLASH.php Programa para hacer una cerradura ciedrnica
codificada (1.2.3.4) en la que a clave no se puede cambiar.
Este proyecto es muy similar al anterior con la diferencia que este se le puede cambiar la clave
predefinida (1,2,3,4) por cualquier otra combinacin de teclas, la clave original ser cargada en
cuatro variables y existir una manera de cambiar los valores de estas variables lo cual se lo hace
de la siguiente manera: despus de haber colocado la clave original (1.2.3.4). debemos mantener
presionado la tecla D durante 2 segundos, para ser ms exactos en el momento que el rel se
conecta despus de 1 segundo hay una pregunta de si la tecla D es presionada ir a grabar, si no
presionamos la tecla D a tiempo, perderemos la oportunidad de cambiar la clave y tendremos que
volver a repetir el proceso, en el momento que ingresa al programa de cambio de clave se
encender el LED y permanecer encendido esperando a que ingresemos los 4 nuevos dgitos.
Es importante saber que la nueva clave se almacenar en las variables SETPRIME,
SETSEGUN. SETERCF.R, y SETCUART, estas variables ocupan espacio en la memoria RAM
(Randoni Access Memory ) o memoria de acceso casual que tiene una capacidad de 224 BYTES,
por lo tanto slo estn activas mientras el PIC se encuentra alimentado, una vez que se corta la
alimentacin al PIC' esta memoria se borra (voltil), por consiguiente al momento de volver a
prender el micro PIC, la nueva clave se nos habr perdido y en su lugar se encontrar la clave
original (1,2,3,4), esto debido a que esta clave se encuentra en la memoria FLASH y en el
momento de correr el programa lo carga nuevamente en la memoria RAM para desde aqu poder
ser modificada.
lin cuanto a los materiales y el diagrama de conexin, son los mismos que se utilizaron en
el ejercicio anterior.
P TECLA:
H IG II LED : IIIG H BIP genera sonido cada que se pulsa Icela
PAUSE 100 duracin 100 milisegundos
LOW L ED : LOW BIP apagar sonido y: led
ESPACIO: programa de antirrebote de teclas
f T? 1 | K Ir \ A **i *v i ' 11 a /nr/N
II* IJNU - 0 I1IEN ESPACIO si la tecla sigue pulsada ir espacio
IF DOS = 0 T IIE N ESPACIO si la tecla sigue pulsada ir espacio
IF TRES = 0 T H E N ESPACIO si la tecla sigue pulsada r espacio
IF CIJA TRO" T H EN ESPACIO si la tecla sigue pulsada ir espacio
PAUSE 25
RETURN retorna si se suelta las teclas
. + C O m p a r a c i n d e claves ************************
TECI.AUNO:
G OSUB BARRIDO ir a barrido y retomar con un valor contino ..
OPENGF.:
FO R R * I T O 2 2 pitos indica clave correcta
PAUSE 100
HrGH LED : H IG II BIP
PAU SE 100
LOW LED : LO W BIP
NEXT
Figura 5.7.3.1. cerradura RAM.pbo Programa para hacer una cerradura electrnica codificada
(!, 2,3.1) en a que la clave se puede cambiar en la memoria RAM.
Lna vez aprendido acerca de las 2 memorias anteriores, es el momento de aprender a utilizar la
memoria EEPROM (Electrical Erasable Programable Rcad Only Memory), o memoria de lectura
de programacin y horrado elctrico, que a diferencia de la memoria RAM. esta no es voltil y
tiene capacidad para 128 Bytes, lo que quiere decir que si al PIC se le coila la alimentacin, los
datos almacenados en la memoria F.EPROM, permanecen inalterados segn su fabricante por un
periodo de 100 artos.
Este proyecto cumple todas las expectativas de un electrnico, tiene la posibilidad de
cambiar la clave y no borrarse, si se dgita una clave errnea el teclado se bloquea y nicamente
lo desbloqueamos presionando al mismo tiempo las teclas 7 y C p o r 2 segundos, asimismo para
cam biar la clave procedemos como en el proyecto anterior, presionando la tecla D.
Algo importante es que si nos olvidamos la clave, la nica manera de recuperarlo es
leyendo el contenido del PIC a travs de programador lC-prog, esto se lo realiza colocando al PIC
nuevamente en el grabador y presionando la tecla ^ . la cual despus de leer el contenido del
PIC. nos mostrar la nueva clave almacenada en la parte inferior, donde dice
Direccin-Datos Reprom.
READ 5, pepe ; quiere decir leer la direccin 5 de la memoria EEPROM y guardar en la variable
pepe, por consiguiente pepe se carga con el nmero 3.
W R IT E 7. pepe : en este caso la variable pepe estaba cargada con el nmero 3, por consiguiente
la direccin 7 de la memoria EEPROM se borra y se carga con el nmero 3.
NOTA: Estas declaraciones ya incluyen las PAUSAS necesarias para realizar lu grabacin, por lo
que no es necesario colocar PAUSE 10 despus de cuda dccluracin, debe considerar tambin que
la memoria EEPROM soporta l'OOO.OOO de ciclos de borrado/escritura.
BARRIDO:
LOW A :scnsar la fila A
I F UNO 0 TH EN NUMERO - I :RETI: UN tecla pulsada retome cargada con l
IF DOS = 0 TH EN NUMERO - 2 RETURN tecla pulsada reiorne cargada con 2
IF TRES - 0 T IIF N NUMERO =3 :RETURN tecla pulsada retorne cargada con 3
IF.CUATRO=0 T H EN NUMERO - 10:RETURN tecla pulsada retorne cargada con 10
H IG H A . continua ...
OPENGE:
l' R R 1 T O 2 :2 pitos indica clave correcta
PAUSE 100
II1GI1 I.F.D: IIIG H B1P
PAUSE 100
I ;OW I F.D: L O W BTP
NEXT
FALS03:
FO R R ~ ] T O 30 ;30 pitos indica clave incorrecta
PAUSF, 150
H IG H Lfc : H IG H BIP
PAU SE 150
L O W I F.D : LO W R1P
H IG H A: H IG H B HIG H D LOW C ;sensar slo la fila C
IF (GUATRO-0)AND(UXO~0)T1IEN RESET :coi rcspondcn a teclas 7 y C para resetear
NEXT
PANICO:
H IG H LED
PAUSE 500
L O W LED
PAUSE 500
H IG H A: H IG H B H IG H D :LO W C iscnsarslo la Illa C
IF (CUATRO^O)AND(UNO=)THEN RESE 1 icorresponden a teclas 7 vC .parkresetear
G O T O PANICO ; queda en este lazo para siempre
END
Figura 5.7.4.1. cerradura EEPROM.pbp Programa para hacer una cerradura electrnica
codificada (1.2,3.4) en la que la clave se puede cambiar en la memoria EEPROM.
5 .7 .5 . PROYEC TO PROPUESTO.
1. Elabore un programa para una alarma con teclado hexadccimal y 3 zonas, en base al
proyecto 5.7.4. en el que en vez de cncrgizar el rel arma el sistema de alarma. Con 3
pulsadores simule apertura de zonas y cuando ingresa la clave, emite 10 pitos antes de
que el sistema quede completamente armado, esto se conoce como temporizador de
salida, luego de esto si se pulsa cualquier botn (zonas), el sistema se activa haciendo
sonar a la chicharra, para apagarlo debe ingresar nuevamente la clave de fabrica que en
esta ocasin ser 6789. esta debe poder ser cambiada a gusto del usuario.
El PWM (Pulse Width Modulation) o modulacin en ancho del pulso, tiene muchas aplicaciones,
por ejemplo para atenuar la iluminacin de un led, la iluminacin del BACKLKil IT de un LCD.
para variar la velocidad de un motor DC\ que es lo que veremos en este caso. El presente proyecto
es un vuriador de velocidad de un motor DC de juguete que se alimenta a 5 voltios, su
funcionamiento es de la siguiente manera:
Al momento de alimentar el circuito, cl motor parte desde una velocidad media, es decir
(FR EC -125), al pulsar el botn (S) incrementa la variable en mltiplos de 25 y lo velocidad del
motor sube hasta llegar a (FRF.C=250). si seguimos pulsando la misma tecla, el I F.D
permanecer encendido, esto nos indica que ya lleg al limite, entonces pulsamos el botn (B). cl
cual hace que disminuya la velocidad del motor hasta llegar a (F R E 0 2 5 ). de igual manera ai
seguimos pulsando el botn (R) cl LED permanecer encendido. Si usted no dispone de un motor
puede conectar a un LLD directamente con una resistencia de 330 Q. igualmente podr observar
cmo baja o sube la intensidad del I.ED, la forma de utilizar el PWM es de la siguiente manera;
PW M portB.O, 127. 60 ; quiere decir sacar 60 pulsos PWM por el puerto B.O al 50% en alto
; aproximadamente
l a forma de la scrtal que sale por el PIC es similar a los siguientes grficos:
Sv 90%
n_ r n
10%
r n r ~ L PW M portb.O, 228,3 genera 3 ciclos al 90% alto y 10% bajo
;cl motor trabaja a velocidad alta
5v &o%
o - r m _ n _ PW
p \v :M portb.O, 127,3 genera 3 ciclos al 50% alto y 50% bajo
50%
el motor trabaja a velocidad media
5v. 10%
0 l l H
90%
PW M portb.O, 25, 3 genera 3 ciclos al 10% alto y 90% bajo
cl motor trabaja a velocidad baja
Por consiguiente 0 representa 0% de ciclo til y 255 cl 100% de nivel alto, el largo de cada ciclo
para un oscilador de 4MHZ es de 5 milisegundos y para un oscilador de 20MHZ es de I
mil segundo
1M ATERIALES.
-3 resistencia de 4.7 Kf 2
-I resistencia de 330 2
-1 transistor T IP 110
-2 pulsadores normalmente abiertos
-1 capacitor cermico de 0,1 uF (104)
-I LED rojo de 5 mm.
-I diodo rectificador 1N4007
-I motor de juguete._______
NOTA: El 11R10;',puede manejar un motor de hasta 100 voltios DC a 8 Amperios, para el caso
de querer utilizar mV inotOr grande de AC\ se recomienda utilizar un optoacoplador a la salida del
__________ 1 ;
WMSUiiir V
v /A\ it.\ pvnn.
Tvirfh i1<
j nnmKrp retira i'l
, 1I\ni 11/1 V vi ni
i'inO R1
botbajar VAU portb .4 nombre para el pin B2
LED VA# p o r t nombre para el pin B3
FRFC VAR B y I t . variable FREC tamao 255
bandera VR BJT t variable bandera de 1 bit
FR EC M 25 \ valor inicial para variable FREC
SUBIR:
I F FREC > 249 TH EN aviso si supera a 249 ir a aviso
IF bandera ~ 1 THF.N pa>g ;sj la bandera esta en 1 salir
H IG H LED encender cl Icd
bandera^ I cargar la bandera con uno
F K E C -F ^ E C 25 sumar 25 a la variable FREC
G O T O TRTX^.. - irap ro g continua...
Figura 5.8.1.3. PWM motor.nhp Programa para controlar la velocidad de un motor DC.
Se puede hacer un pequeo convertidor de digital a anlogo para el PWM con una resistencia y
un capacitor, pero vamos a proponer realizarlo con el LM358 por sus mejores prestaciones, ya
que lograremos mayor rango de voltaje (hasta 32 V.), pero en nuestro caso por' motivos
experimentales slo lo conectaremos a los 5 voltios de la misma fuente que est alimentado el
PIC. en el caso de un PWM de 255, el LM358 tendr en su salida 5 V.. si sacamos un PWM de
127. tendremos 2,5 V., en definitiva los pulsos que ingresan al LM358 se convierten en salida
anloga, desde 0 hasta 5 V.
Figura 5.8.2.1. Conexin de un LM35H como conversar D/A para convertir el PW M en seal
anloga de 0 a 5 V.
Se necesita un voltmetro para medir los niveles de voltaje en la salida, en cuanto al programa
podemos utilizar el mismo del ejercicio anterior el PW M jnotor.pbp. A la salida del LM 358
M A T E R IA L E S
-2 resistencia de 4.7 KO
-1 resistencia de 330 Ll
-1 resistencia de 1 K2
-1 resistencia de 100 K2
-1 capacitor electroltico de lOuF/lOOV.
-2 pulsadores normalmente abiertos
1 LED rojo de 5 mm.
-1 CI. LM358.
Los motores paso a paso (PAP) son ideales para la construccin de mecanismos en donde se
requieren movimientos muy precisos, como en robtica, en la tecnologa aeroespacial, en
maquinarias (tomos, fresadoras, bordadoras), en computadores (CD ROM, Disco duro, DVD.
impresoras), etc. A diferencia de los motores de C.C. y los de C.A., los motores PAP tienen la
ventaja de poder ser ms precisos en cuanto a su velocidad, povimienlo, enclavamiento y giros,
la seal que requieren para su funcionamiento es de naturaleza digital.
La manera de identificarlos a diferencia de los motores PAP bipolares de 4 hilos y 2
bobinas (ver figura 5.8.3.2.). es que los motores PAP unipolares tienen desde 5 hasta 8 alambres
(ver figura 5.8.3.3.) y su funcionamiento es mucho ms simple que los motores PAP bipolares,
los cuales necesitan un integrado L293 que dispone de 2 puentes II (H-Bridge) o por lo menos
debemos hacer un arreglo de 8 transistores, (4 PNP y 4 NPN).
En cuanto al voltaje de alimentacin existen desde 1,3V., 1,9V., 4,5V., 5V I2V. y 24 V.,
la com ente de consumo de un motor puede estar desde 300mA hasta 3 A.
De acuerdo a la aplicacin que deben rea zar los motores PAP tienen diferentes grados
de precisin como muestra la siguiente tabla:
Figura 5.8.3.1. Tabla del nmero de pasos que debe dar un motor PAP para llegar a dar una
vuelta completa, segn su ngulo de giro.
El circuito de control para los motores PAP unipolares sea de 5. 6, 8 hilos, es muy sencillo,
podemos utilizar un buffer ULN2803 o 4 transistores T IP 110 con 4 diodos de proteccin, para
Figura 5.8.3.2. Diferencia entre un motor PAP bipolar y un motor PAP unipolar de 4 bobinas.
F igura 5.8.3.3. Motores PAP unipolar de / bobinas de 6 y 8 hilos, los cuales se los puede
configurar como bipolares.
que empiece a girar basta con dar una secuencia de pulsos con una duracin de 5 milisegundos a
cada bobina como muestra la figura S.8.3.4, mien;ras que para un motor bipolar se debe invertir la
polaridad de cada bobina para que este pueda generar un paso como lo muestra la figura 5.8.3.6.
Figura 5.8.3.4. Tabla de la secuencia de cnergizado de bobinas para un motor PAP unipolar
para tpte este gire en sentido antihorario.
V+ V- v+ V-
-
I
_
v+ V- V-
3 V- v+ V- v+
V- v+ v+ 1 v.
Figura 5.8.3.6. Tabla de la secuencia ifo conmutacin para un motor PAP bipolar.
Uno de los mayores inconvenientes a la hora de trabajar con los motores lAl* en especial los
unipolares es la de poder identificar cual es la bobina A. B. C, y D. para esto simplemente
medimos las resistencias de cada una de las bobinas, por ejemplo tomemos el caso de un motor
unipolar de 6 hilos cuyos datos de la placa dice
Como podemos ver es un motor paso a paso de 7,5 grados de movimiento con una alimentacin
requerida de 24 V. y cuyas bobinas tienen una resistencia de 22 12 cada una.
Para identificar qu bobina es la A, debemos buscar el alambre de color amarillo, la B el
de color naranja, C el de color negro, el D el de color caf, y los dos rojos son los comunes. Para
el caso de que no coincidan con esta gama de colores, debemos medir la resistencia entre un
cable y otro cable, los que marquen 22 12 son bobinas comn y un terminal y si marca 44 12 son
los terminales A y B o C y L), una vez ubicado cuales son los comunes, estos podemos unirlos en
un slo cable y colocando el motor de la forma que ilustra el grfico 5.8.3.3, ya podemos asignar
los lugares de au la bobina, otra manera de ubicarlos es haciendo pruebas, si los cables o slo un
par de cables estn conectados incorrectamente el motor no gira y en su lugar permanece
temblando, en este caso pruebe cambiando los cables hasta que el motor empiece a girar.
Como prctica bsica para introducirnos en el manejo de motores PAP vamos a hacer un
programa que genere una revolucin completa a un motor de 7.5 grados a 24 voltios en secuencia
wave drive o secuencia por ola. esta es la forma ms fcil de manejar un motor, m usiste en
cnergizar una sola bobina a la vez. A, C, B, y por ltimo la D, a continuacin veremos la tabla de
cncrgizado para conseguir que el motor gire en ambos sentidos.
BO A
IZL
B1 C
_ n _ c
82 B
83 D
IZL
Finura 5.8.4.1. Tabla de energizado de bobinas en secuencia p o r ola de giro unhorario.
Como podemos ver slo necesitamos activar un pin a la vez durante 5 milisegundos, si ponemos
10 milisegundos esto har que el motor gire mrs despacio, pero menos de 4 milisegundos, no
sern suficiente para generar cl paso y el motor se quedar temblando, adicionalmente se debe
poner diodos de proteccin del colector de cada transistor al voltaje positivo que est conectado el
cable comn del motor, esto para proteger al PIC del efecto inductivo que genera el motor, bl
programa que haremos a continuacin hace girar 360c en sentido antihorario, se detendr por un
segundo y luego girar otros 360 en sentido horario, y asi indefinidamente, como este es un
motor de 7,5" de giro, necesitaremos repetir la secuencia de los pasos 12 veces, luego pruebe con
6 veces y ver que el motor gira 180.
M A T E R IA L E S
-4 resistencia de 4.7 KQ
-4 diodos rectificadores IN4007
-4 transistores T P 1 10
-1 motor PAP unipolar de cualquier voltaje d esde 5 hilos a 8 hilos.
BC E
Figura 5.8.4.3. Conexin de un motor FAP unipolar a las salidas del PIC.
antihorrio
FO R x - J T O 12 ; 12 veces repetir secuencia de giro antihorario
portb-%0001 tcncrgiza bobina A
GO SUB timer :espcra 5 mis
portb=%0010 :energiza bobina C
GOSUB timer :;cspera5m ls
p o rtb -% 0 100 ;cnergizu bobina B
GO SIJB timer .espera 5 mis
portb-% 1000 ;encigiza bobina D
GOSU B timer
NEXT
PAUSE 1000 ;eEpera 1 a
timer:
PAUSE 5- :pausade 5 milisegundos
RETU RN
EN )
Finura 5.8.4.5. Motor PAP scc-QI.A.pbp Programa para hacer girar 360 en ambos sentidos a
un motor PAP unipolar.
Tambin conocida como secuencia por paso completo, este es la manera que recomienda los
fabricantes, debido a que siempre se encuentran energizadas 2 bobinas, se obtiene un alto torque
de paso y de retencin, y consume el 40% ms de corriente que el caso anterior.
F.l siguiente ejercicio hace girar el motor continuamente, noten adems la fuerza que tiene
tratando de detener el giro con sus dedos.
En cuanto a los materiales y el diagrama de conexin utilizaremos los mismos del
ejercicio anterior.
A continuacin mostraremos la grfica de secuencia de pasos y cncrgizado para el manejo
del motor a paso completo.
B1
B2
B3
Figura 5.8.S.2. Motor PAP sec-naso com pl.pb) Programa para hacer girar continuamente
en secuencia paso completo.
Figura 5.8.5.3. Fotografa de un motor PAP unipolar de 6 hilos a 6 V. que. consume 760 mA.
Tambin conocida como secuencia a medio paso, este es una combinacin de las 2 secuencias
anteriores, se encrgiza 2 bobinas, luego 1 bobina, luego otra vez 2 bobinas y asi alternadamente,
como resultado cl rotor avanza medio paso por cada pulso de excitacin, la ventaja de esta
secuencia es la disminucin del avance angular, de 7,5 a 3,75, por consiguiente para girar una
vuelta completa se necesita el doble de pasos, en este caso 96, lo que veremos en cl programa ser
8 secuencias que multiplicado por 12, nos dar 96 y esto equivale a 360".
En cuanto a los materiales y el diagrama de conexin utilizaremos los mismos del
ejercicio anterior.
A continuacin mostraremos la grfica de secuencia de pasos y energizado para el manejo
del motor a medio paso.
Figura 5.8.6.2. Motor PAP sec-medio pnso.php Programa para hacer girar 360, m sentida
aniihorario con un avance de medio paso.
NO TA : Eli esto caso Observarn que al terminar z dar la vuelta completa, quedan energizadas
las bobinas A y D, por lo tanto el motor quedar retenido fuertemente y empezar a
sobrecalentarse, para que esto no suceda adicionen despus del N EX T la lnea portb^% 0000: con
esto no queda ninguna bobina energi/acln y por consiguiente notarn que el rotor gira libremente.
I. Utilizando PWM, y sin pulsadores haga que cl motor de un juguete baje y suba su
velocidad gradualmente.
2. Utilizando PWM un LM358 y 2 pulsadores, genere voltajes variables desde 0V. hasta 24
Voltios.
3. Con un Motor paso a paso unipolar haga que avance 90 y se detenga por l scg. luego
otros 90 y se detenga igualmente por l seg. asi debe continuar indefinidamente.
4. Con un motor PAP unipolar haga girar 2 vueltas completas en sentido horario y luego una
vuelta en sentido antihorario, cl proceso debe repetirse 5 veces, al final el motor debe
detenerse por 3 segundos y volver a repetir cl proceso.
5. Con un motor PAP unipolar y 2 pulsadores, haga que invierta el sentido de giro con cada
pulsador, el motor debe estar en constante movimiento.
Existen dos formas de realizar una comunicacin binaria, la paralela y la seriul. La comunicacin
paralela como por ejemplo la comunicacin del PIC con cl Cl. 7447 del ejercicio 5.4.1.. en donde
los datos viajan simultneamente a travs de los 4 hilos, tiene la ventaja de que la transferencia de
datos es ms rpida, pero el inconveniente es que necesitamos un cable por cadu bit de dato, lo
que encarece y dificulta el diseo de las placas, otro inconveniente es la capacitancia que genera
los conductores por lo que la transmisin se vuelve defectuosa a partir de unos pocos metros.
l a comunicacin serial en cambio es mucho ms lenta debido a que transmite bit por bit
pero tiene la ventaja de necesitar menor cantidad de hilos, y adems se puede extender la
comunicacin a mayor distancia, por ejemplo; en la norma RS232 a 15 mis.. en lu normo
RS422/4X5 n I200nitsy utilizando un MODEM, pues n cualquier parte del mundo.
Existen dos formas de realizar la comunicacin serial: la sincrnica y la asincrnica, la
diferencia entre estas dos formas de comunicacin es que la comunicacin sincrnica adems de
la lnea para la transmisin de datos, necesita otra linea que contenga los pulsos de reloj, estos a
su vez indican cuando un dato es vlido. Por otra parte la comunicacin serial asincrnica no
necesita pulsos de reloj, en su lugar utiliza mecanismo como referencia tierra (RS232) o voltajes
diferenciales (RS422/485). en donde la duracin de cada bit es determinada por la velocidad de
transmisin de datos que se debe definir previamente entre ambos equipos.
Se incluye este literal para poder entender mejor las prcticas que ms adelante realizaremos,
pues mencionaremos algunas palabras que podra encontrar su significado en este literal.
5.9.2.1. Simplcx. So dice a la transmisin que puede ocurrir en un slo sentido, sea slo para
recibir o slo para transmitir. Una ubicacin puede ser un transmisor o un receptor, pero no
ambos a la vez. un ejemplo claro es la radiodifusin, en donde la estacin es el transmisor y los
radios son los receptores.
5.9.2.2. Ilalf-duplcx. Se refiere a la transmisin que puede ocurrir en ambos sentidos pero no al
mismo tiempo, en donde una ubicacin 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 botn y habla, luego suelta c botn y el otro usuario presiona el botn para
contestar.
5.9.2.3. Full-duplcx. Se dice a lu transmisin que puede ocurrir en ambos sentidos y al mismo
tiempo, tambin se los conoce con el nombre de lineas simultaneas de doble sentido, una
ubicacin puede transmitir y recibir simultneamente, siempre y cuando la estacin a la que est
transmitiendo tambin sea la estacin de la cual est recibiendo un ejemplo es la telefona mvil.
1.a norma RS232 se incluye actualmente en los computadores, conocido como puerto serlul y
sirve para comunicarse con otras computadoras adems del mouse, programadores, impresoras,
etc. A continuacin veremos un grfico que muestra la forma de comunicacin serial.
Numero enviado
E n 200 u* veriTw.u
l hit ri (nieto
_ o e
j
JTTS 1 f
c
to o
,
0 V. A - 1 1
J!
Orden de envo
Figura 5.9.3.1. Estructura de undula que se enva ser iuimente a 246Q.8NI. (24QQbts Zseg, sin
paridad, S bits de dato y 1 bit de parada), correspondiente al nmero 6H carcter
A SCII de "D ( %010l0()), el tiempo de un bit es de 416 ps.. p o r lo que el
receptor revisa el bit de arranque despus de 20Sps.. y luego coda 416 ps.
Como podemos ver la seal permanece en un nivel lgico alto mientras no realiza ninguna
transferencia de datos. Para empezar a transmitir datos el transmisor coloca la linca en nivel bajo
durante el tiempo de un bit (416 ps para 2400bits/s), este se llama el bit de arranque, a
continuacin empieza a transmitir con el mismo intervalo de tiempo los bits de datos, que pueden
ser de 7 u 8 bits, comenzando por los bits menos significativos y terminando por los ms
signillcativos. Al final de la transmisin de datos se enva el bit de paridad, si estuviera activa esta
opcin y por ltimo los bits de parada, que pueden ser I o 2. despus de esto la lnea vuelve a un
estado lgico alto, y el transmisor est listo para enviar el siguiente dato.
Como el receptor no est sincronizado con el transmisor desconoce el momento en que
empieza lu transmisin, por lo que siempre debe estar en espera del cambio de estado o sea el bit
de arranque, una vez que se da este bit. medio bit despus vuelve a verificar si est en bajo, si no
lo est no lo recibe ya que pudo ser ocasionado por un ruido en la linea, caso contrario si el estado
sigue siendo bajo, empieza a recibir la transmisin hasta el bit de parada.
Para que la lectura de los datos sea co-recta. ambos equipos deben estar configurados a la
misma velocidad y dems parmetros y no exceder ms all de los 2 metros, pasado esta distancia
los datos recibidos pueden no ser los correctos debido n lu prdida de voltaje en el cable, mido,
etc. Para distancias mayores existe el protocolo RS232. cuyos niveles de voltaje estn
establecidos de la siguiente manera: para seal I lgica (-V a -15V ) en el transmisor y (-3V a
-2 5 V) en el receptor, para seal 0 lgica (-*-5V a +15 V) en el transmisor y (+3V a *25V) en el
receptor, es decir una lgica inversa.
0 0 0 1 0 0 0 1 0 1
Orden de envo
Figura 5.9.3.2. Comunicacin serial con la norna 00232, el dalo enviado es el mismo que el do
a fig u ra 5.9.3.1., con la diferencia que la lgica es inversa, 1 equivale a - 1 0 y 0 a +10,
Nmero enviado
0 0 0 1 0 0 0 1 1
0 j
+5V.
PIC mu
|i
Puerto B.1
0V. __ j1
.......i
----- r __
i Wb\ _
m
1 i ! 1" ' o
ff
E i 3 4 5 6 7 8 i
3
m
Orden de envo ffl
Figura 5.9.4.1. Esquema del dalo enviado p o r el PIC simulando la norma RS232, noten que es
muy similar al esquema 5.9.3.2. uro con diferentes niveles de voltaje.
Esto significa incluir el programa modedct's.bas en esta lnea, nqui se cneuenirun algunos de los
parmetros para las comunicaciones, por ejemplo en nuestro caso las velocidades de transmisin
que son: para dato invertido N300. N I 200. N2400. N9600, y para dato verdadero: T300, T I200,
T2400. 19600. Los datos invertidos por ejemplo el N2400, quiere decir que un 1 lgico vnlo 0V.
y un 0 Lgico vale 5V. (ver figura 5.9.4.1.). en cambio para dato verdadero por ejemplo el T2400
el 1 lgico vale 5V. y el 0 lgico vale 0V. esta seal saldra muy similar al de la figura 5.9.3.1. y
este es el que se utiliza para manejar con el Cl. MAX232, el cual ya veremos ms adelante.
Este comando INCLIJDE podemos utilizarlo para nuestros propios programas por
ejemplo si ponemos INCL DE freqout.pbp". se incluir el sonido para un parlante por el
puerto B0 que durar 2 segundos.
| M A T E R IA L E S .
| -I conector DB9 hembra con su respectivo cajetn
, -2 resistencias uno de 220 Q y otro de 3 3 0 H
| -2 mis de cable de 2 hilos para transmisin de datos
-1 led rojo 5mm
| -1 cristal de 4 MHZ.
| -2 capacitores de 22 pl'._________________________________________________________________ j
5 v.
Figura 5.9.4.2. Diagrama de conexin del PIC para enviar dalos al P C sin el CJ. A1AX232.
Figura 5.9.4.3. Scrout PIC-PC.pbp Programa para transmitir serialmente desde el PIC a un PC
sin utilizar el CI, MAX232.
rrodedefs.has 7 r* V e r s i n :
r) Oefre 8 '" N o te s :
(3 Conrtents
Cuando la ventana est activa sale un mensaje en la parte inferior izquierda conncctcd, y los
Bytes enviados o recibidos. Encienda cl micro PIC y despus de apagarse cl LHD del puerto B.2
deber salir cl texto enviado en cl cuadro que dice Rcccivc, como el programa est en un lazo sin
fin cl texto IX X j seguir saliendo continuamente.
Se trata de enviar datos desde el PC al PIC. por lo que es de suponer los voltajes sern desde -
10V. hasta 10V. v la distancia podemos extenderlo hasta 15 mis. sin ningn problema, como la
conexin es directamente al PIC debemos colocar una resistencia de 22K para no daar el puerto
Es importante saber que esta declaracin detiene el programa esperando a que ingrese un dato, y
solamente cuando haya recibido un dato, contina con la siguiente linca de programa, para hacer
que slo espere un determinado tiempo y luego contine con la siguiente linca debe utilizar
Timeout, para mayor informacin refirase al mar ual de pbp, o utilice una interrupcin extemn
para atender el dalo a recibir, ver literal 5.10.1 Utilizando la interrupcin un ul pu erto B.O.
M A T E R IA L E S .
-I concctor DB9 hembra con su respectivo cajetn
2 resistencias uno de 10 2 y otro de 22 KQ.
-2 mts de cable de 2 hilos para transmisin de datos.
-1 cristal d e 4 M il/.
-2 capacitores de 22 pF.
-I LCD 2 x 16
-1 potencimetro de 10 K2
Finura 5.9.5. /. Diagrama de conexin del PIC para recibir datos del PC sin Cl. MAX232.
LCD O U T Sfe,l limpio pantalla del Led y ubica cursor en casilla S80
Inicio:
SER IN portb., N2400. dat esperar el dato y guardarlo en da!
LCD OU T. dat desplegar el dat cu LCD
G O T O inicio ira esperar el siguiente carcter
FND
Figura 5.9.5.2. Scrin PC-PIC.pht? Programa para recibir datos serialmente desde el PC a tm
PIC sin utilizar el CI. M/IX232.
Una vez que arranca el PIC saldr un texto que dice LCD listo, un segundo despus se borrar y
quedar en un lazo de espera del dato serial, si el texto inicial no sale, revise las conexiones al
LCD, caso contrario si todo est bien, abrimos la ventana de comunicacin serial de microcode de
la forma que se aprendi anteriormente y escribimos en la ventana que dice T ransm it micro
PIC, luego pulse la tecla F.NTER del teclado, inmediatamente aparecer el texto en el LCD.
Figura 5.9.5.3. P(m talla de i a ventana de comunicacin serial listo para enviar un texto.
El Cl. MAX232 es la solucin para transmitir a mayor distancia, ya que incrementa los niveles de
voltaje de 5 V. a 10V. gracias a un juego de capacitores que le ayuda a doblar los voltajes, por lo
que para su alimentacin slo requiere una fuente de 5V. que puede ser In misma que utiliza cl
PIC. El MAX232 dispone de 2 juegos de transmisores y receptores, de los cuales slo
ocuparemos un par de ellos.
El MAX232 en este caso nos ayudar a convertir los voltajes TTL del PIC en voltajes de
la norma RS232. quiere decir que si enviamos un estado lgico alto (5V.). a la salida del Tout del
Cl. MAX232 tendremos -I0 V . y si enviamos un 0 lgico desde el PIC (OV.), el MAX232 enviar
-1 0 V ., por lo tanto debemos invertir el dato de la salida del PIC y esto lo conseguimos utilizando
12400 de la siguiente manera:
SER O U T portb. I ,T2400,[ D,?] quiere decir enviar cl dato serial D por el pin 13.1 n
:2400bts/s 8N1 en dato verdadero, ver figura 5.9.3.1
El presente proyecto trabaja de la siguiente manera: una vez listo y conectado todo, cuando el PIC
arranca debe encender el led y luego apagarlo, este para aseguramos que todo est funcionando
bien, ahora desde cl computador enviamos una letra cualquiera que no sea la C, observarn que el
led parpadea cada que se le enva una letra, ahora si enviamos la C mayscula cl led se quedar
encendido permanentemente e inmediatamente cl PIC empezar a enviar un contador separado
por el signo menos (-) empezando desde el 0 hasta cl 255. como podemos observar esto es un
ejemplo de la transmisin half-duplex.
M A T E R IA L E S .
-I Cl. MAX232
-4 capacitores de 10 uF electrolticos o preferible de tantalio
-de 2 a 30 mts de cable de 2 pares de hilos
-1 conector D139 hembra con su cajetn
-I led
-I resistencia de 330Q._____________________________
5 v.
Figura 5.9.6. /. Diagrama de conexin del PIC y el Cl. MAX232 para enviar y recibir dalos
entre un PC v el PIC.
Figura S.9.6.3. Pantalla de comunicacin serial enviando y recibiendo datos desde el PIC.
Este proyecto consiste en hacer una transmisin simplex entre un PIC transmisor y un PIC
receptor, cl primero dispone de 3 botones, el botn A enva la letra *AV el cual el I'IC receptor lo
detecta y enciende un led rojo por I segundo, cesde el transmisor presionamos el botn B y
transmite la letra B, cl receptor encender una led amarillo, igualmente despus de un segundo
lo apagar y por ltimo desde cl transmisor presionamos la tecla C y cl receptor encender un Icd
verde. Por tratarse de una prctica y no complicamos con el MAX232. ya que necesitaramos 2.
slo realizaremos a una distancia de 2 metros conectando directamente de PIC a PIC utilizando
dato invertido (N2400).
j MATERIALES.
-2 mis de cable de 2 de hilos
-3 leds un rojo, un verde y un amarillo
-3 resistencias de 4.7 K
-3 resistencia de 3302
-3 pulsadores NA
-2 PIC16F628A.
Figura 5.9.7.1. Diagrama de conexin para hacer una comunicacin seria! desde un I*IC hacia
otro PIC.
Para este proyecto podemos utilizar una o dos fuentes de 5 voltios, pero sera recomendable
utilizar 2 fuentes para que la comunicacin se vea ms real, como es de suponerse se necesitara
de 2 programas diferentes uno para cada microcontrolador, por lo que empezaremos con el
programa del transmisor.
F.NI)
Figura 5.9.7.2. transmisor PlC.obn Programa para enviar ciatos desde un PIC.
recibir:
SERIN portb.O, N2400, datos. recibir dato serial y guardar en datos
IF datos="A" TH EN 11IGH ledr PAUSE 1000 ;si es A encender ledr y esperar I seg.
[F daos-"B " T H EN H IG H leda PAUSE 1000
IF d a to s-"C " TH EN H IG H ledv PAUSE 1000
Figura 5.9.7.3. Receptor PIC.pbp Programa para recibir datos desde un PIC.
Para entender que es lo que vamos a hacer explicaremos en pocas palabras que es la interfaz serial
RS422 y que es la interfil/. serial RS485, eslus se disearon para la conexin llsica entre
computadores y terminales directamente. Fistos estndares tienen grandes ventajas con respecto n
la norma RS232 como por ejemplo, la distancia de comunicacin de hasta 1200 mis, la velocidad
de transmisin de hasta 10 Mbils/seg. y el nmero de elementos a conectarse, para la interfaz
RS422 pueden conectarse un transmisor y hasta 10 -eceptores en un modo de transmisin Full-
duplex, mientras que para la interfaz RS485 se pueden conectar simultneamente hasta 32
transmisores/receptores en un sistema half-duplex. otra ventaja frente al sistema RS232 es que no
requiere fuentes duales sino una fuente de alimentacin de 5 voltios.
Ambas interfaces utilizan el mtodo de medida diferencial, en la que utilizan dos lneas
para la transmisin y dos para recepcin, en cada par de conductores la segunda tiene un nivel de
voltaje complementario al del primero, y el receptor responde a la diferencia de voltajes entre los
dos conductores. Este tipo de lincas de transmisin se llaman balanceadas, y esto permite la
eliminacin de ruidos electrostticos y electromagnticos comn en las dos lincas ipie se utilizan.
El CI. 75176 contiene un transmisor y un receptor y slo dos lineas diferenciales A y B
de entrada^salida de datos, dos lincas adicionales RE y DE determinan la funcin que debe
cumplir el integrado, permitiendo o inhibiendo la recepcin o la transmisin de datos. Para este
integrado el transmisor es habilitado por un I lgico y un 0 lgico habilita el receptor, estas dos
lneas RE y DE son unidas a un puerto del PIC, en donde el microcontrolador determinar cuando
transm itiry cuando recibir datos, en un sistema half-duplex.
El sistema RS422 establece una comunicacin full-duplex para lo cual se requiere 2
lincas adicionales, esto se lo consigue agregando otro CI. 75176 exclusivamente para la
transmisin por lo que RE v DE estarn conectados en nivel lgico alto, mientras el otro CI.
75176 se lo configura para recepcin conectando los terminales control a un nivel 0 lgico, de
esta manera quedan operando los 2 circuitos lineales 75176, con la ventaja de poder transmitir y
recibir al mismo tiempo.
Como el microcontrolador PIC16F628A ejecita linca por linea del programa, no es capaz
do leer y recibir un dato a la vez, por lo tanto no se puede realizar una comunicacin full-duplex,
de esta manera no es aplicable una comunicacin ccn la interfaz RS422, lo ideal es la interfaz
RS485 ya que est diseado para una transmisin half-duplex y de hecho este es el modo de
transmisin que se utiliza en la mayora de dispositivos comerciales basados en
microcontroladores, un ejemplo de ello es la comunicacin del teclado con la central de alarma,
esta lo realiza mediante interfaz RS485 de 4 hilos (A, B. masa y el cuarto hilo alimentacin de
12V. para el teclado). Una recomendacin importante es que el cable a utilizarse debe ser d d tipo
par trenzado (Twisted-Pair), que consiste en dos conductores aislados retorcidos entre si con lo
cual se consigue una mayor inmunidad al ruido electromagntico, si el cable tiene udieionalmcnte
una hoja conductora (blindaje) rodendolo, se obtiene ms inmunidad.
El presente proyecto consiste hacer una transmisin recepcin entre dos PIC'S con una interfaz
RS485 y en modo de transmisin full-duplex comnmente visto en centrales de alarmas.
Su funcionamiento consta de la siguiente manera: al arrancar los micros ambos hacen
encender los leds rojos por un instante, esto nos indica que empezaron a funcionar, el transmisor
consta de 2 pulsadores y un led, y el receptor de 2 leds. un rojo un verde y un pulsador, cuando
presionamos el pulsador A del transmisor enciende el led rojo y presionando el pulsador B
enciende el led verde, bien hasta aqu hemos realizado una comunicacin de un slo sentido,
jMATERIALES
I -cable de 2 pares de hilos, preferible del tipo par trenzado
-3 leds dos rojos y un verde
| -3 resistencias de 4.7 K 2
-3 resistencia de 3302
I -3 pulsadores NA
, -2 PIC16T628A
l -2 circuitos lineales 75176.
Finura 5.9.9.1. Diagrama de conexin para hacer una comunicacin serial desde un P IC hacia
or o PIC con interfaz serial RS485.
rojo:
H IG H led encender led rojo
PAUSE 200 esperar 200 mis
LO W led apagar led rojo
P A U SE 200
RF.TURN :retomnr al osub que lo envi,
perfecto: encender 2 vece* el led rojo
G OSUB rojo
G OSUB rojo
G O T O recibiendo ir 11 recibiendo
KND
F isura 5.9.9.2. transmisor-RS485.nbp Programa para enviar datos PIC a PIC' en interfaz A.S'.M?
O k l: sunutina okl
GO SUB rojo :r y retornar de rojo
G O T O recibir
ok2: subnitina ok2
H IG H ledv encender el led verde
PAUSE 200
L O W ledv
G O T O recibir.
Fifiltra 5.9.9.5. receptor-RS485.pbp Programa para recibir datos PIC a PIC en interfaz RS4H5.
Como pueden ver en la pantalla de la derecha hemos creado 3 botones con la herramienta
commandButton, si desean pueden cambiar el texto de command3 por ejemplo por RELE, para
esto primero debemos seleccionar el objeto en este caso command3 v en propiedades del objeto
que se encuentra al lado derecho especficamente en |Caption ,Comnuind3 lo borramos y
escribimos |RF.I L, en el otro botn escribimos .E P | y en el ltimo [SONIDO). quedar eomo
ilustra cl siguiente grtlco:
40L2
n t
riWn tiU "tt* Cr*n ItrtnUa 0k 4m*o6x CWMtat UWQftrM i|s;ante<n Cosjrincn vom11*
W m rM & tSSst i; jr j ! . . . U .
t e w
| iWtwlt*.! ; 'a a ' .
T' CwAni t f O. O) j r rr r riin i (nxiB4rr <nr
U i/J it _ j - _
\ . *VmW( CtirJ
14 J - S i IV
'> n u ! iCO U . C^ArJ i . 9 f,03)
%m.*4rCir(jti2.0 5-c
VUvAl >wt (mtit . . E B3
c u , . * . o<iU .o<j)
L .^ rx A C M u b jtlL U Cu Ai\ n i il rin.
j.UJJionn -I ~
i - u -c vv> - jij:
>*-rfi'n itlir rrin t j wii
iuvcw^5TE^urcp; wVct> I
1 1
Clic Derecho
Aqu "
Para habilitar la comunicacin serial, damos un clic con el botn derecho sobre el cuadro General
y escogemos la opcin componentes, luego saldr una pantalla con una lista de componentes y
buscamos M icrosoft Comm C ontrol 6.0, seleccionamos y damos clic en Aceptar, notaremos que
ahora aparece un icono nuevo un telfono, colocamos este telfono en la form, y en las
propiedades |Commport podemos modificar si es com o com2, tambin modificamos la
velocidad de transmisin que por defecto viene con 9600.n.8.1, y tambin colocamos un Timer.
Figura 5 .9. JO. J. Tabla que muestra ios cambios de nombre a realizar.
A continuacin una imagen que muestra cmo se cambia el nombre de un objeto, observen que se
seleccion el Circulo y en el lado derecho deca (Nombre) Shapc2. se lo cambi por (Nombre)
CIRC U LO /- de esta manera cambiamos a los 8 objetos ya indicados anteriormente con los
nombres que aparece en la tabla de la figura 5.9.10.1
& si
I *1
;C tfllll|y 1 *
'luJZiSM7-
b is v
[fu rlvM
(Vj-r1. . )
tXW.*1" I I>*tN UUh tt| i
iwdwttearjicl'w-
y ..\ . : m
End Sub
Aqu escribimos habilitar el puerto y correr el Timer con intervalos de I mis, y empezamos a
programar cada uno de los botones.
Esto quiere deeir que cuundo se ejecute este programa corra su contenido, es decir abra el puerto
eom y empiece n correr el Timer con intervalos de 1 mis.
3? B 3 to ( ~ 7 ) i y ,* * l n ?,C o M
C 3 J : CJ
^ P> P r o y e c to J (C om p uter conb
lr i v o t a Su ron_I.oac |)
b* Fotniuorc;
KSCojarl. lor tOpen - T ru - ' h a k i l u n r el p u e rto 1
ti FnmJ (cortioJc.ffm)
Timtt 1, I n te r v a l - 1 co r ro e t i it f * 1 s i o
EuJ Sub
P r v a t e Sub 3C W T D O J_cl c k ( )
MSCoimi. O ucput - "o a l r r e a io a e c a v i a r Ja 5
End Sub
P r v a t e Stfe b j C l i c k ( j
n3Canwl .O urput I. *a c c ts b o te n v n v ia Ja L
Eml 3tf> ___ _____ ____
P r v a t e SUb S tC Z jC lleJc Forml Pena
i:sCuni'l.OucpuL - "II" ' c a c e JjotCr e n v a l a P.
F.nd S u b ..
.tfsMoc PrtM
P rv a te Sub fjM C J _ T J iw rO ffw.l 3
A - riSConnJ. le p u t - ! d a to que m o r e r a g u a r d a r lo rn i-ro ^
12 A - "D " Theu ' sj t es u:>a O m o n t e o
BB CIRCULOZ. PiL lC O lor - Q D Color(12) ' p i n t a r l o da r o j o
EnJ I f
If A - **E" 'ni X es u n a SC n t r u i c e e (N o m b re )
Devucb efotrtfcte io d * H ccdijc*
[o**trWcvinbloto.
r D o b le C l i c a q u ^
Si se quiere hacer comunicacin slo desde el PC al PIC y no desde el PIC al PC, borramos las
lneas desde donde dice: Prvate Sub T im erl_T hier( ) hasta el final del programa, tambin
debemos borrar la lnea que dice T im erl.lnterval=l. y en la form borrar el Timer, y dejarlo el
telfono, ya que s lo necesitamos para enviar datos desde el PC al PIC.
P rv a te S ub Form _Load()
MSComm 1.PortOpen = True 'habilitar el puerto 1 ,
TimerI.Interval * 1 ccrrer cl timer a 1 mis
End Sub
P rv a te S ub SO N W O Z_Click() ;___
MSComm 1iOutput - "S si presiona SONIDOZ NONirxS enviar In S
I ml Sul)
P rv ate S ub LEPZ_C lick()
MSComm I .Output = "L" 'si presiona el botn LF.DZ |LED enviar la 1
End Sub
P rvate Sub R E L E Z ClickO
MSComm 1.Output = "R" 'si presiona RF.LEZ RELE enviar la K
End Suh
P rvate Sub T im er 1 FimerO
Figura 5.9.10. J. Programa para recibir y enviar dalos desde el VISUAL BASIC' 6.0 a un PIC.
NOTA: todo lo que est con trama gris, seria cl programa necesario para nicamente transmitir
desde el PC al PIC, lo dems podemos borrarlo, junto con cl icono de la form (cl Timer).
NOTA. Para mayor comodidad si usted no dispone del programa VISUAL BASIC, facilitamos
un archivo ejecutable que usted puede copiar en su computador, junto a otros 2 archivos de
sistema necesarios para que corra este programa, una vez que ya disponga de este, programa de
control; Usted podr real izar esta prctica.
M A T E R IA L E S .
- 1 led rojo
*2 resistencias de 4,7 K fi
- 1 resistencia de 330
- 1 resistencia de 220 2
-1 resistencia de 22 K 2
-2 transistores 2N3904
-I rel de 12 voltios
-I chicharra activa
-I diodo rectificador 1N4007.
Figura 5.9.10.2. Diagrama de conexin para el control computen-izado con Visual Basic.
NOTA: S desea extender la distancia de los cables y decide utilizar el C!. MAN232, debe
cam biar lodos los N9600 pr T9600.
Inicio:
SERIN portb.0.N9600.serial .esperar por dato serial y guardarlo
IF seral-"S" TH EN sonidos si el dato es una S ir a sonido
IF serial-"!." THF.N leds ;si el dato es una L ir a leds
IF serial="R" TH EN rels si el dato es una R ir a reles
sonidos:
IF seci= 0 TH EN bandera para la chicharra I On y 0 es OFF
H IG H chicharra
SER O U T portb.I.N9600.|"H ] enviar H diciendo que est prendido
s c c i= r
G O T O inicio
END IF
IF s e c 1=1 THEN
LOW chicharra
SER O U T portb.I,N 9600,[T'] enviar I diciendo que est OFF
see I =0
E N D IF
G O T O inicio
leds:
I F sec2=0 TH EN
IIIG H led
S ER O U T portb. 1,N9600,f"D"] enva D diciendo que el led es ON
scc2=l
G O T O inicio
ENDIF
lF sec2=l TI1EN
L O W led
SER O U T portb. LN9600.1"E"] enva E diciendo que el led es OFF
sc2=0
ENDIF
G O T O inicio continua
Figura 5.9.10.3. Control-Vi*ual-Basic.pbp Programa para enviar v recibir datos desde el P /t'
Como para probar si los dalos que salen del PIC son correctos, puede conectar a la ventana de
comunicacin serial de microcode, a 9600 ha m rate, y en Transmil, envi las letras maysculas
una por una la S, S, I.. L. R. R. y de respuestas debe recibir lo siguiente: IIDEGF.
Figura 5.9.10.4. Pantalla de comunicacin serial con lo datos de respuestas s i est activado la
chicharra!II) p uo(I), encendido e l Icd <D) o tio(E), conectado cl rel <G) o no (F).
La comunicacin con cl programa hecho en Visual Basic es similar, con la diferencia que esas
mismas letras activa la palabra ON. cambia de color cl circulo, y activa la linea NO.
Muchos de los dispositivos electrnicos que se encuentran comnmente en una tarjeta electrnica,
incluyen circuitos integrados con cl bus PC desarrollado por PHILIPS, como por ejemplo lar
memorias 24CXX. los procesadores de seal, codificadores de video, sensores de temperatura.
RTC (reloj en tiempo real), sensores ultrasnicos, etc.
lil bus PC (Inter Intcgratcd Circuit) o interconexin de circuitos integrados necesita slo
2 lineas para transmitir y recibir datos, estos son: para datos (SDA) y para la seal de reloj (SCL),
esta Corma de comunicacin utiliza una sincrona con un tren de pulsos que viaja en la linea SCL.
de tal manera que en los flancos negativos se revisan los datos RX o TX. Ver figura 5.9.12.2.. su
velocidad de transmisin pueden ser de lOOKbits/seg. en el modo standard. '100Kbts/seg. en el
modo rpido y 3,4Mbits/seg. en alta velocidad. Cada dispositivo conectado al bus tiene un cdigo
de direccin seleccionable mediante software, por lo que existe una relacin permanente
Mastcr/Slavc. F.l Mster es cl dispositivo que inicia la transferencia en el bus y genera la seal de
reloj (SCL), y el Slave es el dispositivo direccionado, sin embargo cada dispositivo reconocido
p o r su c.dioo (direccin), puede operar como transmisor o receptor de datos, ya que la linca
(SDA) es bidircccional.
Lsta es una prctica muy bsica para aprender sobre la interfaz PC. consiste en guardar datos en
las cuatro primeras direcciones de la memoria serial, estas son utilizadas para el almacenamiento
de datos que pueden ser necesitados ms adelante. Para el caso de la memoria 24LC04B tiene un
espacio de memoria de 4Kbyics, luego de almacenarlos los volveremos a leer y mostrar en la
pantalla de un LCD.
H
= C digo de fabrica Oireccln del a Direccin de la memoria a trabajar (3)
to m em orias 24LCXX dispositivo g 3
C ontina aqu
SOL
njim m jiJLruu ~ libro para
prxima transm isin
0 0 0 0 0
I 1 1 h -
0 1 0 0 0 0 0 1 0 5
oI I0 ^ 2
Dato a alm acenar en la m em oria |
letra A" ASCII 65 binarlo %01000001 2
Fifiu n 5.9.12.2. Esquema de una transmisin completa con la interfaz FC para guardar el
nmero 65 en la direccin 3 ds una memoria seria! 24LC04B.
Noten que la direccin del Cl. A2. A l. A0 es 000, lo que quiere decir que estos tres pines van
conectados a tierra, segn la tabla 5.9,12,1. se pueden instalar 4 dispositivos de memoria en un
bus, estos son empezando por A2, Al y A0 los siguientes: 00xt OIx, lOx y I Ix, por ejemplo.
01 x esta memoria debe tener conectado a 5 voltios el pin AI y su control sera 10100100.
Tambin cabe indicar que existen algunas memorias que necesitan de un perodo de tiempo para
poder ser grabadas, por lo que se adiciona un PAUSE 1 despus de cada grabacin.
Su estructura es de la siguiente manera:
MA TEM A LE S
-l LCD 2 x 16
- 1 resistencia de 4,7 K l
-I resistencia de 10 2
-1 potencimetro de 10 K Q
-1 memoria serial 24LC04B de microchip o equivalente
-1 switch selector de 3 pines._______________________
Figura 5.9.12.3, Esquema de conexionado de una memoria 24LCXX a un TIC, el switch selector
perm ite proteger a la memoria d t escrituras accidentales a l colocar en R Read.
Inicio;
LG DOU T S fe ,lG ra b a n d o .. limpiar y sacar el texto en LCD
PAUSE 1000
PAUSE 1000
LC D O U T SM-,1 limpiar pantalla del LCD
END
Ff>ura 5.9.12.4. memoria 24l.CXX.pbp Programa para escribir)' leer dalos en un chip
EEPROM.
Como habamos dicho anteriormente el bus I2C, permite la comunicacin con algunos
dispositivos como los memorias 24CXX. los procesadores de seal, codificadores de video,
sensores de temperatura, RTC (reloj en tiempo real), etc. Haremos un proyecto de lectura y
escritura de un RTC (Real l ime d o c k ) , este proyecto es muy similar al anterior, pero con la
diferencia que cl byte de control es % 1 1010000. (propio del fabricante), y su modo de grabacin
de datos es en sislema hexadecimal.
Una aclaracin importante es que por ser ur. experimento los datos a ser almacenados
sern: l.unes 27 de septiembre del 2004 y la hora 13:32:00, pudiendo ser cambiado a gusto del
lector. Estos datos sern grabados una sola vez. ya que se utilizar una condicin de bandera, esta
ser almacenada en la memoria EEPROM del mismo PIC y se llamar (actualizado = I), significa
que ya corri una vez el programa, por consiguiente si se lo vuelve a prender el PIC. no guardara
nuevamente los datos, esto tiene la finalidad de que los datos fecha y hora sean una sola vez
igualados, para que cuando usted vuelva a encender el PIC. muestre la hora actual.
MATERIALES.
-1 LCD 2 x 16
-1 resistencia de 10 Ll
-1 potencimetro de 10 K Cl
-I RTC DS I307
-3 resistencias de 4.7 K l
- 1 resistencia de 470 2
-I transistor 2N3904
-1 led rojo
-1 oscilador cristal de 32768 117. (comn en los relojes de mano y pared)
-1 pila de ' V (CR2032). con su porta pilas ver figura 5.9.13.3. ____
Figura 5.9. /.?. I. Esquema Je conexionado Je un RTC con el PIC para un reloj calendario.
LCDODT 1>fe. I ,IIEX2 hora,":". IIEX 2 minu.":". IIF.X 2 segu mostrar Ja hora
: mjn y segs. en 2 dgitos (H FX 2)
LCD O T Sfc,$e0 saltar a la 2da lnea del IX D
mostrar da de la semana
IF d iaS -$ l THEN LCDOUT "Dom."
II diaS $2 THEN LCDO UT "Lun."
IF daS-$3 T H E N LCD O U T "Mar."
IF diaS^S-i T IIE N L C D O U T "Mi."
IF:daS=S5 T H EN LCDOUT "Jue."
IF d iaS $6 TH EN LCDOUT "Vie."
IF d iaS -$7 T H EN LCDOU T "Sab."
subrutina grnbr
grnbarRTC:
Figura 5.9.13.2. reloj DS1307.pbp Programa para escribir y leer Jatos en un RTC DSI307.
Figura 5.9.13.3. Fotografa de un mdulo RTC del entrenador experto de P IC 'S F.F.-02.
1. llaga un proyecto en cl que el PIC muestre un mensaje en 2 lincas del LCD que son
enviados desde la ventana de comunicacin serial de microcode.
2. Conecte 2 PIC'S en serie y enve texto desde un teclado hexadecimal hacia el otro PIC el
cual lo presentar en la pantalla del LCD.
3. Haga un tablero de control en VB para un motor PAP. que contenga 2 botones de los
cuales el uno hace girar en sentido horario mientras permanece presionado, al soltar cl
botn el motor debe detenerse, cl 2do botn funciona igual slo que en cl otro sentido.
4. Utilice un LCD, un PIC y una m emoria serial para cl siguiente proyecto: desde la ventana
de comunicacin serial de microcode, enve un texto a 2400N8I, el PIC lo muestra en la
pantalla del LCD y luego almacena en la memoria serial, al enviar desde el computador la
letra L, el PIC debo interpretarlo como leer el dato de la memoria y enviarlo al
computador, si el PC enva una B. cl PIC debe borrar el contenido de la memoria, para
probarlo simplemente enve nuevamente la letra L desde cl PC.
5. Con el proyecto del reloj calendario, haga que el PIC active una chicharra por 200mls.
cada MINUTO.
Existen aplicaciones en donde un evento es muy importante atenderlo, por ejemplo cuando algn
dispositivo intenta comunicarse con el PIC, en un sistema de seguridad en donde una zona es ms
importante que las dems zonas o como el ejercicio anterior en donde cada segundo enva un
pulso SQW, podramos utilizar este pulso para indicar al PIC que debe leer los nuevos dalos
(segundo, minutos, hora. e tc .).
Como prctica para poder entender la inljrrupcin en el cambio de estado del Portb.0.
haremos un parpadeo de un led rojo cada 200ntls, y cuando exista una interrupcin externa
(pulsador), deja de ejecutarse el programa \ atiende un Handler (subrutina) el cual contiene un
programa en donde ae enciende un led verde por 1 segundo, una vez terminado cl programa de
interrupcin, retoma al programa principal en el lugar mismo donde ocurri la interrupcin.
NOTA: Tambin existen otras fuentes de interrupcin a ms del puerto B.0, como el cambio de
estado del puerto B.4 al Puerto B.7. los TIMBRO, 1 y 2, por lo que se recomienda leer las hojas de
datos del PC16P628A.
DISABLE; sirve para deshabilitar la interrupcin, en caso de que no deseemos que atienda la
interrupcin, como por ejemplo cuando ya est atendiendo una interrupcin.
EXABLE; quiere decir habilitar nuevamente la interrupcin, despus de esto todas las
interrupciones, son atendidas.
DISABLE
verde: ;hnndlcr de la interrupcin
HIGH I I D2
PAUSE 2000
LO W LED2
INTCON - % I 0 0 10000 ;lnbilitn la interrupcin B.O
R ESU M E ;retoma a programa principal donde ocurri la inte.
ENABLE iHabilita las interrupciones despus del handler
END
F igura 5.10.1.2. intenupt.pbp Programa para practicar con la interrupcin en el puerto B.O.
Como pudieron observar, en el momento que se presiona el pulsador, automticamente sale del
programa y atiende el handler de interrupcin llamado verde, finalizado esto el RESU M E lo
retorna al lugar en donde ocurri la interrupcin, sin embargo se puede poner RESUM E prog3,
esta vez va a una subrutina prog3 e ignora el retomo al lugar de la interrupcin, otra
recomendacin importante es que si queremos atender rpidamente una interrupcin, no debemos
poner PAUSES muy largos como por ejemplo PAUSE 1U0. equivalente a 10 segundos, si se da
la interrupcin en la mitad del pause (5 segundos), deber esperar a que termine el pause para ir al
handler de interrupcin, es decir los 5 segundos restantes, lo mejor para estos casos es encerrar el
pause en lazos FOR... NEXT. de la siguiente manera:
f OPTION KF.G.6-0 ;modifica el bit 6 del registro Q PTION. activa en flanco de bajada a B.O [
Para trabajar con la interrupcin por cambio de estado del puerto b .l al puerto b.7, podemos
utilizar el mismo programa 5.10.1.2, solamente cambiando las 2 lneas que dic-cn
INTCON=% 10010000 por lNTCON=% 10001000. que quiere decir habilitar In interrupcin de
los puertos B.4 al B.7. para mavor informacin revise en los Datasheets el registro IN I CON.
Para el diagrama de conexin del>emos colocar 4 pulsadores en los puerto B/1 al B.7. no
se debe dejar sueltos estos pines ya que produce errores y salta al handler de interrupcin en
cualquier momento. Se puede desconectar el pulsador del puerto B.O. ya que no se estn
atendiendo esta interrupcin.
El TMR0, es una valiosa herramienta que disponen los PIC'S. para el caso del PICI6F628A,
dispone de 3 TIMERS. 1 de 16 bits (TM R1) y 2 de 8 bits, los TMR0 y TMR2. la calibracin para
estos contadores, se dan en el registro OPTION. aqu se puede seleccionar si el incremento es con
flanco de subida o de bajada y si la fuente es externa (pin A4/IOCK1) o interna (Oscilador), en
nuestro caso ser interna generada por el Oscilador. Cuando el conlco del temporizador TMR0,
llega a 256 > pasa a 0. se genera una interrupcin, para que esto suceda se debe habilitar el
registro INTCON bit 7 (GIE = I), y tambin el bit 5 (TOI1: ~ 1). quedando asi:
Para poder entender mejor estos registros y sus funciones tenga a la mano la hoja de datos.
La prctica a realizarse consiste en ejecutar una interrupcin, cada vez que el contador del TMR0,
llega a 256, pero no empieza desde 0 ya que se le asign un valor inicial de 4 ( ver la lnea # 70
de! programa 1MRO-reloj.pbp). por lo que el tiempo sera 128 x 252 = 32256 Us v esto repetido
31 veces, conseguimos acercarnos ms al tiempo de 1 segundo (32256 Us x 31 ~ 999936 Us).
luego de esto se incrementa la variable segn = segn +1 y se actualiza el LCD.
El proyecto dispone de 2 pulsadores para poder igualar la hora, uno aumenta los minutos
y otro aumenta las horas, la gran desventaja de este proyecto es que si se corta la alimentacin
M A T E R IA L E S .
-1 1.Cl) 2 x 16
-1 resistencia de 10 l
-1 potencimetro de 10 K 2
-2 resistencias de 4.7 K "2
-2 pulsadores NA (Normalmente Abierto)
-1 oscilador cristal de 4 M il/
| -2 capacitores cermicos de 22pF. : J
Finura 5. / 0.3.1. Diagrama de conexin para hacer un reloj digital con interrupcin en el
contador de! TMRO, se utiliz un cristal externo para conseguir mayor precisin.
INICIO:
IF POR IB .7 ;0 TH EN inemin botn para igualar minutos
IF PORTB.6 - O T H E N inchr botn para igualar horas
RF.SIJ M F. Ll
EN
I
Figura 5.10.3.2. TMRO-reloi.pbp Programa para practicar con la interrupcin del TMRO.
2. Haga un parpadeo de un led cada 200 mis. en el puerto B.2, habilite las interrupciones del
puerto B4 al B7 y coloque un pulsador en cada pin, en la pantalla del LCD debe indicar cl
puerto el cual se activ una interrupcin, pulso cualquiera de los '1 botones.
Conversores A/D - - 5
1:1 PIC16F81X al igual que el P1C16F628A. disponen de oscilador interno, pero el PICI6F81X
dispone de 8 calibraciones para el oscilador interno, desde 31,25 KIIZ hasta 8 MIIZ.
Para poder empezar a practicar con este nuevo PIC.. liaremos un ejercicio de lectura de un
conversor A/D del PIC16F8I9, su funcionamiento es muy simple, los pines del puerto A (AO. A l.
A2. A3 y A4), son capaces de detectar el nivel de voltaje que ingresan a ellos, por ejemplo: si
utilizamos un conversor A/D de 8 bits, quiere decir que entre los voltajes de referencias, digamos
que V rcf-- OV. y Vref+-=5V., los 5 V. los dividir en 255 segmentos. (19.6 mlV.). entonces si a la
entrada del pin A/D ingresan 19,6 mlV. el registro ADCJN nos entregar un valor de 1, y asi
tenemos que para:
OV ADC1N =0
2.49V ADCIN= 127
5V ADCIN= 255
F.n definitiva nos dice que voltaje est entrando por un pin pero en valores de una variable
de 255. para poder entender mejor haremos la siguiente prctica que consiste en calibrar el
oscilador interno a t MIIZ. leer el canal 0 a 8 bit (puede leer a 10 bits) el voltaje que ingresa y
mostrarlo en un LCD.
Para poner en funcionamiento los conversones A-D. debemos cambiar unos bits del
registro ADCON l, ver tabla de la figura 5.11.1.2., en donde se debe configurar cual es el canal o
los canales que deseamos utilizar, asi como tambin cuales son los voltajes de referencia. F.n
nuestro caso utilizaremos ADCON 1=%00001110, que significa que slo vamos a utilizar el canal
0 (A.0) con voltajes de referencias positivo y negativos, los mismos que utiliza el PIC para su
alimentacin, es decir en este caso 0 y 5V.
M A T E R IA L E S.
-I PIC16F8I9
-I LCD 2 x 16
-1 resistencia de 10 CI
-2 potencimetros de 10 K 2. ______________ ___________
Figura 5.11.1.2. Tahla de configuracin para el registro ADCONJ, noten que AD C O N I~7
corresponde a PCFG = 0/1 x. por lo tanto lodo el puerto A se convierte en pines digitales, algo
parecido ocurra con el C \lC O N= ? del PIC16F628A. este apagaba los comparadores de voltaje
y Ios volva en pines digitales.
Figura 5.1!. 1.3. Conexin de un potencimetro de OK para obtener un divisor de voltaje desde
OV. hasta 5 V.. trate de poner el potencimetro en 2.49 V. y observar en el I.CD el dato 127.
Otro cambio importante es que los pines que controlan al LCD, no pueden ser los predefinidos
por pbp, por lo tanto debemos cambiarlos de posicin utilizando DEFINE.
inicio:
A DCIN 0. datos ;lee: el canal 0 y guardarlo en dalos
LCD OU T Sfe, 1." valores:"
LCD O U T $fc,$c7. DEC datos desplegar el valor de datos en decimal
PAUSE 300
Figura S A I. 1.4. AD-16F8l9-8.pbn Programa para practicar con ei conversar anlogo digital.
En esta prctica utilizaremos 3 conversores A/D de les 8 que dispone el PIC16F877A, este PIC se
caracteriza por tener <10 pines, de los cuales 33 son puertos de entrada/salida, una memoria
FLASH de 8192 palabras, una RAM de 368 bytes y una EEPROM de 256 bytes. por lo que este
PIC est destinado para proyectos grandes. Esta prctica nos servir para poder familiarizarnos
con PIC'S de mayor capacidad, cabe recalcar que este PIC necesita oscilador externo, ya que no
posee oscilador interno, tambin debemos utilizaren el MCLR una resistencia Pull-tJp. ya que no
hay forma de deshabilitarlo como sucede con el PIC 16F62X o el PIC 161'81X.
D-^Digital A= Anlogo
Figura 5.11.2.1. Tabla de configuracin para el registro ADCON1 del PIC16F877A. noten que
ADCON1= 7 convierte en pines digitales todos los pines del puerto A y puerto E.
Figura 5.11.2.2. Esquema de conexin de un PK'16F877A para medir tos 3 voltajes que
ingresan por el divisor de voltaje de cada potencimetro.
Inicio:
PAUSE 300
poten I :
ADCONO =% 1000001 activar canal 0 a Fosc,-8
GOSUB medir
p l - ADRBSH
p o ten 2 :.
A DC ONrt -% 1001001 activar canal 1 a Fosc/8
GOSUB medir
p2~ ADRESII
pot.en3
A DCO NO -% 1011001 activar canal 3.a losc/8
GOSU B medir
p3~ ADRESH
LCD O U T $fc, L " Potl Pot2 Pol3n limpiar LCD y sacar texto
L C D O L T Ste,Sc 1, pl casilla 1 el valor decimal de pl
LCD OUT Sfe.$c6,p2 casilla 7 el valor decimal de p2
L C D O L T $fc,ScM p3 casilla 12 el valor decimal de p3
G O T O inicio
Para esin prctica necesitaremos cl sensor de temperatura LM35, este dispositivo presenta on su
pin OUT una variacin de 10 mV por grado centgrado, su alimentacin puede ser de 4 a 30
Voltios, y su rango de temperatura a sensar entre -55nC hasta 150 C.
Su funcionamiento es muy simple, primero el voltaje del pin om del LM35. lo vamos a
duplicar a travs de un juego de amplificadores operacionales (I.M35X). el cual est configurado
corno amplificador no inversor, la salida del A.O. LM358, lo conectamos al puerto A.0, el cual
est configurado como conversor A/D a 8 bits, este dato se almacena en la variable dato, cl cual
lo dividimos para 2. con la finalidad de estabilizar la seal que ingresa del pin OUT del LM35. Si
la temperatura permanece entre 22C y 26C\ ninguno de los rels se activa, si la temperatura no
se encuentra entre estos 2 rangos, se activa el rel que le corresponde, sea pura calcular o enfriar
cl ambiente, si deseamos modificar los rangos de temperatura, presionamos el pulsador F., con los
otros 2 botones aumentamos o disminuimos la temperatura mnima a comparar, y una vez que
estemos de acuerdo presionamos la tecla I nuevamente, luego nos pide programar la temperatura
mxima, procedemos igual que cl caso anterior y cuando presionemos la tecla L, parpadear fres
veces cl led. indicando que los nuevos valores ya fueron guardados en la memoria no voltil
M A TEM ALES,
-1 PIC 161*877A
-1 LCD 2 x 16
-1 resistencia de 10 Q
sensar:
ADC N 0, dalo ;leer el canal 0 (A0) y guarde en dato
LCD OUT $fe, 1, "T.nti T.actu T.m" limpiar LCD y sacar texto
dalo =* dato 12 ;el dato di\ idir para 2
LCD O U T S.es$ e6J)E C dato,M
oC" Display el decimal de dato
LCD O U T Sfc,$c0,DEC tempbaj,"oC" Display cl decimal de temphaj
LC D O U T Sfe.Scc.DEC tem palt/'oC" Display el decimal de tempalt
FO R x - I T O 50 repetir 50 veces
IF enter ~0 THF.N grabarla
PAUSE 10
NEXT
calentar:
IIIG H reeC L O W releF
G O T O sensar
enfriar:
HFGH rele : LOW releC
G O T O sensar
grabarla:
GO SUB soltar
grabar I :
LC D O U T $fe. 1. "Programar temp."
LCDO UT $(e,Sc0,"baja~ ".DEC tcm pbaj," oC"
PAUSE 100
IF bbajar=0 TH EN restar 1
IF b su b ifO T H EN sumar 1
IF enterco TH EN grabar A
G O T O grabar 1
restar 1:
GOSU B soltar arograma antirrebotc de tecla
IF tempbaj < 1 T H EN grabar I
tcm pbaj- tempbaj -1 continua ..
grabar A:
G O S U B soltar
W R ITE 0,tempbaj escribir en la direccin 0 de la FlPROM
g ra b a r!:
LC D O U T Ste, 1. "Programar temp,"
LCD O U T $le,$c0,"nlta- *\dcc tcm palt," oC"
PAU SE 100
IF bbajar0 TIIFN restar.
IF bsubir-0 THEN sum ar!
IF enter=0 THF.N grabarB
G O T O grabar2
restar!:
GO SUB soltar
I F tempalt < 5 TH EN grabar2
tertipalt- tcmpalt - 1
G O T O grabar!
sum ar!:
GO SUB soltar
IF tempalt > 50 T H EN grabar!
tcm palt- tempalt 4 1
G O T O grabar!
grabar B:
GO SUB soltar
W RITF. I .tempalt escribir en la direccin 1 de la EEPROM
(O T O inicio
Figura 5AJ.3.2. I .M 35-tem p-16F877A .pbp Programa para medir la temperatura ambiental.
En ocasiones existen proyectos en los cuales no se necesitan ms de *1 0 5 pines del PIC. un PIC
de 16 1/0 seria un desperdicio, por tal razn se incluye un pequeo ejercicio de un parpadeo de
leds en cl puerto gpio. el objetivo de esta prctica es familiarizarnos con esta familia de P IC S .
PIC12F629 PC12F675
Memoria de programa I02'l 1024
Memoria datos EEPROM 128 128
Meiuui iu RAM 64 64
Pines de entrada-salida 6 6
Comparadores 1 1
Conversores A/D - 4
Como podemos observar la nica diferencia enlre estas dos subfamilias es que el uno dispone de
conversores A/D y el otro no. el ejercicio haremos para el PICI2F675 y para hacer que funcione
en un PIC12F629, slo debemos eliminar la linea que configura el conversor A/D ANSEL-O. ya
que este ltimo no dispone de tales conversores A/D. su oscilador interno RC da una frecuencia
de 4 MHZ, sin embargo podemos utilizar un oscilador extem o de hasta 20 MI 1Z.
M A T E R IA L E S .
-1 PICI2F629 o PIC12F675
-5 resistencias de 330 1
-5 diodos leds.
5 V.
1
Figura 5. / 2.1.2. Esquema de conexin del PICI2F6XX. el GPIO. 3 es de colector abierto(MCLR)
............. ............. M icrocontroladores PIC Programacin en BASIC -------------- j 75
( VK'ON'-Vol 11 apaga comparadores de voltaje
ANSEL=%0000 apaga C.A/D iodos los pinos del GPIO digitales
X VAR BYTE crea variable de 255
INICIO
F O R x =l T O 3
g p io r% 1 10111 encender los leds de todos los leds (menos el gpio.3)
PAUSE 200
gpio-% 000000 apagar todos los leds
PAU SE 200
NEXT
PAUSE 1000
G O T O INICIO
END
Al igual que el PIC16F628A, el MCI.R puede ser habilitado o no justamente en los fusibles de
programacin del IC-prog. Tambin observarn que en el momento de grabar el programa
primero lee una calibracin interna, este dato se encuentra en el ltimo casillero de la memoria
FLASH en la 03F8 y se presenta de la siguiente forma:
U K v>
1C P rog 1 .0 5 0 ' P rogram ador de p ro to tip o s - C :\D x :u m e n ts a n d SettlngS^C AftfO SlM L,,
Archivo Edicin Bufer Ajuste Comando H erram ientas Ver Ayudo
a? Q q fcJF C V
Direcon - Cdyo programa
03C 0: 3FFF 3FFF 3FFF 3PFF 3FFF 3FFF 3FFF 3FFF
0300: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3PFF
031)8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
U3KIJ: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3 F rr
03FI8: 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF
O 3F0: JFF F 3FFF 3FFF 3FFF JFFF 3FFF 3FFF 3FFF
;0 3 F 8 : 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 3FFF 34
3. Kn el proyecto 5.11.3 reemplaze cl LM35 por una Fotocelda y haga que se encienda un
foco de l l Voltios AC. al oscurecer.
Primero que nada debe tener instalado el simulador PROTEUS, luego ejecute el archivo ISIS, se
presentar una pantalla similar al siguiente grfico, al iniciar el programa por defecto est
seleccionado componen!, si no lo est prcsioic (componcnt) luego presione en P (Pick
Devices).
- - ' ' is ili
fOc <tem l<hr l>br<ry Im I Gropti S o u rcr Db*g le m e a tr S y tr m H dp
e | ' - ~ ''
+ V S ^ tS 3 x 0 V T v e /E l ^ W A B 4 -
m m m
nsv*
fifiTus ' n p u w i l T T if Hi-aw
-iit-ju* PIC1F248
Fsrr'iRC-E-js F1C1EC55:BU5 W I7W J57
5 IH I' wr.tc* PICFKB
ru;^inD-K:', ncioaewi* MCttMW
f C E'JS C1C-5C57 pinf.i4H
wpiuw* octavan nc1^452
PlCJCW KC1SCE1 1 C V f4 M
fcirxo;?- RCISCMS 2BC
HC1K63A TfiCCPU
3=ICv2CE5tt PtClC E t Z8CCTC
f lD I E 5 ! ROSC5S3 Z8CDART
rieixee?: nciscoo ZBDMA
9ftCtXE6M PIC1C67 2SCP10
71CSC54 n c iK 7 2 A |VC6SHC1'*43>
C O 51- t i I i II I I 0 01 1H I T 1
Para poder encender el LED. se debe cerrar el circuito con una puesta a tierra, de un clic en Inter
sheet I emiinal g luego seleccione GROUND y arrstrelo a la pantalla debajo del LED.
U N U 3 l.U k t S M 'r o e n lo n !
i
He Vrw l4 t libraiv lool l'rwan I>r4p)i Vjutit tfeUig 'emtate System HHp
S? mrm
l<M.048S
C*d5S;T abcaki -;\
Cl/W
MFAlCT RAZ'MO'/HFl
Cit-TTCTT
SMJ1
OUTfVT KM.T0-
.IMP-J-
5 I0IK . r s w n j ; -
PCWCT ,'pei^.vc-t;
rgr~
E-i P
sef T - , C!vttC
:.
9&TIOKYUCM f-< t
ia*r
G O 7r * l i I II I I hC ftn i
Una vez armado cl proyecto proceda a cargar cl archivo n correr, para esto de un clic derecho
sobre cl PIC. notar que cambia a color rojo, luego un clic izquierdo (si da otro clic derecho borra
el dispositivo), aparecer una pantalla nueva de Fdicin de componente, en este cambie el
oscilador de I MI 17. a 4MHZ y en Program File abra cl archivo hexadecimal led intermitente.hex,
una vez abierto el archivo presione OK.
| T - Hr.il*>
r v c ttt t'J i iw (p o sfc a i H'oJeri i'
g o a u i OxH r -"oje-r.* fe *
P-sjruri C^ri i|ti W jc | i| W i -I
M < r tW iy ( i r t i
' Kdam.-* M qroj '
3 P ' -:;ilw e A I wj
Or*i
'*
O ljtp cc eitci
m u jic o w
HMOAI
MMMSfcftSr
no&ocar su)4iuilhpi
S8
Este es un caso especial ya que el PIN RA.4 no puede ser utilizado para el manejo del LCD. por
tal razn se debe definir una nueva posicin para este PIN. haga un ejercicio similar al siguiente:
& M xniC o< fc.S |u o . PKBASICPH!) {BQMUtELbjsJ
lile I Jft Mew r .a |e tl
' w
^ ' 1X/SMA
* 'J 0 - i ^ >35:!$
2aSe t i l t i c jK t f A ft ?
II
^jDefew* i) o jj x ji e L C D _ t 0 t>ORT*
_fnl, X
D U IIt
di y h it
sc p T -n rr
L C D ' aiirc
0
ro e r
J V#U.
>Alli x D u iu r i C l f KS IT J
17 Dcrziot
X DETIIir
LC & ^tsx'J FC-PTD
IC D E B X T 3
i*
10 ID II
c ause se o
xx ttf. 1
.1200
lcso u t
:i PAUSE
XI LCDOUT
i pau se 1000
IS LCDOUT H e , S eo , "Que c - "
: a c o to i t i
.*?
_ so i m
Hsta herramienta es muy indispensable si desea fabricar un circuito impreso, para ello en la
misma ventana de la simulacin del I.CD. presione ARES l , se presentar una pantalla similar
a la siguiente figura.
Nula: para poder rutear fjese que los elementos a rutear existan en la librera, por ejemplo en la
pg. 180 nte que el PCI6F628A si tiene elemento para PCB. de no ser as saldr un mensaje de
No PCB Package. Tal es el caso del LED RED, cl cual no dispone de PCB Package.
W l fj) l u l o AM/S t t f m i o M I
tic IX A p u t Ir * * CtM U b ijr r Ton*< b y U e itl H c Iji
li tf a tfin i ' a a m s s m ^ o /*
Si desea puede cambiar la forma de las islns. para ello de un clic en O B 8 y ajuste los
dimetros que ms le convenga.
A uto R ouler
. O P EnabloRvnandfWr/i
l.ijgpd P <y Stomoto?'
Ut'Oggcd ! Irniieficlry?
Piule?Optar*
'vf BcutinaParj?
v PYocctworolicfcc?
Estos son los pasos para rutear en un slo lado, primero coloque (Nonc) en Pair l (Hoz), luego en
Stralegy cambie de PO W E R u SIG NAL, coloque tambin en (None) en Pair l (Hoz), finalmente
de un clic en OK y luego otro clic en Ok de la ventana anterior (Auto Router).
Ahora tendr cl circuito ruteado en un slo lado, uqui puede ajustar cl grosor de las pistas si lo
desea, para ello de un clic en Track Placement and editing \ , luego de dos clic derechos sobre
la pista que desee ajustar y en T race Style coloque T30, notar que aumenta el grosor de la pista.
Hr>-iM l i l B l B
lina vez realizado lodos los ajustes puede imprimirlo, para ello abra la pestaa O u tp u t y de un
clic en P rin t...
Para imprimir slo las pistas configure como la siguiente figura izquierda, es decir desactive Top
Silk y luego de un clic en OK. Para imprimir el screen de elementos, tome en cuenta que este
debe estar espejeado y sin las pistas, es decir selecionado T op Silk y M irro r (ver figura derecha).
Cwv 1 ]
1 Efiht'w* FA'l;
> > a C iu o l : i w o Xrimt-rJ <**
V e-jUn C C t t l~ lrr<*3 X V*t*J -* M.r,.
. > W w lC
r .-i * r iw w 11
A ' > n e f 5
: < w * t j
r : -.v x ;'f h w ir s M
K - x - r - -
: {> . r'MmtiI p u m m
y
a C\.
Una vez que usted ha probado su proyecto, pueda que le interese hacer una placa de circuito
impreso como las que hemos visto a lo largo d^l captulo 5, y talvoz un chasis para el mismo, en
este captulo ap ren d a trucos para dar una buena presentacin a nuestros proyectos y trabajos, se
propone un mtodo revolucionario y muy sercillo comparado con los mtodos de dibujo con
marcador pura circuito impreso, revelado y serigrafm, este es la transferencia trmica.
Lo primero que se recomienda es tener todos los elementos electrnicos ya comprados y
listos, para no tener el inconveniente de que una vez hecho la placa to encuentren el elemento
correcto para soldarlo.
Segundo verifique en un protoboard si el proyecto funciona correctamente con todos los
elementos que van a soldar en la placa.
Tercero trate de ver los pines que ms se le acomoden a las pistas, que no se crucen
mucho, que adems estn lo ms cerca posible al perifrico a manejar.
Lo primero que se necesita para hacer una placa de circuito impreso es un dibujo de las pistas
para los elementos, esto se consigue con la ay .ida de un computador, \ de los sofhvarcs CAI)
como PROTKL, PROTEUS, EAGLE, ORCAD. Corel DRAW. o cualquier software de dibujo en
el que usted pueda trazar las lincas y pads del circuito (Paint, Photo SHOP. photo Express, etc.), a
continuacin el circuito de las pistas y el scrccn de elementos, ya realizados en un software:
Una v e/ que se tiene cl diseo de la placa, se debe imprimirlo con una impresora lser o
copiadora (que tengan los cartuchos toner de polvo en color negro), en un papel de transferencia
trmica Press-n-Peel (o papel de transferencia PCB). que lo podemos conseguir en las tiendas
electrnicas n un costo de ms o menos 3 USD cada l eja.
Otra alternativa, la que aqui se utiliza, y adems se incluye en este libro es cl P A PEL
F O T O G R F IC O tipo GLOSSY, de la empresa APL1, para el cual estos son los datos exactos:
Este papel fotogrfico para impresoras de (inyeccin de tinta), vienen en cajas de 10 Und. o 50
Und. (Ref. 04135). El costo de la caja de 10 Und. es de 10 USD. y en algunas papeleras venden
por unidades. Si no encuentran exactamente la misma hoja, pueden utilizar la hoja APLI de 125 g.
de referencia 04451 de 10 Und., o la de ref. 04134 de 50 Und., la nica desventaja que tienen las
hojas de 125 g. es que cl papel se rompe al tratar de separar de la placa, pero sin embargo no es
un problema se lo puede remojar toda la placa y asi desprenderlo con la yema de los dedos.
No olvide que la impresin debe realizarse en una IM PRESO RA LASER o
fotocopiadora y no por una impresora de inyeccin de tinta. Aqui est el truco, el papel
fotogrfico que hemos hablado anteriormente, sirve para imprimir fotografas especficamente en
impresoras de inyeccin de tinta, al imprimirlo en una impresora lser, se da un efecto qumico al
unirse el toner de la impresora con la capa de barniz que tienen estas hojas, (lo mismo sucede con
cl papel Prcss-n-Pccl), el hecho es que si se imprime con la impresora de inyeccin a tinta estas
hojas ya no sirven.
Vamos a suponer que tenemos listo nuestra hoja con dicha impresin, el siguiente paso es
aplicarle calor por el lado reves de las hojas y sobre las placas, para lo cual utilizaremos la hoja
de transferencia que viene con este libro (UNIVERSAL PICmicro5), el calor de la plancha hace
que el toner se derrita, y junto al barniz de la hoja se pegan en la lmina de cobre, para esto se ir
explicando paso a paso todos los procedimientos necesarios, asi como tambin pueden ver la
secuencia fotogrfica sobre cmo hacer placas PCB que contiene el CD en FabricacinPCB\
lvisualizar.exe.
M A T E R IA L E S .
- 1 placa de Baquclita o Fibra de vidrio, de una o dos caras de cobre
-l lija de metal Nro. 150
- 1 esponja de acero, de las utilizadas para lavar platos i lustre, estrella, etc.) que sea fina._________
Primero se utilizar la lmina que contiene el lado de las pistas, la otra parte es decir el screen de
elementos lo utilizaremos posteriormente.
Figura 7..?. 1. Paso l . cortar a daca de 69 x 50 nwi con una sierra o una caladora, esla
ltima les permite cortes ms rpidos y perfectos.
Como pueden observar para utilizar la caladora esta debe estar sujetada en una tabla y con una
guia de aluminio, en la que se regula con unos tornillos la distancia de corte, consiguiendo
igualdad en el tamao de las placas para producciones en serie.
Una ve/ cortado la placa, se debe limpiar las limallas de cobre que quedan en los filos de
la placa, con una lija fina de metal (Nro. 150). Luego de esto se debe limpiar el lado del cobre
donde se va a transferir las pistas con una esponja de acero, notarn que la lmina de cobre
cambia de color, esto porque se est limpiando el xido creado en la superficie y los rayones que
pudiera tener.
Figura 7.3.2. Paso 2. limpiar los filo s del corte realizado y la lmina de cobre oxidada.
M A T E R IA L E S .
- 1 plancha domestica o una estampadora
-2 pedazos de tela de calentador o franela
-1 a placa integramente limpia, (limpiar con esponja de acero)
-El papel con el diseo a transferir ( Press-n-Peel o papel fotogrfico Glossy)_______________
Ahora vamos a realizar la transferencia propiamente dicha de las pistas sobre el Indo de la lmina
de cobre, recuerde esta debe estar completamente limpia y no debe ser tocada con los dedos, para
manipularlo se debe sujetar por los bordes. Primero coloque el papel fotogrfico con el lado de la
tinta sobre el lado del cobre, sin moverlo mucho ntrodzculo debajo de la lela, todo esto sobre
una mesa rgida y luego pase la plancha que debe estar al mximo de la temperatura, aplique
presin con todo el peso del cuerpo por alrededor de 20 a 30 segundos, luego de esto retire e
inmediatamente coloque la placa en otra parte de la mesa que se encuentre fra, con otro trupo
Figura 7.4.1. Paso 3. Aplique presin con una plancha bien caliente p o r 30 seg. y djelo enfriar
presionando con otro trapo para luego retirar el xipel cuidadosamente.
M A T E R IA L E S .
-I recipiente de plstico, (no metlico)
-Vz vaso con agua tibia
-1 palillo de pincho o una pinza de plstico
-I funda de cloruro frrico (en polvo)
-I calentador de agua para peceras (opcional)
Para reducir el cohrc sobrante, es decir el que no est protegido por la tinta y el barniz,
necesitamos preparar un atacador, existen 2 tipos de atacadores: los rpidos y los lentos, los
rpidos como por ejemplo la combinacin de 50 mi de cido clorhdrico y 50 mi de agua
oxigenada, pueden reducir el cobre no protegido al cabo de unos pocos segundos, pero tiene la
desventaja de ser difciles de conseguir en el mercado, los lentos en cambio como el Cloruro
frrico se lo encuentra en cualquier tienda electrnica pero el proceso de atacado podra tomar
hasta I hora. Sin embargo por ser menos agresivo y porque no emana muchos gases txicos,
utilizaremos el cloruro frrico.
Finura 7.5.1. Materiales a utilizar. a la derecha mezcla del cloruro frrico con el anuo.
P EL IG R O : N nc ponga todo el cloruro trrico de una sola vez sobre cl agua, la reaccin muy
brusca podra hacer explotar y producir quemaduras en la ropa y en la piel.
Esta solucin ya preparada, puede ser almacenada en un envase de plstico o v idrio para
luego ser utilizada varias veces, hasta que el cido se contamine tanto que ya no sea posible
corroer placas (debido a que cl efecto es cada vez ms lento), para entonces se debe desechar.
F igura 7.5.2. Introduzca /a placa virgen en la solucin cida. s i el cido ya ha sido utilizado
varias veces y tiene poca accin, introduzca el calentador para peceras.
Una vez que el cido termin de eliminar el cobre expuesto, retiramos la placa del cido y lo
lavamos con abundante agua del grifo, las pistas, pads, etc., en esta fase se ven de color negro,
esto se debe a que el papel se encuentra remojado, pero cuando se seca vuelve a ser de color
blanco, ahora nos resta limpiar lodo el residuo de papel y tinta de 2 maneras posibles, la primera
es utilizando thinner, acetona, o cualquier disolvente, pero esto tiene un efecto secundario si bien
limpia las pistas, un poco de tinta negra se impregna en algunas parles de la placa, dando lu
apariencia de sucia, por tal razn es mejor limpiar con la misma esponja de acero y un poco de
agua, el resultado de la limpieza no deja rastro de tinta y se ve muy ntido.
Figura 7.6. 1. Flaca recin sacada del cido, y limpieza de la tinta con esponja de acero y agua.
Figura 7.6.2. Apariencia que debe tener la placa ya atacada y libre de tinta ftoner + barniz).
bl scrccn de elementos, no es nuda ms que textos, informacin, datos y figuras que indican el
lugar donde se debe insertar los elementos electrnicos, son muy tiles ya que evitan que la
persona se equivoque de lugar al insertar una resistencia, o coloque al reves un diodo, el material
utilizado es un acetato para copiadoras de la marca APLI rofcrcncia 859, tambin se puede
utilizar acctutos para impresoras ink-jet de cualquier marco, este se debe colocar a la misma altura
y posicin que estn las pistas y tambin se debe tener cuidado de no colocar al revs (recuerde
que la impresin de este acetato es espejeado). Para que se adhiera bien, en el caso de placas de
baquciita, se debe lijar bien el lado donde se va a colocar el screen. ya que tienen una capa de laca
o barniz, para el caso de placas de doble cara, al disolverse la cara que no se necesitaba, esta
queda bien limpia y porosa, por lo que no hace falta limpiarle.
Cuando termine de termofijarlo. igualmente proceda a enfriarlo haciendo presin con un trapo,
una vez que est fro retire cuidadosamente el acetato, tendr un acabado ntido ya que toda la
tinta del acetato debe transferirse a la placa, es importante que reconozca cual acetato tiene mejor
resultado, para ello vea cl acetato que quede con menor cantidad de tinta de residuo.
Para el caso de hacer el screen con papel Press-n-pcel, proceda de igual manera, la
diferencia es que debido a una fina capa de material flmico que posee este acetato el screen sale
de color azul.
M A T E R IA L E S .
-1 broca para metal, de Imm de dimetro
-1 taladro o moto-tool (taladro miniatura)
-I pedestal para taladro (opcional). __
l.o nico que hace falta para que la placa est lista es realizar los respectivos agujeros, para el
caso de nuestro grabador de PIC'S necesitamos hacer 51 agujeros con broca de 1 mm. lo ideal es
disponer de un moto-tool o taladro miniatura, ya que estos son de fcil manipulacin, adems
pueden soportar brocas de 0.3 mm en adelante, para este caso se debe hacer una hendidura con un
Figura 7.8.1, Pedestal y taladro con broca de 1 mm. para perforar la placa PCB.
7.9 SO LDADURA DE E LE M E N TO S.
Los materiales que necesita para elaborar cl grabador de PICS. son los siguientes:
M A T E R IA L E S .
a) Un metro de cable de 4 hilos multiflar
b) Un concctor DB9 hembra con su respective cajetn
c) Dos leds de 5mm, un rojo y un verde
d) Un diodo zener de 5.1 V. a /a o I vatio
e) U na resistencia de 470 Q a A de vatio amarillo-violeta-caf
() Una resistencia de I K Q a V* de vatio caf-negro-rojo
g) Una resistencia de 10 K > a % de vatio cafc-ncgro-naranja
h) Un capacitor electroltico de 100 uF/25V.
i) Un transistor N P \ 2N3904
j) cuatro zcalos, (8 ,1 8 , 28 y 40 pines).
Las herramientas y materiales que todo soldador electrnico debe tener son los siguientes:
Figura 7.9.2. Herramientas y materiales que se debe disponer para procesos de suelda'.
PR IN C IPA L E S : k) cautn tipo lpiz de 20W a 30IV con su respectivo soporte. I) pasta de
soldar, tu) alambre de suelda de I mnt de dimetro de estao(60%) y plomo(40%), con centro
de resina n) pinza de corte, o) estilete o bistur, p) alicate de punta.
O PC IO N A L ES: qy pinza pelacab/es. r) sujetador de placas o una entenada pequea.
Figura 7.9.3. Retire los pines que no se necesitan, empujando uno por uno con la pinza de
punta, hasta que queden como el de la fotografa derecha.
I.as resistencias y el diodo, debe doblarlos, a la medida necesaria y con la ayuda de la pinza de
punta:
Figura 7.9.4. Doblar las resistencias y el diodo, de acuerdo a la distancia de las perforaciones,
en e l momeado de insertar ei diodo ten er se debe tomar en cuenta la polaridad.
Se debe seguir una secuencia en la soldadura de los componentes, primero los elementos ms
bajos y luego los ms altos como cl capacitor, de esta manera el orden para ir soldando sera:
resistencias, diodo, zcalos, transistor, leds. y por ltimo el capacitor, luego de lodo esto suelde el
cable con las indicaciones posteriores.
Figura 7.9.5. Doblar las patitas de las resistencias hacia el exterior, sujetarlo en el sujeta placas
y proceder a soldar.
Si usted no dispone de un soporte para placas, puede soldar de la siguiente manera: con la ua de
su dedo ndice sujete la resistencia. El alambre de suelda colquelo al filo de una mesa y con la
otra mano manipule el cautn, como lo muestra las siguientes fotografas:
Figura 7.9.6. Sujete la resistencia con la ua. coloque d alambre de soldar al fdo de una mesa y
sin soltarlo empiece a soldar.
Figura 7.9.7. Una vez soldado los elementos, corle los alambres sobrantes.
Ahora con la pin/a de corte, corte lodos los alambres que sobresalen de la parte posterior, no
olvide guardar el alambre que corte del diodo zener. este le servir luego para sujetar el cable de 4
hilos.
Figura 7.9.8. Pele los alambres con la ayuda de un estilete o un pelacables, luego debe torcer los
filam entos para que permanezcan uniforme.
Figura 7.9.9. Introduzca las puntas del alambre en la pasta de soldar y luego estelo con el
cautn previamente cargado de suelda.
Con las puntas de los alambres estaados, los filamentos permanecen juntos, ahora introduzca en
las perforaciones de lu placa y sostngalo con sus dedos hasta que logre soldarlos.
UNIVERSAL
lOQi.t
6v
Figura 7.9.10. Introduzca as 4 puntas de los alambres y sostngalo con su dedo, luego proceda
a soldar como se aprendi en los casos anteriores.
Una vez soldado los alambres procedamos a sujetarlo a la placa, para que el movimiento no los
rompa, para esto necesitamos empujar el alambre del otro extremo hasta que la envoltura recorra
Figura 7.9.11. introduzca el alambre (residuo del diodo zener) en las 2 perforaciones, y con la
ayuda del alicate de punta doble como ilustra la fotografa derecha.
bn el otro extremo del cable se debe soldar el conector UB9. que nos servir para la conexin del
puerto serial del computador, primero es necesario sujetarlo el conector en un lugar fijo, para
tener ambas manos disponibles para la suelda, estaamos los terminales 3.4,5,7,y 8 y luego
procedemos a soldar cada uno de los cables previamente estaados como se aprendi en la figura
7.9.9. Se debe tener en cuenta c) lugar que le corresponde a cada cable, para esto debe fijarse
como sold en la placa y si por ejemplo el cable caf est en el Nro. 3 pues deber soldar en el pin
3 del DB9. el cable que sold en el Nro. 4 8, debe soldarse con un puente al pin 4 y 8 ( ver Figura
7.9.13).
Figura 7.9.12. Sujete el conector DB9 y estae los terminales, sin o dispone de un sujetador,
podra servirle una entenada pequea, es importante que disponga de sus 2 manos para soldar.
F igura 7.9. /.?. Suelde cada cable en el lugar que le indica cl screcn de la placa UNIVERSAL
PCmicroS. luego colaque e l cajetn del conectar DB() .
t i puente que une el pin 4 y 8 puede hacerlo con cl mismo alambre, soldando pi mero cl un pin y
luego doblando hasta alcanzar cl otro pin. Una vez colocado los cables dentro del cajetn, puede
colocar un poco de sil icn con la pistola trmica, esto lo ayudar a que no se rompa con la
manipulacin del conector.
Para limpiar los residuos de suelda (pasta) que se encuentra en las pistas de la placa, podemos
utilizar un cepillo de dientes que ya no se utilice, introducimos las cerdas en un poco de thinner. y
cepillamos la placa teniendo cuidado de que el thinner no se derrame por cl lado posterior de ln
placa, es decir el screen ya que podra borrarlo.
Figura 7.9.14. Limpie la placa con mucha cuidado, ya que el thinner podra borrar el .screen.
djelo secar y posteriormente puede darle una capa de laca o barniz.
Para evitar que las pistas de cobre se oxiden, se debe dar una capa de barniz en spray para circuito
impreso, este tambin lo utilizan para cubrir el rebobinaje de los motores, una marca conocida es
RA com clcan VARNISH. este le dar un acabado brillante transparente, pero si desea darle un
7 J O C H A S iS O C A J A P A R A P R O Y E C T O S .
Rn este subcaptulo se pretende dar ideas muy prcticas de cmo construir un chasis o caja para
proyectos, primero debemos buscar en el mercado las cajas que podran servimos para contener
un circuito, una de ellas es la caja DHXSON. que se utilizan para colocar tomacorricntes externos.
Figura 7.10.1. La caja para tomacorricntes de la marca DEXSON. es ideaf para provectos.
Figura 7.10.2. Cortamos las tuercas y las pegamos en cualquier lugar que deseemos.
Para fabricar el panel del teclado, primero dibujamos en un programa de dibujo todas las teclas,
luego mandamos a imprimir en acetato con una impresora lser a color, pegamos un adhesivo
blanco por ln parte posterior, con la finalidad de que las partes transparentes se vean blancas.
Figura 7.10.3. Corlamos una lmina de acrilico y lo practicamos los agujeros p or donde
pasaran las teclas, imprimimos en una lmina de transparencia (acetato) los dibujos de las teclas
y o pegamos sobre el acrilico.
En el mercado se puede encontrar diferentes cajas metlicas o plsticas, para proyectos o para
instalaciones elctricas, aqu una fotografa de 2 de ellas.
Figura 7.10.5. Fotografa de una caja metlica y otra de plstico, ambas se utilizan para
instalaciones elctricas, con la caja de la izquierda haremos una alarma de 3
zonas y otra de 9 zonas y con !a de la derecha haremos un Pl.C. con LC 'O.
Figura 7.10.6. Fotografa de algunos paneles, unos impresos en papel adhesivo y otro en
acetato.
Figura 7.10.9. Fotografa de un PLC con LCD fabricado en una caja de breakers de plstico.
fig u r a 7,10. I I. Las cafas para proyectos que se venden en tas tiendas electrnicas, tambin son
mui huerta opcin, alguna* vienen con ios agujeros lisios para colocar switchs y leds. >' can la
ayud de hts impresiones lser a color en papel adhesiva, se fes puede dar un acabado muy
profesional.
Si ;i caja que usted necesita no lo encuentra en el mercado, puede mandar n fabricar una a
su gusto, por ejemplo pura una fuente de poder se necesitaba una caja que tenga un pane! de
control inclinado, pues se manda a hacer unas tablas con un canal para sujetar los tomillos, y
Figura 7, IIK12. Chasis le una fuente de poder construida con madera y too! doblado, para fas
patitos se puede utilizar tas cauchos automotrices que se utilizan como topes para las puertas.
*No olvide que usted puede ver todas las fotografas de este subeaptuio en CDVchassX
W W W .A U T D M A S IS .B LD G S P D T .C D M