""

Microcontrolador Pic16f84 Desarrollo De Proyectos – Enrique Palacios

Bạn đang tìm hiểu về Microcontrolador Pic16f84 Desarrollo De Proyectos – Enrique Palacios?

Bài viết này EDUBOSTON sẽ giải thích tất cả những kiến thức về loài chim này

Video Microcontrolador Pic16f84 Desarrollo De Proyectos – Enrique Palacios

Chúng tôi đang cập nhật
[ad_1]

Edición autorizda para venra e n Mkxici

Impreso en Mdrico PrintM in M e ~ k o

A mi m yer. Maribrl, por- sic a p q n o ,c.ari,ioy paciencia. .4 mi,v hijos. C’i-istN ra Enrique. mi rnaymfi~cnirrk liltiyrias 1’slrtis/;rcciones. A n l i PUIJI-CS. ~ Eririque y Sagr~rriu,cbtirc.c.ujiociniieritu a su sacrificio.

Enrique

.1 mir pudre.^, hgo y demús ppersoncls it~~port~irirta ~krni v i h .

Lucas

A mis dos mujeres, Natalia con la que decidí compurrir mi.? dius *c ,A~iciniciique me uir7gi.u cudu diu J J . ~ que narici y que a sus tre.y oños no deju de quewr rlj~tltf~irrne a escribir y progrumor microcon~oladoresy per.i/L:r.icos. Fernando

Capitulo 1: MICROCONTROLADOR PIC16FS4…………………………………… 1.1 Micrricontrolarlures PIC ……………………………………………………………………….. 1.2 Alimentación de un PIC16F84 …………………………………………………………… 1.3 Puertos de entraddsalida ………………………………………………………………………. 1.4 Oscilador ……………………………………………………………………………………………..

1.4.1 Oscilador XT …………………………………………………………………………. 1.4.2 Oscjlador RC …………………………………………………………………………. ……………………………………… 1.4.3 Osciladores HS y LP ……………………. . . 1.4.4 Utilizando una señal de reloj externa …………………………………………

1 . 5 Reset …………………………………………………………………………………………………… 1.6 Montaje del entrenador………………………………………………………………………….

capitulo 2: PERTFÉFUCOS BASICOS ………………………………………………… 2.1 Diodo LED………………………………………………………………………………………….. 2.2 Interruptores y pulsadores ……………….. . . ……………………………………………. 2.3 Entradas [email protected] optoacopladores………………………………………………….. 2.4 Display de siete segmentos ………………………….. . . ………………………………….. 2.5 Controlando cargas a 230 V ………………………………………………………………….. 2.5.1 Conml con relé ……………………………………………………………………… 2.5 .2 Control con re14 miniatura en cápsula DIL …………………………………

2.5.3 Control mediante fototriac ……………….. . . …………………………………..

2.5.4 Conml de potencia con tnac …………………………………………………….. 2.6 Zumbador…………………………………………………………………………………………….

9.3 Saltos en funcidn de un registro………………. …. ………… …………………………. ,.,.. . “decfsz f,d” . ….. …………… ………………….. ………….. ……….. 9.3.1 I ~ h c c i o n 9.3.2 Instrucción “incfsz f,d”…………………………………….. ……. ……. ….. ……. ., 9.4 Cotnparacion de registros…. ……………….. ………. ……… ……. ……………… … …. … … 9.4.1 Comprobar que un registro vale O ……………………………… . ……,……,. 9.4.2 Comprobar igualdad enlre dos regismos……………… ….. ……………. . ….. 9.4.3 Comprobar que un registro es mayor o menor que otro……………….. 9.4.4 Programa ejemplo….. ….. ……………….. ………… …-… ……. ……. ………… ….. 9.5 Lazos o bucles…………………………………….,.,.,.., ……………………… ………………… 9.5.1 Lazo de repeticihn infinita……… …………………. ………. ………… ……… 9.5.2 Lazo con condición de testeo………. …………………………… ………………. 9.5.3 Lazo que se repite un numero conocido de veces………………………… 9.6 Programacion y algoritmo…. …………… ……… . ..,……. ….. ….. ….,.. ….. ……. ……. … 9.7 Diagrama de flujo …………. ….. .. … ….. . … … ………….. -……………… ….. ……….. 9.8 Más directivas importantes ………………………… ……………………… ………………… 9.8.1 CBLOCK y ENDC………………………. …. . ……………………….. ………….. 9.8.2 #DEFINE ………………………………. .. …………………………………………….. 9.9 Conversionde binarionatural aBCD…………………………… .. …………………….. 9.10 Salto indexado ………………….. ………….. . …….,.. ……………………… ………………… 9.1 1 Salto indexado dcscontrolado …………………… ….. . ……………………………… 9.12 Prácticas de labamtorio ………………………………………………………………………. r

.

Capitulo 10: SUBRUTTN.4S……………. ………. …………………………. …………………

. . .

10.1 Subrutinas …………………. ……………………. ……………………… ………………… 1 0.2 Subrutinas anidadas…. …… ……… ….. …………… …………….. ……… … ………… ….. … 10.3 La pila ………………… . …………… …………………………………………………………… 10.4 Tnstnicciones “call” y “retuni”………. . ….. …………….. ….. ……. ….. …………….. …. 10.5 Ejemplo de utilización de las subrutinas……………………………………………… 10.6 Ventajas de las subrutinac ………………………………. …………………………………. 10.7 Lbreria de subrutinas……….. …………….. …………………. ……… …….. ……………. 10.8 Directiva “INCLUDE”……….. ….. ….,………… … ………….. … ……. ………. ……. … … 10.9 Simulación de subnitinas en MPLAEI . ………. ……. ……………………….. ….. .., …. ., 10.10 Programacion estructurada……………………… .. .q,.,………….,,, 1O .11 Practicas de laboratorjo ……………. ….. . . ……….. ….. ………………. ………. ….. .. … …qq…..,,,-……….,q,

Capitulo 11: MANEJO DE TABLAS …………………………………………….. 1 1 . 1 Tablas de datos en memoria de programa …………………………………………….. -‘ 11.1.1 Insmccion retlw …………………………………………………………………. 11

73

1 1 -1.2 Directiva “DT’…………… …………………. … ..,.,…. .., ….. …….,., ,.,….-……. 1 1.2 M i s directivas……………………………………………………………………………………. 11.2.1 MESSG …………………………………………………. …………………………….. 11.2.2 ERROR ………………………………………………………………………………….

.

11.2.3 [FyENDF…………………………………………………………………………….

XIV

MICRW0NTRC)tADC)R PIC’IbFB4. DCSiiR ROLLO DE PROYECTOS

w nA-hW

1 1.3 Gobierno de un display de 7 segmentos …………………………………………….

-$

162

1 1.3 Practicas de laboratorio ……………………………………………………………………….

Capítulo 12: SUBRUTINAS DE RETARDO ………………………………………… 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8

Ciclo miquina ………………………………………………………………………………….. Medir tiempos con WLAB ……………………………. ……………………………. . ‘hop”……………………………………………………………………………… Instniccion Retardos mediante lazo simple …………………………………………………………… Retardos mediante lazos anidados……………………………………………………… Librería con subnitinas de retardos…………………………………………………….. Rebotes m los pulsadores ……………………. . . ………………………………………… Practicas de laboratorio………………………………………………………………………. I

Capitulo 13: LCD ……………………………………………………………………………………

169

i

171 17 1

I 1

172 174 176 18 1 184

I 1 1

187

C

187 13.1 Visualizador LCD………………………………………………………………………………. 13.2 Patillaje ……………………………………………………………………………………………… 188 13.3 DDRAM …………………………………………………………………………………………… 189 13.4 Caracteres definidos en la CGROM …………………………………………………… 191 13.5 Modos de funcionamiento………………….. … …………………………………………. 19 1 13.6 Comandos de control ……………………………………………………………………… 192 13.7 Conexión de LCD mediante 4 bits …………………………………………………….. 1 3.8 Librería de subnitinas ………………………………………………………………………… 194 13.9 Visualizacibn de caracteres ……………………………………………………………….. 201 202 13.10 Visualizacj6n de valores numéricos …………………………………………………….. ?O3 13.1 1 Conexibn de LCD mediante 8 bits ………………………………………………………. …………………………………………………………… 204 13.12 Visualización de mensajes fijos 13.13 Visualización de mensa-iesen mo~iniiento…………………………………………… 208 13.14 Prkticas de laboratorio ………………………………………………………………. 209

1 1 1

Capítulo 14: EEPROM DE DATOS …………………………………………………………

213

14.1 Memoria EEPROM de datm ………………………………………………………………. 213 215 14.2 Registro EECON 1…………………………………………………………………………… 14.3 Librería de subrutinas…………………………………………………………………………. 216 14.4 Lectura de la EEPROM de datos …………………………………………………………. 2 17 14.5 Escritura en la EEPROM de datos…………………………………………………….. 217 14.6 Directiva “DE” ……………….. . …………………………………………………………… 218 14.7 Ventana “EEPROM” en el MPLAB …………………………………………………. 218 14.8 Programa ejemplo………………………………………………………………………………. . . 14.9 Bloquear un circuito …………………………………………………………………………… 22 1 14.10 Prácticas de laboratorio………………………………………………………………………. 227-

1

1

1

C 1′ 1 1

1′

1′

1′ 1′ 1 1′ 1′ 1′ ‘

C 1I 1I

11

1I 11

iía estructura de m entender los

La teoria desarrollada va siempre dirigida a hacer las prácticas, siendo 13 imprescindible para la realimción de los proyectos de dificultad crecieiite que trabajan sobre circuit~sreales.

: software y del M conocimiento

itilizar porque es lgramable; y el en detalle cómo ente.

la enseñ;uiza de rnpartú nuestras 317 realizadas por an de un teclado, uello funcionara. n la tecla r?in y S alumnos ieniair “‘maleta” era el

la lectura de este libro le resulte seilcilla y sobre todo que cumpla la finalihd para la que esta cscriio, que con los pocos niedicis técnicos de los qiie se siicic dispuner en casa. sea cap= de desarrollar proyecuis tiiicroprobmables dc una forma autodidacta. C’ualqiiier aficionado, estildiantc o ingzriiero, con ayuda de este libro, debe ser capaz de empezar a utili7ar el PICl hF84 inmediatamente en sus propios proyectas y diseiios. Esperamos que

Nuestro agradeciiniento a las iiibricantes Micruchip Tt’clinology inc, Phidip Sem~conducror~y Dullu,c Smiconductors, así como a la erliprcsa Sagiiron por su constante esfuerzo en ayudar a los usuarios en la uiilizacion de sus producios. Querertios finalmcntc agadecer a todos 10s compañeros y alumnos. la ayuda prestada, sugercticias y participación en el desarrollo de esta obra: Carmen Ghtticz, Julio Redondo, Jesús Sanz, Javier Tempradu, G e m a Gil, Jiian M. Morales, Jcid M. Escobosa, Atia &irnora. Nuria Tririjatw, José A. Sanz, Alejandro Pico, Loli Moreno. Sergiu González-Nicolás, Javicr G m ia-Caro, Diego A. Cbrdoba, Alfonso Martíii, Eduardo F. Garcia Folgar. Ángel Toledo y Fmando Blanco.

rcicesador eri siis LOS AUTORES

s este mundo dc sdz el esquema a tid do al sistema gas. Entrc otras, 1 p r e1 misnio y

comprender. No itorios, sino que m Y por

Ultimo, :4 mismo el que ar que lo que ha

S-;

IS

años de aqui descritas.

ipción. También rse junto con un -es, a complejcs

CAPITULO 1

MICROCONTROLADOR PIClóFS4

1 . MICROCONTROLADORES PIC Un microcontrolador es un circuito integrado programable que contiene todos los componentes necesarios para contrc~lar el funcionamiento de una tarea determinada,

como el control de m a lavadora, un teclado de ordenador, una impresora, un sistema de alaril~a,ctc. Para ésto, el rnicrocontrolador utiliza muy pocos componentes asociados. Un sistema con rnicrocontrolador debe disponer de una memoria donde se almacena el programa que gobierna el funcionamiento del mismo que. ima vez programado y configurado, siilo sirve para realizar la tarea asignada. La utilizacion de un rnicrocontroladoren un circuito reduce notablemente el tamatlo y número de componentes y, en consecuencia, disminuye el niimero de averías y el volumen y el peso de los eqiiipos, entre otras ventajas.

El microcontrolador es uno de los inventos más notables del siglo XX. En el mercado hay y a n cantidad de ellos, con multitud de posibilidades y caracteristicas. Cada tipo de microconmlador sirve para una serie de casos y es el diseñador del sistema quien debe decidir cual es el micrwuntrolador más id6neo para cada uso. En lm últimos ~ í í u han s tenido un gran auge los microcmtroladores PTC fabricados por Microchip Technology Inc. Los P IC (Peripheral Inteqace Conmllerj son una familia de microcorrtroldores que ha tenido gran acepíación y desasrollo en los Últimos afím gracias a que sus buenas c mterísticas, bajo precio, reducido consumo, pequeRo tamailo. gran calidad, fiabilidad y abundancia de infomiacih, lo convierten en muy fácil, ciimodo

130 V (bombillas. ipropiados donde ica.

Es indispcnsablc coilcclar un diodo cn paralclo con la bobina dcl rc16, tal como muestra la tigurü 2-6. coino protecciOn frente ¿ilos picos de fuerza coiitraeiectromotriz producidos por la carga inductiva de la bobina eri el inomento de la coniniitaciiin.

Iéctrica dc 230V. provocar lesiones aje y revisarlo las conexiones o is eléctricas, sin

Para controlar uri cicrto núincro dc rclCs a partir dcl niismo ~nicrocontrolador,sc

piiede tititizar un circuito integrado especializado tal coiilo el U LN2003, figura 2-7. Este chip dispone de siete circuitos inversores rediizados internamente con circuitos I)arlingtori, quc aguaiitan una tcnsión inaxii~iadc 50 V y pucdcn alimentar cargas de hasta 500 mA, incorpora tainbiCn los indispcnsablcs diodos dc protcccion.

iar dispositivos a

ir de transistores

1 CARGA

to a la base del :ontactos, puedc :lectricamentc la de los contactos oportar más de 5

GND

w7

l–N DIODE

COMMON

Figura 2- 7 Driver ULN2003

La figura 2-8 describe el esquema tipico de conexión, donde el ULN2003 alimenta las bobinas de siete reles.

I

I

5.. 5

ULN2003

o

o

O

>

17

UA2

– RA3 W4TTDCKI

RBOIIMT RBI RB2 RB3 RB4 R55

RB6 rq

RB7

6 7

10 11 12

1 3

8

IN7

OUT7

GND

COM.

g

BOBINAS

F i p r u 2-8 Circuito ttr’yico de gobierno de varios reI&scon ULN2003

16

-‘ R 4-MA

MICROCOWROLAWR PIC 1 hFR4 T)LSARROLLO DE I’KUY CCTOS

2.5.2 Control con relé miniatura en cápsula DIL Para cargas de hasta 10 W es riiejor utilizar reles de láminas encapsulndos en DIL, que necesitan una menor inta~sidridde activacibn, aunquc sus contactos no perniitzii activar cargas grandes. La f i p r a 2-9 muestra un ejemplo de apjicacitin donde s61o es necesario un tratisistur para gobernar et reli. Normalmentt estos relés llcvan incorporados dentro de la cipsula el diodo de protección, como se ~iuedeapreciar en la figura, para 10s modelos que tio lo llevan es necesario conectarlo en el circuito.

Ií RA-M) –

de la alta f dar 11

fototr

5v ALlMENTAClON CARGA

‘l

CARGA R1

u1

10k

BC547

CARGA hiiAxiMA (500 mA. 1bW)

Figui F i p r u 2-9 Gobierno de p~qrtriln~ cargas u trai.L.rd~ un rd&de láminas en cu~)sulu DIL

2.5.3 Control mediante fototriac En el circuito de I:i figura 2-10 los contactos del relé son siistitiiidos por un fciiotriac, cuyo funcionamiento es similar al dc un iiltemiptor controlado por luz.

El necesario aislamiento entre cl microcontrolador y la carga de 230V se hace mediante wi o p t ~ ~ o p l a d oMOC3041, r qiic es iiii circuito integ~dc)que incluye iin LED que controla al fototriac. Este dispositivo esti rspccialmente diseñado para usarse coino interface tic sistemas 1Ógic0s con equipos que tienen que alimentarse coi1 los 230 V de la red clectiiila. Sus carac tensti cas mas significativas son: Incorpora un pequeño y eConíirriicoencapsulado DIP 6 . Su tensibn de aislamiento de 7500 V garantiza un perfecto aislamiento entre la red eléctrica y el microcontrolador. Es capaz de proporcionar hasta 1 O0 niA, que le permitiría alimentar directamente pequeilas cargas de hasta 20 W. Su fototriac interno permite el control de la casi totalidad de los grandes tiiacs, lo que no seria posible si se iitilizara un fototransistor ordinario. Cuenta con un detector de paso por cero inlenlo, lo que permite economizar un número iio despreciable de componentes externos.

hará i

~ U Z .1i

la te

prácti

el trií es ne

cona;

apag: conil

corrii

garar de la cjrcu de rt

c ircu El cc

~ciamínima rna es dc ;mdo en el . Por tanto.

Para conseguir cstas potencias, el triar: debe ir montado sobre un buen radiador de calor, de forma que el semiconductor cc refigere adecuadamente. A la llora de poner el radiador hay que sefialas qzie la parte rnetiilica del componente suele conectarse al temiinal T2. por lo que se dcbe aislar cuidado(;aincntc el triac de! radiador rncdiante una lamina de mica y un separador dc plishco para el tornillo. ‘-

2.6 ZUMBADOR ic, donde la r a! de un ;u vez, esta

En muchos proyectos es necesario indicar mediante tina sefial audible la ocurrencia de un evento. Para ello normalmente se utiliza un zurnbsidor piezoeléctrico miniatura corno cl de la figura 2-12.

rolar cargas

Un zumbador miniatura funciona con tensiones comprendidas entrc 3 y 16 V y su consumo no supera los FO mA, por 10 que puede ser alimentado directamente por la salida de un microcontrolador, tal como se indica cn la figiim 2-13.

SUM&ADOR EMITE SONIDO CON SALIDA A NIVEL B A l O

tc entrc en

olnac para

137 (8 A)

ZUMBADOR EMITE SONIDO CON SALIDA A NIVEL ALTO

822

‘uctivas ei

Fisura 2-13 Conexihn de irn aimbador ininiafirt-a a un microconfroJador

I

22

fICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS

~RA-M

En microcontr:

múltiples v tienda de ci

por sí mism

Ordenador Personal

1 –

Grabador E> Programador

(TEPO-SE o compatible JDM)

Fjxlrra 3-1 Coyf;guraci¿inpar[/p b o r micrmot iri-orudorps con medios redz4cilr’os

3.2 GRABADORES El grabador o programador es el equipo físico dondc se procede a p h a r la memoria del rnicrocantrolador con la% instnicciones del prapma de control. Tiene un

zkalo libre sobre el quc se inserta el circuito integrado a grabas, el cual debe orientarse uadarnente siguiendo la señal de la capsula del chip. Hay multitud d.c grabad ores :rciaEes en e1 mercado que se pueden adquirir en cualquier tienda de clec trbnica. Microchip o k c e el gmbador PICSTART PLUS, de muy ficit utilización y ihzada fiabilidad respaldada por el fabricante (fipra3-2).

En las quc apenas r

miicho rncnu

muy iiitcrcsai que estos g~ purtAtiles soh

En ltiternct pueden localizarse múltiples grabadores de bajo c o n para microcontroladores PIC. Uno de 10s más populares es el denominado JDM y sus iniiltiples versiones mejoradas, tal como el TEJO-SE que se puede adquirir en cualquier tienda de electriinica por un precio muy asequible (figura 3-3). Si 1 ntarlo por si mismo, cn c1 apkndjce F se proporciona información para el1

-.

1

amador Iible JDM)

2- e grabar la :rol. Tiene un zbc orientarse fe grabadores

El programador JDM y a l s n a s de sus version¢s diseñrtdor Jens Dyekjm, w . i d r n . h o m ~ a ~ c . d k / n e w ~ i c .

la Wcb

-ir(inica.

ES EXTERNA AL CfRCUtTO

Fig~rcr3-4 Esqzt~rnade 110pl1~1dorcornpnfildeJBM bO.cico cor Eir las figums 3-4 y 3-5 se describen dos versiones básicas de este pmprnador qite apenas reqiiicrc cornponcntes. Evidentemente Pa fiabilidad de este programador es mucho menor qiic In dcl PICSTART PLUS. pero su facilidad de construcciiin lo hace mriy intcrcsantc para miiltiplcs aplicaciones. Auiiqiic hay quc hacer tina obsen~acicinv es que estos p.abadores tan hrisicos no funcionan cor~ectamenteen algunos ordcnnc pottfitjlcs scihre todo. Ademb, iina conexión incorrecta puede dañar cl ordenador.

1

l

MICROCONTROLAWR PICI 6W. DF5AR ROLLO DE PROYECTOS

24

m~4-WA

D1 lWi4

TU

r’ M-h~ –

funcionamiel

n7

ufili7gr cstc

jq)mg.si:~de

En 1×5

I

L5y-y- E ~K

DsBm

Fimrvn t -, C YYYL,CI.*” Avriromri lio .fiE.I L. -, Mb

1

i r n h. ni.nhn/Lr L.I.C.C.”, l l r l

rnnind;hlo IT) fiA hr;r;rn IUY.I,I&, L”I.I

I

” Y l l .

YUil.U,l

c;i?

.l.<. wp_automatic_readability="847.53799087404">

n1;montn~Mn-oviornrr .Lr

“””-

,.U

Una “

que todos los pines o

iXrqlri , U,,n , , patilla$ del disposiiivo esttn rectos y de que entren t~ienen el 2,,,,,. mucho cuidado porqlie estos pines se doblan y :se rompen con extrema facilidad.

í’iinndn

3.4 G R

“I…IL..

Al i””-‘.”‘ n ~ nian pn pl hnv “r ‘ rhin ” ” ‘ -.. – ‘ nrnummndnr r”P.”””””q “”‘ nmip r ~ r r i n r n r c ~

‘ “

,,, niin

+ -mar LLttbm

r ~ r i i ~ n rmrnummnrinnrr t ~r””. c ‘-..'”-“..-” rc –“”nrnnc&nhl~ “- r~nli7-nf'”…-“-“”‘-‘ “”- iitili7nr “”.”‘-‘ iin “.. 7iirnln

CP

‘”

L

la iiltima ver: ayudar a todc profundo dc programa ¡C.

‘*’-“”

(

desrirrciilar e sólo O C ~ S

material:

ixiliar entre el micmcontrolador y el zócalo del proprnador, de tal modo qiie sea los nes del 7ócalo auxiliar los que sufran Iris frecuentes insercioncs y no los pines del spositivo. Otra alternativa, es reernplaz~r el z k F o del programador por un zócalo de em dc inserción nula Z F (Zgfo Jnserfion Forre), aunque ticnc cl inconveniente de su evado precio [figura 3-G).

P’ig74ru

-,-, ‘

*

Unc

Figura

El IC-Pr~g es uno ac ios s o h a r e más populares para la grabación de microcontrnladores FIC. Permite la prpgmrnaciOn de miichos dispositivos y esti probado con numerosos programadores. entre ellos todos los compatibles con JDM. Es de libre distrihucián y en la pigiiin Wch ~ w v . i c – ~ r o ~ csc om piicdc descargar y recoger toda la infamación de uso.

Una vez descargndo, la jnstalaciirn de estc software es muy sencilla. basta con qrnmnrirnir 7in v wrniir m r ~ r i i m i ~ n tiiqii~l n ~n .. .- – y . – . . . . , “PI firh~rriirnrriu .-*T. Y–.-..rl” n,.’-“–..”.-“‘Y -….. -“. Winrlnwc .. .-..-Y ..*.* Fctp –.,-d ~ i v oconsta del ficliero ieprog.e.re, qiie contiene todo el código necesario para su

– p . – + . – – –

J

3 coi

*

Un elect o frct

Com Web obra

hncionamiento, con versiones para cualquier s i s t m a oprativo Windows. En caso de utilkar este software con Windows XP, 2000 o NT, es necesario descargar e! archivo icprog..yde Fa misma Web y situarlo en la misma cavela, junto con el icpvog.a. En las próximas piginas v rxpondfin las conocimientos básicos pñra trabajar con la última versión, al cierre de la cdición de este libro, JC-Prog 1.OSC, con la pretensi~ndc ayudar a todos aquéllos que se enfrentan por primera vez a este s o h a r e . Pasa un anilisis profundo de todas sus posibilidades se rcmite a la documentación tknica, ya que el propio prograina IC-Pro2 tiene un buen sistema dc ayida qiie permite un rápido anrendizaie.

3.4 GRA

5~ CON MEDIOS REDUCIDO

Una de las grandes ventajas de Tos micmntmladores PIC es que pcrrniten

xlos los pines o I4ay que tener Iidad.

ili7ar un zkrtlo que sea los o los pines del jr un zócaIo de nveniente de su

amar:rollar el proceso de p h a c i h n con muy poco gasto. Para aqitéllos qiie desarrollan ,

S610 ocasionallmente proyectos

utilinIr el procedimjenro de contil~uación.S e ~ i nel esquemr material:

basados en micmontroladores, es suficiente in con medios reducidos que se indica a gma 3-1, este pmediiniento utiFiw el siguiente ;

3d0

Figuro 3- 7

Cuurcy u r ~ conectar elprogru~r~uurir u rrcrvv., de los puelios

COMI o CUML

Un ordenador personal. m

b.c.v,.w,4n dc y cstli probado )M. Es dc libre rccogcr toda la

Un programador TE20-SE, ds electrónica. En apíindicc F y e ofmen planos para su construcci,,,.

* cilla. basta con Windows. Este :esario pan su

Un cable de conexión entre ordenador y pmgmmador del tipo serie DB9 para puerto COM (figura 3-7). Este cable se puede adquirir en tiendas especializadas o bien fabricarlo mediante dos conectores DR9 (hembra y macho) y cable, preferiblemente plano, concxionando los pines con el mismo nUmero en cada extremo, es decir el: terminal 1 de un conector con el terminal I del otro. 2 con 2, 3 con 3, etc. adquisicihn en cualqiiier tienda de m-ROM que acornpafiiia a este libro se

Como sottWm se utiliza el IC-l%g 1.0:iC, que 1~uedebajarse librrmente di la Web www.ic-rmn.com., y que 4e incluye: en el C D-ROM que acornpaiía a 4sta

obra, p c i a s a

Iri generosidad de Bonny

Gijzen, su autor.

que sólo !a línea I del puerto y la ~ c t u mdistinta a in de ser de esta ieración de una W 7 : W . Tcdas ir, conectada a la mgramaaas para y r a 5-9 muestra variación dc una

la ultima sefial le las señales de o TNTCON. ienfación

máxima I I I ~11and0 ~ está :ia dcl chip, esta luede exceder de

Pin RB7,R84

LENGUAJE MÁQUINA El Único lenguaje que entienden los rnicr~ontroladoreses el formado par Ios ceros !:unos dd sistema binario. Cualquier instrucción qiie deba ser cj~cutadapor 61 rnicrocontrolador debe estar expresada en binario. A este lenguaje se le denomina lenguaje rnhquina, por ser el que comprende el microcontrnlado~Los códigos de este leripiia,je que fonnari Ins iristnicciones se llaman c6dijys máquina. Así por ejemplo. cuaiido el microcontrolador PlC láF84 lee cl chdigo mricluina ” ‘1 11 11000 1 1 10 1 W, esti recibiendo la instmccion: “.rrrmn58 al regi,v/ro de trabajo W y g-uurda e/ resi~lratfoen esk mismo regi~troW”. :J;?

c r. T, +-y

.t

‘t-

Cualquier otro lenguaje que se utilice debe ser tndticido a unos y ceros para que el rnicrocontrolador pueda procesarlo. Dicha codificaciOn binaria resulta incdrnoda para traba-jar, por lo que muchas veces se utiliza la codificación hexadecimal para facilitar la interpretación de los códigos miquina y no saturar las pantallas (ni los cerebros) de unos y ceros, Asi por ejemplo, en el capitujo 3 se pracedio a grabar los microcontroladom

5H

3 RA-m

M1C’ROCC)NTROLADOR P1C1 AF84. DESAñROL LO DF. PROYECTOS

utilizando el pi-ugmrna IC-Prog, que trabaja cn lenguaje máquina, pero utilizando la codificacion hexadeciinal, tal cotrio se aprecia en el cjemplo de la figiira 6- l.

6.2 LENGUAJE ENSAMBLADOR El lenguaje máquina cs difícil de utilizar por el horiihre ya que se aleja de su fonna natural de expresarse, por esto se irtiliza el lenguaje ensamblador, que es la forma de zitprwar las instrucciones de una f m a más natural al hombre y quc, siti embargo, es muy cercana al microcontrolador porque cada una c k sus instmcciones se corresponde con otra en ciidigo máquina que e1 microcontroladcir es capaz de interpretar. El leti-=aje cnsarnblador utiliza nembnicos que son grupos de canctzrcs alfaniiméricos que siinbolizan las órdenes ci tareas a realizar con cada instruccjón. Los nemonicos se corresponden con las iiiiciales dcl nombre de la insuuccion en inglés, de fom~aque “recuerdan” la operaciori quc realiza la instrucci8n, lo que facilita su

mertiorizacion. Así. por ejemplo: para oriictiar al rnicrocoritrolndor PIClóF84: “sumu 58 al rrxistro rh? lt!rriliujo W y gear7i-du el resultado en este m i . ~ mregistro ~ W”, en leiigiajc cnsarnblador sería “addw d’5’58′”quc es mucho m i s amable qiic cl”1111100011l010” del lenguaje máquü-ia.

Resumiendo con un ejemplo:

Instrucción:

“Srriirri

en Elisamblador: Máquina:

SIL’

58 ul r-e,yisiim d~ ~t-ublljoW y ~ni.~tno registro “.

r~~~.ulíudo

~ ~ C I Y el I ~ U

uddw d’5H ‘. 1 1 1 1 10 00 11 1 O 1O (expresado en binanol. 3 E3 A (expresado eii hexadccimal).

6.3 PROGRAMA ENSAMSLADOR El programa ensamblador es un software que se encarga de traducir los nemonicos y símbolos alfanumkricos del prcgrama escrito en ensamblaclor por el usuario a código máquina, para qiic piieda ser interpretado y ejecutado por el mjcrocontrolador. E1 programa escrito en lcnguaje ensamblador recibe la denominación de código fuente, archivo fuente o fichero fuente. Suele tener la extensión *.asm. El archivo hizntc debe ser traducido a código riiiquina, de lo cual se encarga el programa ensamblador. La mayoría de los ensambladores proporcionan a su salida un fichcro que sucle tener la extensión *.hex. Este fichero puede ser grabado en la memoria de p r o p m a

mediante la utilización de un grabador de microccintroladores.

hli

MIC’KcX’ONTROLADORPTC I GF84. DESARXCJLLO DE PROYECTOS

E RA-M h

Tatill~6-2 Repertorio de ipisfrucciones del PIC16 F84

Las instrucciones se recogen e n La tabla 6-2 y detallan cn su totalidad en el apéndice B. En este capitulo se estudiimin 111s instrucciones inás scnrillas.

6.9 INSTRUCCIONES DE CARGA Las instrucciones de transferencias de datos son típicas de todos los procesadores y su misión es transferir el contenido un registro fuerite (f! a iiti registro destino (d) o bien cargar el destino con utia constante. En los microcoilrroladritrs PIC todos los datos residen en posiciones de la triemoria de datos y en el registro de trabajo W.

6.9

En la explicacion de estas instrucciones se ernplea muchas veces una nomenclahita especial muy sirriplc basada en parintesis y flechas. Con los paréntesis se destaca que se trata del “contenido” de las posiciones de iiienioria y la flecha la Jircccibn dde la transferencia de los datos. Algunos cjcmplos:

del 1 [email protected] resul

( W ) 3 (PORTB):

(2Bh) 3 (W): 2Bh i (W):

Significa “el conr~niLiodel registro W se truns$ere u1 puerto B.’. Significa “el contenido dr la pwíció~?2Bk de M M de h t o s se bransjere al registro ri’c. traht-rjo Hp’. Significa “e/ regt~trode tti-ub(?jose c~irgacon el dato ZRIi”. (Notar la auscncia de parkntesis).

Hay cinco instruccioiies de carga

propiamente dichas:

w

Ante

m

Eita

Ante

w

6.9,

6.9.1 clrw (Cleur W). El contenido del registro W se borrri (se cargsi con b’00000000′) y cl flag Z sc activa a ” I “. Esta instrucción también se podria cotisiderar como aritmética.

regis

Ejw Ante -1

fi R A M A

Ninglino Ninguno Ninguno Ninmin~

1

1

Ejeir ctw Antc (W) = Z = l.’? – . Despues instrucc~on: ( N r )= ~ l x f l f ty L = l .

.

1

1

mo. PD

Ninguno m,rnD

(Clemfl. El contenido de1 regrstro ‘ f se bom (se carga con b’000000007 y el flag Z se adiva a uno. Esta instmccibntambién se d n a considerar como aritmética. Qerr Antc npcr

6.9.3 movlw k .I

total idai

(Mnve Literal to W). El re3ist-m W se carga con el valor de los constanic’k’. Ningiin flag del registro de estado es atkctado.

8 bits de la

.i3 I I I Ubb30

lestino (d) o bien ‘ todos los datos C’.

una nomenclatura se destaca que se direcciót ‘..-iuni

6.9.4 movf f,d (Movej.El contenido del registro ‘f se carga en el registm destino dependiendo del valor de ‘d’. Si ‘d’ = O el destino es el regstro W, si Vd* = I el destino es el propio registro ‘f. El f l a ~Z del registro S T A T U S ~ afectado: U ~ ~ ~Z se activa a “1” si el resulitado de la in es ccrcE. . .

Eiemn 10 F : Ante

IBA & h!AM de r w 11

&

‘ r p con el dato

Dcspuks instn

movt PORXd, 0 pOR1’A) . = Ox 1Ik (POR?’A) = 0x11 A,

2 i .iem

: (PORTAI (W) = i’,

I

(W) = o: –

Aiizei Dcsp

+ 1w)

>

el resultaido de Ia 1

(Move W lo 1). Carga el contenido del registro W al registro ‘f. Nirigún flag, del registro de estado es afectado.

Qmplo: Antes inshcc ión: Despuks iinstniccihn:

rnovwf PORTB (PORTR) = i,?

(PORTB) = 0x4

: (W) -9 (PORm

I

I

y seleccionar Orrprtt ro File y salvar cl fichero de la forma ya conocida en el entorno

\’indows. h i t o general de1 :contenido de la

5TbTL5 PCL

3

1

——-

.

-. .

de estado

Aunque no es una ventana de visualizaci6n propiamente dicha, la linea de estado proporciona infomciiin muy iitil sobre la situacibn actual del microcontrolador. Se ubica m la pane inf&or de la pantalla y ofrece infomnacion en todo momento del estado de Ia

.,

simular1n.i …”.”O

Es especialmente útil la infamación sobre el contenido del contador de progama. del registro de trabajo W.También indica el valor de las flags de STATUS. Si la letra está m rnaqúsculas indica que ese flag vale “1 ” y, si es miniicc~alasvale”O”. Asi en el ejemplo de la flgtn 7-13, Z =O, DC =1 y C=E. —+

WFAQ?u

2 duros

.

.-.-

:~~~JTART ~a;l

.; . ……. – – ~ W m P 7 a h 3 – – w : S . . …… . . –+—

hre simb6licci que de usiiario.

L .

Fipcrn 7-iJ , A ~ ,wc-, G ~ ,~ ~ L ~ Lcon I ~ ) la infamación del PC, W yJrapP~ del SIn

7,6 SIMULACI~NBASICA tc supervisar los iso concreto. Para

wdro de dililogo ee pulsando sobre

rla m posteriores .’ I

I

1

,

T m el proceso dc ensamblado sc p d e a la simiilacibn del programa, Mientras w ejecuta la simutacibn del programa es interesante visualizar el contenido de las ventanas explicadas antes y comprobar el efecto m cada una de ellas.

Es conveniente antes dc nada, comprobar que está cargado correctamente el IPLAB SIM, tal como se explicb en La figura 7-4. Los cinco comandos m& importantes p m la simulaci6n se localizan dentro del menú Debbuger y se muestran en la fi_m 7-24.

I I

92

MICROCONTROLADOR PIC IóFR4. DE’RROLLO DE PROYECTOS

m

c

A-MA

Rfrn. Modo de ejecucibn continua. Ejecuta el programa constantemente. Las ventanas abiertas en el paso anterior no se actualizan hasta que no se produce una parada. Es la fama m i s rápida de simular el programa, pero no se “vi como evoluciona la memoria ni los distintos registros. En este modo se i seleccionando Beliijgger > R ~ t no pulsando la tecla F9, tambitn al pulsar S el icono correspondiente de la barra de herramientas (flecha azul). Animate (o teclas ctrMF9). Modo de ejecucihn animada. Ejecuta el programa de forma continua pero actualizando todas las ventanas cada vez que se ejecuta una instrucción. Es m& Eenro que el modo “Run” pero permite ver como van cambiando los registros. Tal vez sea d modo de ejecución más util y rccomendablc. Se entn en este modo seleccionando D s h i r ~ ~ > e rAninia también al pulsar sobre el icono correspondiente de la barra de herramic (doble flecha azul).

*

Hah Paro. Para la ejeciicibn del programa y actirajixa todas las ventanas. Se consigue seleccionando D~hti~gger > Run o pulsando la tecla E5. Tambidn se entra en cstc modo al activar el icono correspondiente de la bam herramientas (dos barras verticales azules). Sfep Inro. Ejecuci6n paso a paso. Eiccuta una soJa instnicciCin del progama cada vez actiializando los valores dc las ventanas. Es la forma mis lcnta de simuIaciiin pero se compnieba fáci 1mente como van evolucionando todos los registros y memorias, siendo muy facil dstectar los posibles errores. En este modo se entra seleccionando Debugger > Srep Info o piilsando la tecla F7. Tnmbjézi pulsando sobre el icono correspondiente de la barra de herramientas.

*

Resef. Equivale a un reset por activación del pin MCLR. En este modo sc entra selcccionarido Dehiigger > Re-re! o pulsando la tecla F6. También si se pulsa sobre el icwo correspondiente de la barra de herramientas.

Pan1

aemho tic

Seleccionn donde Iia

i

i

la figura9-4 que

t~ t.

Esta dir icuentre, e

.

fine una ( mblador :

:to. Dondle quiera Ique <nome>

Ejemplo I :

A continuación se

:]Ni?LED

PORTB

:D~P

id

bc

~DFF

icof

bs

D

P(

-DFF

se conecta i:n cstn Iine

LED

bsf

BLOCK (Dflne n lnes (genmlmentc marcada entre las

.

tl Ranw O, : nm.;o:i1 Rznm 1 . : El LER sc conccia 3

; ACCCW al Banco 1. ; Confrgum csla línea como salida. ; hcccw :i1 Banco O. : Encicndi:el diodo L

Esta directiva emula #DEFINE del ANSI C standard. Los simbolos definidos con este mCtodo no están disponibles Dara ser usados mr el MPLAB. anterior ejemplo). 15. Si este valor no cuwrior al: de la si a lo largo del ion de variables, definida .4.

9.9 CONVERS

ARIO NATURAL A BCD

La conversión de un numero expresado en binario natural a formato hcu es una d e las opcracianes más utilizadas en los progamas con microcontrolador y que merece ser analizada en detalle. Por eiemplo el valor 124 expresado en binario n a t m 1 seria . 01 1 1 1100, para expresarlo en BCD hay que separas Fas centenas, decenas y unidades qudando: 0001 0010 0100. La figura 9-5 txplica cl:diagmma de flujo para resolver esta coni~crsihn.Un programa ejemplo que lo irnplernenta. seria el descrito a continuaci9n y que s,e pttede comprobar sobre el circuito de Iri figura 9-6. ***si

nienzo los valores a RAM 4de datos.

., -1

h e ,–m

-A

. Un nu m m hinario de 8 bits cs curivcnido 3 RCD. El erultadri se gl~qrrla e n m psicioncs :dcmem~irinsilamadas Ccntcna~.Docenas y L’nirladcs A d m i s a l tiiial 1las unidades estaráti en el ; nihhl c bajo del repsmi W y las dcccnas cn cl nlbhlc alto. En Ins didas LEDs canectados al o de calida se visuaii7arán !as dmenas y la* L ; El m :niuni

valor que p

:El procediniientr2 utilizado 1 :ejempln quc trai;” A.

l*…s,-,

!;

I

MICROCO~OLAWR PIC16F84.DESARROLLO DE PROYECTOS

OWMA

{Decenas)

NO, IH NO, m!

NO,mi NO. resi

NO,mi NO, m NO. mca lo

Incremcn NO. hcrt . . .. .

S).

cenas).

NO. lncmcnta (Uccenas). NO. Incremonta (aecenas).

movlw subwf

btfi~; Foto

NO.Incremnta (Decmia~). NQ. Incrementa (Decenas). NO. Incrt:menta (Dccmiaii). NO. Incrtmenta (Decenas). NO. lncrt:mcn ta (Decenas).

NO. reSra 10 NO, Festa 10 NO,resr f n NO. mt

Si. @ecenari)=O, y aldemb

NO, resta 10

NO.Inemnenta (Decenas)

hln lnm…-..M+- I r % * r * n n r l ,*v.iii~ibiiibiira(r,c bCil02,J.

incrementa (Cenfew )

sí, se

te ‘Numero”.

r-

1l

UDE

Decer)ay

:u i zona ac memona ac usuano comicnz.. …… . ; dirrccii h a R h M de datos. ; Pmició ; Pmici8

Unida ENüí

Numero EQU

ORG

;El

pmg

inicio bsf clrf

TRlSE

bcf

STAT

clrf clrf

Centenas

STAT

;Accesob al Banco 1 : las liniz del Fuerio R se contigam wmo sdicta. :Acceso al Banco I1. b

mnupar

1

movlw moru Bm-Restui 10 movh subwt

Decenas

:Carga 10s qismr;con el res1~ltadoinici: ; En principio (Cenitenaspo y i[Dcce:enas)=

Numero : Se carga el númm binano a convertir. ; Alahu les va restaindo 10en c . . : pa-da. (WJ==(Untdades)-lo.

?, i ( W ) Vi! menor de 1 BCD

,.

.

“BCD-lncr

RAO R41 RA2 RA3 RMOCKI

ABOff N f RB1 RB2 R53 RR4 R85 RB6

: Lns salidai se o h t i i : RR5 (SI;’ i, m4 (53: ; ZONA

D’E DATOS

Fignrn 9-6 Circttito paro compmhar el programa RCD_Ol.mm novlw

P

iioluri 3 1cf S

EI salto indexado es una tknica que pemiite resolver problemas que puedan ser representado mediante tina tabla de verdad, En el PICI 6F84 se basa en la utilización de la instniccihn addyf PCI,,F, de este modo, la direccihn del saIto se consigue sumando a[

contador de programa (PCL) un valor de desplazamiento almacenado en el regiswo de trabajo W.

En el salto indexado, la dirección del salto se co~siguesumando a un registro base (el PCL) un valor de desplazamiento alrnrlcenado en un registro índice que es el registro de trabajo W.A cste valor de dcsplazamiento se le denomina también qfl~et. Al ejecutar la instmccihn c r d w PCL,F el registro base TCL) debe estar cargado w n la p r i ~ m direccion de Fa tabla, apuntado de esta manera al origen de bta. En el siguiente ejempto se asimila f5cilmwite la utilidad de salto indexado hardware utilizado s d el esquema de la figura 9-7.

aovf-

ndlw ddwf

P h P

oto

C

oto oto

C

>!o

C

C’

nnO ovlw

h’

IlCl

i4

…mt

ovlw

h’l

,tn

h.

id

: tmp11:matar un:a tabla dc I:i verdad mi ;Por qjtmpto, la Iabla seri de 3 enmb

iancja dc te s tal como I

ovlw

h’l

itn 1717

A’

C ‘ M ~ U L O9: SALTOS

135

o o 1 1 a o 1 o o I;(cd*I-6nl). o 1 o 1 1 o o o 1 i;(-hz). o r i 1 o o 1 1 1 I;@[email protected]&tf). 1 O O ] 1 O O 1 O 1 1 O O O 1 1 O [ O 1 0 1 1 1 1 i 1 i

O O O;wgumidn4). i 1 l;(CdgumcibnS)1 1 l;(Conftguracibnó). 1 1 l;(Wguraciún7).

;im enbndw C, B. A se mectai.mia las llneas del puerto A: RA2(C), M1 (B) y RAU

{A).

;Lassalidasse~enenelpuertnB: ;RBS(S5),lU34 (M), M 3 (S3).RB2 (521, M1 (Sl)y RBO (SO). ;ZONADEDATOS * * * S H * * * l * % ‘ * * * * W ‘ * * * * S I * * * * * * * * * * * * 5 * 1 I I * L * I * * * * * * * * * * * * * * * h * * * * U * * * * * CONFIG CP-OFF & -ri’DT-QFF & -PWRTEEON & XT-OSC

EST

P=16F84A

INCLüDE 4’16F84A.lNG

;ZONADEC~D~GOS**’*******************Q”‘*L******~****#********S:*****~***++*********** ORG

O

; El pmgrama conireriza en h direaibn 0.

bsf

STATWSH’O TMSB blOOO1 1 111′

; Acceso d Banco l . : Las heas

del hiato B se c o n f i p m u como saiida. :Las 5 líneas det Puerto A se configuran como eukada.

TRISA STATUS,RPO

;Acceso al Banco O.

clrf

movlw mowf bcf

s que puedan ser i utilizxiiin de la ;igue sumando al en el registro de

un registro base que es el registro ;fr. Al ejecutar la I con la primera Ito indexado. El

movf

PORTA,W

andlw

b’00000t1i’

goto gota goto

Conf1~0iiO Configuracion 1 Co~guracion2 Corhgumcicin3

goto

goto

Conñguraciod ConfiguracionS Cdguraciaaó

goto

Configmcion7

rnovlw

b’0000101Ot Activasalida

goto goto

goto

;Leo el valor de las

variables de e n e . ;Se queda cm los aec bits de enaada. ; Salta a la configuracibn &macla.

; Confipuracibn O.

; configuracibn l. ‘.CL*******I*

b’OO1OOO1li

:Cun-ih

movb

b’0000111~’

; C 0 n ñ ~ i S 3. o

gota

ActívaSaW

movlw

Cdgumíon4

2,

136

MICROCONTROLADOR PrC 1 bFM. DESARROLLO DE PRUY ECTOS

F RA – MA

mvIw

C

~

8 0

i

El reg un reg

d

mvlw

Los bi puede

Conf~iioti6

PC LA

mwh

soto Cwfigmcion7 mvlw ActivaSalida

mYwf

;V i d i z a por el pueFto de salida

En las soluciones de los ejercicios facilitadas en el CD-ROM que acompaña a este libro, se describe otra forma de implemmitacibn más eficaz mediante el p r o v a indexado-O1 B.acai.

El PCLl bits son transfe tiznen por dcsti

Cuando ! instnicciiin .ad es así, cl salto e que el registro prueba de un sa

; P r o w a para cor ;Se debe comproba 9

; ZONA DE DATO

INCLUO LIST

;ZONA DE C ~ D I

Figura 9-7 Cit.~liliioparu comprnhur ios programas de tabla de ivrdac3

ORG

Inicio goto

c h

9.1 1 SALTO INDEXADO DESCONTROLADO Como ya se explicb en el tema 4, los 13 bits contenidos en el coniador de programa y que direccionan la memoria de código estan guardados en dos registros específicos (figura 9-8):

ORG Principal niovlw

addwf

CAP~TULO12: SUBRL’ITNAS DE RETARDO

i¿R A – V A

173

;ta iiistniccion tarda

cnstal de cuarzo de

Carga contador R-ContB con valor inicial “M”

Carga contador R..ContA can valor inicial “K”

Carga contador R-ConlA con valor inicial “K*

Pequerio tiempo de espera

urrido Decrementa R-CoiitA

:S

resulta necesario

;intervalos

pueden simple de algunas

:0nseguir el retardo rucción es conocido :I registro R-Corrr.4, ibtenw el tiempo de

ijerite fragmento de la figura 12-4(A) se

máquina. d valor de “6”.

:cm (al saltar). ; miquina.

A). ESTRUCTURA DE UNA SUBRUTINA DE RETARDO CON UN LAZO SIMPLE.

Oecrementa R-ContB

B). ESTRUCTURA DE UNA SUBRUTINA DE

RETARDO CON DOS LAZOS ANIDADOS

Figura 12-4 Esfruchci-ade Iw sub~4tjna~ d(9 r~~tnrdo

constante “K” con el que se ha cargado ~iiicialmenteel contador R-ContA vendrá dado por la sigiiientc ecuación, donde el tiempo viene expresado en ps:

Es fácil deducir que el valor de

la

Ziempo=5+4K

K=

EJEMPLO: Calcular el valor de la constante K, para obtener una subrutina de retardo de 500 ps con la estructura de de la figura 12-qA).

1

; apaga durante

Soluci6n: Aplicando la ecuación se obtiene:

Tiempo – 5 – 500 – 5 = 123,7 4 4

;ZONA DE DA

K=-

Así pues se elige K=123, obteniSndcise un tiempo de retardo real de:

Tiempo=5+4K=5+4+123=497ps El ajuste fino para Ios 500 ps exactos se consegurta añadietido 3 instrucciones nop al principio de la subrutina de retardo.

#DEFINE LED

12.5 RETARDOS MEDIANTE LAZOS ANlDADOS

inicio

Para lo genecic18nde retardos de niayor duración deber1 ulilizarse lazos aiiidados, poniendo un lm dc retardo dcntrv cli: otro. La forma de liacerlo se explica en Ins subrutinas “Retardo-200ms” y “Retardo-1 00ms” del siguiente programa ejcinplo, donde a partir de la csmictura de 1 ms conseguido en la sccciiin anterior se obtienen rctardos mayores mediante la redlización de lazos anidados, figura 12-4(B). Este programa es una i~til aplicacion de un LED intenriitcnte para cl circiiito de la figura 12-5.

;ZONA DE C O

ORG bsf hcf bff

Principal bsf cal1

d bcf caii

catl gom

D1

RBO

Figura 17-5 Internaitenle

R1

(

W

318

MlCKIX:OKTROLAWR PIS lriF84, DESARRULW DE PROYWTLiS

c~

4 . ~ 4

i

O RA-MA

20.9 PROGRAMA EJEMPLO Escribir por el teclado de un ordenador y que esta infomacibn se -¡sualice en la pantalla del módulo LCD de un sistema con microcontrolador es un ejemplo inmediato de las aplicaciones que la conexión entrc microcontrolador y puerto RS232 cle un ordcnddor puede ofrecer. Para cl cvmcto fiincionamiento del siguiente programa ejemplo hay que cutnplir los tres requisitos fundamentales de este tipo de comunicaciones:

Hardware: Se ejecuta sobre el circuito di: la figura 20-13, no se ha de olvidar conectarlci al pumo COM 1 o COhl2 dcl ordenador a través del cable RS232. Un programa de coniunicaciones quc se debe abrir en el ordenador, como el evper-Tertninalu otro siini lar. Programa de control del rnicrocontrolador que se debe ejecutar en el rriiccocontrolador.

Un programa de control grabado en el rnicrocontrolador podría scr el siguiente cjcinplii suficientemente documentado:

;En el m&lo LCD se visualizan los caracteres que se escriban en el teclado del ordenador ;y se mnsmiten a h v e s de su puerto serie. Ems &?tos v o l v e a ser enviados por el ; microcontrolador a1 ordenador, por lo que tambikn se visualizxia en su moiútor. ;Se utilizani un programa de comunicaciunespara que el ordenador pueda enviar datos ;a través de ru puerto serie, como el HyperTminal de Windows o alguno similar.

Figura ;

; Concluyendo, lo que re escriba cn el teclado del ordenador aparecer6 en la pantalla de’ ; mduto LCD y cn el monitor del HyperTemind. 7

:~~NADE~AT~S**********5*5******C*C*****Qdii**OiPiP*****CC******~~*~****L**************

Una aplicacii hacia el ordenador. RS232-MEN.MC, 1

“RS232-M( cl microcon

“RS232 LU del ordenad ORG

O

cal1

LCD_Lnicializa RS232-lnicializa

In1c10

mwwf

GtmdaLMo

;Ini~dLCUyIaslúiwiaiquese :van a utiIizar en la c m w i w i h c m el puzrto ; Serie ñS232. ;Esperamibirunmhctm. ;Guarda el daui mibi&.

d

WD-Cmter

;Lo v i s u d k

1 Ptincipd

di

RS232-LeeDato

.+~**L**L.*%***4**.* J I?

j a-;

mbrutinaa tmds del 1

1,.

I I

~:

1, i 11

440

MICROCC1NTKCIL:IDOR PICIGFSJ. DESARROLLO DE PROYECTOS

NCLUDE MCLUDE MCLUI)E INCLUDE END

E m-MA

Para probar este circuito se puede utilizar la tensiiin variable que se obtiene del divisor de tensión formado por R7 y R8. Este voltimetro puede medir una tensión entre O y 2,5 V. Para conseguir otros valores de escalas Iiabria que añadirle a la entrada circuitos atenuadores y amplificadores. Sr anima al lector a desarrollarlo como proyecto.

MCROCONTROLADOR PIC 16FW.DESARRULI.0 DE PROYECTOS

454

O M.MA

52 MODO

SALIDA

MOC3041

A6

7 7 m d1 REO 230 V-

53 CARGA 1500W

DS1820

(V~stopor debalo)

Figura 28-8 Esq ucmd de un termostafo digira)dr’ precisihn

,i*b8**i*C********+**i*******S*+C+SDSi82U

‘T-osm,irsm*********************

; hgrama & conml pm un tmómeim y termostato digital. U t d k el censor de temperatura ; DSl82O que transmite la inform~lcionvia serie a t n v k s de un tiw de ima sola lhea según un :protocolo del fibricwtr:de semiconductorm WaHas Semiwnduciors. ; El ajuste de la te111peratura a la que conmuta el termostato se logra mediante dos puisadores: ;”MODO” e “iNCREMEWAR”,que se conectan a pines del Puerto B y cuyo funciondento ce basa eii ; intmnqxión p cambio mla línea del Puerta B. ;Se maneja de la siguiente I’nrms: En estado de reposo funciona sbto c a n o tennhemi. Aparece la tmpmrura rn pantalla ; de1 niMulu LCB. La salida del termostato está apagada Y Pulsa “MODO” y se ajusta h tmpmtura deseada m&te el p u l d m “INCREMENTAR” ; Vuelve B pulsar ‘MODO”. se activa el temw>stato.Si la temperatura n a d a es menor que ; Itt d m d a mcimde la carga, que puede ser un caiefactm. Si la bemperatura medida es nuiyor que la M a h , apaga la carga. Si se vuelve a pulsar “MODO”, apaga la carga y pesa a funcionar F6Lo como t e r r n h m . ; –

:ZONA DE c ~ D ORG gota

ORG

guiu

Mensajes , rrddwf Mewijchibliciwic

DT “ES.

A-M A –

(:AP~K~LO 28: BUS DE l . r N ~L~NE.A 455

,SI RA- MA

;Así pues, en el circuito se distinguen ms m d o s de funcionamientoque se identifican ;mediante tres flag:

; A)

;B) ; C)

Modo ‘TemiostatotoOFF”,donde funciona como termbniew normal sin temiostato. Se reconwe por e1 flag FTemostato-OFF. Mado “TennosMo-Ajuste”, donde se ajusta la temperatura deseada cuando funcione coma termostato. Se reconoce por el flag F-Termostato-Ajuste. Modo “Tmmtatc-ON”, donde funciona como temrórnetro niirrnal con tmrnosraw.Se reconoce por el flag F-Temiostato-ON.

; El progama consigue que esti activdo uno solo de los flags antenores.

:Al apagar el sistema debe conservar el valor de la temperatura deseada en e1 termostato ; para la priixíma vez que se encienda.

CONFIG -0-OFF & -WDT-OFF & _PWRTE-ON & -_XT-OSC LIST P= 16F84A MCLUDE XP I GF84A.iNC>

; Guarda 10s incrementos cada 50 ms. ;Guarda 10s flags para establmer los ; m&s de trabaja

; Corresponde a la dirección O da la zona ; EEPROM de datos. Aqui se va a guardar e1 : la temperatura deseada. En principio24 “C.

J3

CARGA i5W’N

#DEFIN E #DEFINE #DEFINE #DEFINE #DEFINE

SalidaTemostato Zumbador

PORTl3,I PORTJ3,2

MvdoPulsador Incmenta~pulsador F-Termostato-ON @DEFINEF-Temio~tato~Aji~te #DEFINE: F-Termostato-OFF

TMROCargaSOms EQU cargas eQU

-d’195′ df4O’

PORTB,7 PORTB,6 FlapMdos.2 FlagsMdos, 1 FlagsModos,O

: Cargd controlada por el termostato. ; Aqui se conecta el zumbador. ; Los pulsadms se conectan a estos ; pines del puwo B. ; FIags utilimdos cn el ajuste de la

; temperahira del temiostato. ;P m conseguir intemipción cada 50 m. ; k e r i d a 2s = 40 x 50ms = 2000ms.

7

456

MCKOCONTROLADUR PIC16F84. DESARROI-LO DE PROYECTOS

CR4.W

%K ~ M A

MensajeTemmtato-ON

c h

DT “Termostato: “,OxOB

call

Mt~l~ajeTermnstato~Ajuste

illoy

DT “Tenqm. deseada”,QiiBO

M e n s ~ w m t i m DT ‘T”,OxOO

mv mov ;EjlpmuaLCD:’mC ” ;La seccidn “P

;Nogepitede~ Prmcipal %oto

– Pregara mbdulo LCD. – Configura entradas y salidas – Visualiza monsaje publicitario

1 i

“DSI 820-Inicializa”, comienza

inicial de funcionamiento.

– Inicializa todos los registros. – Recupera la última temperatura deseada del termostato.

– Habilita las tnterrupciones.

Espera las intemipciones.

Figura 28-9 Dit7grntna deflujo principal del temostafodigif nl Inicio d

U=DU=D~iza STA’EUSW

i d

mwhu m 0 4

bsf bsf bcf

bW111′ rnN-REG lddomwm

;Aeacalerde255~d~Oyhab~3ita ;~kadc~I~delaifatoB ;s%cúdñpmacomaataada

WTcm#W zuulhbx

;S

L –

bcf Bef

caii mwlw

d i C&

cal1

STAWSJUW LCDCD~l Mensajehrblicie LCD-Mensaje DS1azo-~nicia~iza ModDTemomt~~OFF

mwwf

TMRDL€arga50ms m 0

d

Carga2s

movlw w

movwf

RegistroSOms

e

~

c

o

m

o

~

.

; S e ~ i t & a l ~ i & h ~ ~

Fipru 2 ;~omieripla~0nwónde1term6metroyporie ; &te n a d a de f u n e i d m . ; Carga el TMRO en comp1emento a 2. ;Y elregistronryo~t~wntadlos2s.

;Su&

“Ser

9

;mactaqiaeha

servicio^

CAPITL~LU 18: BUS DE ~

á’ RA-hL4 –

N LjNEA A 457

cdl

, Lee h pica611QxOOde m a m i EEPROM ~ de datos ;donde se guarda k t e m p e r a t u r a e d e h61m-m

movwf

;v e z q w 9 e ~ . ; Activa inmmp5bn del -0 (m), por m b i o de ;linw dd Puerto B (R3B)y la general (GIE)

c h

EEPRW-LeeDsto m o d -T movh b’lOIU1W DTTCUN

; L a 6 a x i & ~ e s m a n w ~ t o . w o ~ ~ ~ . ; No se puede poner en modo de bajo c o ~ w porque ~ o la inimumi6n “deep7′ ddene el Timer O.

m p a l gato

Priocipl

Q “Serviciolnterrupcion”

pasado 50 ms?

II

I I

“Termomsim” Lee terrnbmetro y actualiza el termoslalo.

¿Han interrumpido las pulsadores?

11

“CarnbiarModo”:cambia el mDdo de funcionamiento.

1 L-.-.'(NO

1

¿E& puisaso

“INCREMENTAWJ

“IncrementarTempOeseada”: Ajusta la ternpsralura deseada.

J Limpia flags de reconocimiento de las interrupciones.

Retorno de la intempcion

Figura 28- 10 Diagramu d’rqfliqode la subrutina de atención a

intewlkpciones

458

MICROCONTROLAWR PlC 16F84. DES4RROLLO DE PROY E C M S

btfsc call btfss pob btfcs al¡ btfss cal1

2 R4-w

; Si es una interrupcion producida por el Timer O ;lee el termómetm y actualiza termostato. ; Si es una intemipcion RBI lee los pulsadores.

INTCON ,TUF Tennometro NCON,RB[F

; &stá presionado el.pulsador de “AJUSTE”? ; Sí. Ajusta la temperatura deseada en el termostato. IncrementarPulsador;¿Pulsado “INCREMENTAR”? ;Si, pasa a incrementar la temperatura deseada. IncrcmcntarTempDcseada

bcf

I

;Esta subrutina lee y ;debido a la peticiba ; temporizaciinide 2

CambiarMdo

Fininterrupcion bcf

Fin[nternipcion

M d o P u lsador

t RA-~,4

; Limpia los flngs de remnocimiento.

MTCON,RBF iNTCON,TOIF

ret fie

Prepara para que se produzca la próxima interrupción dentro de 50 ms

;TarnbiCn actúa so&

Termomebu movlw

m 0 4 decfsz

,

goto

1

movlw

4

mowf cau

1 1 1

call cal¡ d i 1

m

“DS1820-Inicializa”: Coniienza la

conversion para la siguiente

“Termostato”

– NO “ModoTermostato-ON”. apaga la carga. – SI”ModoTemostato-ON”, compara la temperatura medida

con la deseada y actua en

coiisecuencia activando o

apagando la carga

I

I

I1

” ~ i s u a ~ ieii z a el ~ forniato

II

3 Return

Figura 28- 11 Diagrama de flujo de la subrutina Te~mometro

Visualiza la temp se desea ajustar ‘Temper. c

c . ~ P ~ W L28: O BUS DE UNA L

Q RA-MA

– S&mth “T-om-” !

i

I! m

——–. —

* ;Esta subnitina lee y visualiza el tennbmeko cada 2 segundos aproximadamente. Se ejecuta :debido a la peticih de interrupción dei Tmer O, c& 50 m.Para wnseguir una

; temporizacibnde 2 S, habrá que repetir 40 veces el lazo de S0 ms (40~5(hrrY=7000ms=2s). ; Tarnbih actiia sobre la salida dei termostato posicimbndofaadecuadamente.

Termmietro movlw , movwf

; Recarga el TMRO. ; Decrcinenta el cmt~dor. :No lian pasado 2 segundos, por canto sale : Repow este contador nuevamente.

decfsz goto movliv monvt’

; Lee la temperablra. ;Comienza conversiónpara la siguiente 1ectm.

cal l

cau cal1

. Actha sobre el termostab. ; Como e s n subniha se caribe ri continuación ; se ahorra e s t a dos instniccionrs y ahm ; tarnbien espacio en la pila.

cal1

return

0 “Visualiza”

en formato:

se desea aiustar en formato: ” ~ e m ~ edeseada” r. 25OC ” I

1

Visualiza la temperalura medida en formato: ‘Termostato: 25OC” 24.5% “

y la deseada

Figura 28-12 Diagrama de$ujo de la subrutina I~’isimliza

~ 459 A

; V i s u a ü z a d t ~ e a ~ f ~ p o s i b l e s : Con el [email protected] hacth-ado, m& “Temmkto-OFP. Pm ejernpb: ; A) ‘ ~ , ~ P pmua d ” W) ” 24.5% ” (Segunda u). ~enlaprimcra~se~zaunmemjepub-lic~ayenIa

SegUadsttneahoemparaturaaedrBa~tual.

$

; B)

Ajuste &1 termostato, modo Tmmebfa-A&e”.

* ; C)

Con el

PM e j 4 o : ‘Trroper.~”~~~ ” 25% “([email protected]áalinea). Dondemlasc~~vidizala~attíraqire~dcseaa~. &va&, modo ‘ T m m – O WPor , ejenrpQo: Tcmroststo: m” wntm un#) I’ 23.5% “f-dalmea). ~enlaprimemlinease~la~~qiiesedfsa

i

i

I

; “VisdizaTermom 9

;En laprimeraha ;temperaturam&b 9

;Enldas: *

I 7

– 1 ;

VidizaTemonm caH

movlw call

VisuaiizeT~tur movlw

d btf~ gm T e m m – w

i

i

t

temprr#ra ajustada en Imi suhutha bmmmtar.

T(e-&)

t

; Enmdax

I

Visuai~Term~atato~Ajuste

i !

,

cdl mvk call

LCDLineal

movlw cal1

-6 LCD-PosicionLinea2

MensajeTemstato-Ajuste

;Se sihia al principio di la primera ha ; Visualiza men6s.e en la primera hm.

LCD-Mensaje ; Se coloca para centtarvisudhcih m ia ; segunda Uaen.

VWT-

1.

. .. .-, . .-

M.-.

T

w

W

.

,

.

. , -.

.; . .

.-..

.-

, ..

movhv

cal1

1

; Se s i h al principio de h primera ha.

162 M J C R C ~ C O h T R O L ~PtC R 16FM.DESARROLLO DE PRCiYEC’TOS

;Salida 9

decisiones sobre h salida. @S 1820_S&io), registro cori el aig1-10 de la – t medida. Si es cero b tmpmm es mitiray todos sw bits son “1 “,es negativa

Su funcionamiento: Estando apgada, si la temperatura medida k i e n d e por debajo de la

I

O R 4-MA

temperatura deseada la salida se activará. Estando encendida, si la t m m medida supera la dcseada la salida ce apagará. Si las temperahiras medidas y deswida son iguales se qu& en estado anterior,tanto si está encendida w m o si má apagada. M temperatura negativas la salida se debe aictivar siempre.

Temostam btfss

FTemostato~ON ; Si el t m o ~ t no o está activado salta a Apagacarga ; apagar la carga. Msc DS 1 82OLTemperaturaSipo.7 ; Con bmperatum negativas pasa a activar goto EnciendeCarga ;la carga. btfvv SalidaTmvstato ;Comprueba el estado actual de h salida para gotd SalidaEstabaApagada ; actuar en cnnsecuencia. Sal idaEstaMctivada ; Pava a coinprcibar si tiene que apagar la carga. rnovf DS 1 8 20-Temperatura. W

goto

subwf

TeniperdrurdDeseadn,W

bik

STATUS,C

goto

FinTmostato

cal1

Pitido

ApagrtCarga

SalidaTcrtiiostato goto FinTwmostato SalidaEutabaApagada rnovf TmperatmDesctul&W subwf DS 1820-TempcraturqW btfsc STATUS,C gota FinTermostato Enciendecarga cal1 Pitido bsf SalidaTcmostato FinTemostato bcf

: (W)=(TemperaturtiDcslada)-(DSI820-Tanpe~tura). ; ~(Teniperahml3escada)QDS 1820_Ternperanira)? :Si, por tanto, lo deja encendido y sale. ; Pitido cada vez que conmuta la carga. ; Apaga la salida y sale.

; Pam a comprobar si tiene qiie encender la carga : w)=(DS 182O-Teinpera~)1Tempm~eseariii). ;¿@S 182~Teinpcraturar(TemperaturaDeseada)? ;Si,la deja apagada y sale.

;Pitido c&

vez que activa la carga.

Retum

Subm-

“Camb;arM&” v “M&Tm ustatri -O F P

; Subrutina dc atención a la intcmipcion pducida por e1 pulsador “MODO” que canibia el. m& ;de funcionamiento.Cada vcz que pulsa pasa por los modos “Tennostato_Ajusie”,”Temio~tato~ON, ; “Termostatc-OFF”y vuelta repetir. ;El ajusic de la temperatura deseada en el termostato se logra mediante dos pulsadores: “MODO” ;e “1NCREMENTARUc o n d a s a pines del Puerto B.

:Así pues, el 1 ; Euncionarnie ; – (FlagsMd

; – (F!apMod ;- (Flags&ld ; Pueden dan

; Al principio aparecmá s61o el tcrmbmetro y el termostato estará desactivado:modo ; “Termoritato-0Wt

;

; Para comprender el fwicionamie;ito de esta subnitina, hay que saber que el registro FlagsModos ; contiene 3 f l a p que permiten diferem.iar cada uno de las modos de funcharniento:

;

Qu (fl

*P

‘Ti

c . ~ P ~ 28 U LBCrS ~ DE UNA LMEA463

B R A-MA

I “PitidoCorto”en el zumbador.

– S I esta en “ModoTerrnostato-OFF” pasa a “ModoTermostato-Ajuste”.

– Si es& en “MadoTermostato~Ajucte” – Pasa a “ModoTemostato-OFF”.

paca a “ModoTermostato-ON”.

ll 1

“LCD-Borra”: Borra la pantalla. “Visualiza”: Segun el formato de cada modo.

– Espera deje de pulsar.

c3

11 l

Return

; A) ; B)

; C)

> ON”,

j

Modo “TermostatqOFF”, donde funciona como tmnúrnetra normal sin termostato. Se reconoce por el flag F-Temosiato-OFF, que es el bit O del ~ g i s f t nFlagsMhs. Modo ” T ~ r m o s t a t ~ A je”, u ~donde t sc ajusta la ternperahira dewda cuando funcione como termostato. Se reconoce por el flag F-Tmostam-Ajuste, que es el bit 1 del registro FlagsMdou. Modo “TemostatqON, &nd

; Así pues, el contenido del regism (Flas~Md

:Funcionamiento: ;- (FIsgsModos)=b’0000000l’. Esta en el modo “Terntosratci-CjFF”. ;- (FlagsModos)=b’O~lOi. Esth en el modo “Tennostato-Ajute”. ; – ~FlagsMdos)=b’00a00100′.F A en el modo “Tcmotitato-ONU.

I

1

; Pueden darse dos casos: Que pulse “AJUSTE” e& ; –

N

en el modo m&, alto, “Termostato-ON”, (FlagsMdos)=b’00000 100′. En este caso debe pasar al modo inicial “Termostato-OFF” poniendo (FlagsMdos)=b’0000000 1′. Que pulse “AJUSTE” estado ya en cualquiera de los otros dos mollos, m cuyo caso &be

Jh4

MICROCONTROLACKIR PIC 16F84. DESAIZROLLODE PROYECTOS

ejemplo, si antes esata e5 m&

“Teimasq,OFF”,( F l a g ~ U d m ) = b ‘ m I pmud ‘, a ( F i a g s M o d w ) = b ‘ ~ 1O’ que idedifica al m& “Temocta~i~psUste”.

d

haf&-2(hns

btfsc

M&-

goto

FinCambiarMh

;Si es m rebote, sale fuera

cal1 PitiMom btfs PPT~ostatotoON goio Modosiguiente Modo’Tert-r~ostato~OFF dl Pitido

bcf rnovlw movwf gow

SaiiditTemost~io b’0000a001′ FlagsMh Borrapantaita

; Cada vez que pulsa se oye un pitido.

;DeectasidmeliUtinrom&. ; Si no. pasa al modo siguide. ; Pitido cada vez que conmm la carga.

;Apaga la carga. : ActuaIiza e1 registro FlagsModos psmdo al ;modo inicial “Temiostato-OFF”. ;Desplaza un ” 1″ a la izquierda del registro ; FlagsModos p m ajustar secuenciatmente ;cada urio de Ios modos de fiutcionamienio.

cail LCD–Borra FinCambiarModo cdl Visualiza btfss ModoPuisador goto FinCambiarModo

;Borra la pantaik anteríor.

; Ahora etipera a que deje & pulsar.

INCI

END ; pr-al

su d o r en caso que desaparaca la dhentacih

TmperamaMinima EQW TeinperaWaxima EQU

.?O .36

Incremen~Taop~ 4 Retardo2hs ;Espera a que se estabilim nj~elcsde tensión. btfsc i n c r e m e n & M r ; si es un rebote d e fuera. goto Finlncrementar b& FTem~tatD~Ajuste : Si no est6en mDdo “Termostib-Ajuste”sale goto FinIncrementar c d

PitidoCofto

incf movlw

Temperammhmdaf

subwf

b& goto

movlw movwf

; I m t a el valor de h tempmba deseada. Temperatumhhh ;¿Hallegado a h temperatura maxima de ajuste?. Tarpm~eada,W ;IW)= ( T e m p m W a d a ) -Tmpmatar&kim STATUS,C ; ¿(T-eadaPTemperaW-7 V i s u a l ~ c r e m e n bNo, : pasa r vimdhrIo. TempemmMinima ;Sí, eatmces inicializa el regism. T~~

Este n 28-6. que res pulsadores, i estará trabaj; necesidad de

PJ M-MA

I

c RA-VA

CM~TIJLO28: RliS DE UNA L ~ F A465

Visual-ito

caU cnU btfss g* cfrw mvwf mvf call

Vkualim

: Visualiza mienmiespm a que dqe

Retad-200ms

; de puisar.

Inmmntddaador; M i m a p n m n e z c ~pulsado, IncremenierTempea$8 ; incmmta el dlgiio. ; Saiva tl valor de la tempemmra deseada en la EEADR ;posición 0% de la EEPROM de daros. Se consewa

Ternperatm&w&,W ; aimqiie se apague la dimentacibn. EEPROM-Em’beDm

Fidnmmentar rem

Pitidohgo bsf c d

bsf call PitidoCorto

Pitido

bJf caU bcf renim

Zumbador Retardo_SOOms Zumbador

Retardo-200ms Zumbador ReW020ms Zumbador

LNCLUDE

WCLUDE INCLVDE JNCLUaE SC7D_4BlT2INC> INCLCTDE INCLüDE <EEPROM.ZND

; Subnitinac de control del bus de 1 Ihea. ; Subrutinas de control del termómetro digatl.

END Estc mismo programa puede servir p m un termomctro digiial coino el de la figura

28-6, que resulta ser el mismo esqucma del termostato, del

cual se haii eliminado todos los piilsadores, zunlbador e interface con la carga de 230 V. Eii consecuencia, el programa estará trabajando siempre en el modo “Termostato+OFF” como simple termómetro, sin necesidad de alterar nada del programa del termostato.

1

i

i

,, ,

!

CAPITULO 29

MOTORES DE CORRIENTE CONTJNUA

Et cotiíicirniento dc los sistemas control de motores dc comerits continua C.C. (i) DC) dt: pequeña potcncin es fundamcntnl par:i cualquier aficionadri y ut: quiera rralizar proyectos con ~~iicruc(intr~c~ladorcs, por lo qiie Ic dedicamos este capiiulo. El primer problema a considerar es la formri de alimentar el motor. ya q i i t la corriente mrixitna quc puede proporcionar cualquier linea de salida de un PICI 6FX4A cstá limitada a 35 mA como rtii-xinio. Esta corriente cs demasiado pobrc para alimentar un motor DC ciirectarnente. Por ello, se hace necesario la utilización de trarisistorcs que pueden ir coiitigurados en difei-eiites disposiciones,siendo la más utilizada e1 Puente en H (figura 79- 1 ). VCC- 5 0

I

& –

Figura 29- 1 Puente en H con trc~lisistore.~

46% MICROCONTROLAWR PIC i6F84. DESA RROLLC) DE PROYECTOS

~RA-MA

29.1 PUENTE EN H Es conocido que el sentido de giro de un motor de corriente continua depende de la polaridad que se aplica a sus terminales, en consecuencia para cambiar el gro es necesario intercambiar los terminales del motor o bien cambiar la polaridad de la alimentación.

Figura 29-1 Fitncionarnicnru con 11 a nivel alto e l2 a ani~vlbajo vcc- 5v

L293R y el enc

Figura 29-3 Fu~cionnmienfo con 11 a ~tiilelallo r 12 cr nivel b4do La forma más sencilla de conirolar un motor de corriente continua de baja potencia, en velocidad y sentido de gro, es mediante la comiiutación electrónica de unos circuitos realizados básicamente con transistores que reciben el nottibre de Puente en H, como se describe en la figura 29- 1.

C A P ~ T U79: X I MOTORES DE CORRENTE CWNTITMUA 469

72 RA-M

:nde de la I giro es iad de la

Ja de baja

ica de unos

iente en H,

Este circuito está f o m d o por cuatro transistores que trabajati en conmutacioit y se coniportan como interruptores controlados por la señal que les llega a las entradas 11 e 12. Su funcionamiento es el siguiente:

Cuando se activa la entrada 11 a nivel alto y la entrada 12 a nivel bajo los transistores 43 y 42 (NPN y PNP) entran en saturación simultáneamente, mientras que Q1 y Q4 están en corte por ser de signo contrario (PNP y NPN respectivamente). Eri estas condiciones el motor gira en un sentido, por ejemplo en el contrario a las agujas del reloj (figura 29-2 ). Cuando se invierten las señales de entrada, es decir 11 a nivel bajo e 12 a nivel alto, los transistores que se satiiran son Q I y Q4, micntm que los que entran en estado de corte son 4 2 y 4 3 . Esto hace que el motor gire en sentido conkario

(figura 29-3).

El problenia de este tipo de circuitos es la caída dc tensión real que hay en los transistores y que habrá que compensarla con L? tensión de alimentación. Para evitar estos problemas se puede utilizar circuito integrado como el LM193B.

29.2 DRIVER L293B El L293B es im driver de 4 canales cap:= de proporcionar una corriente de salida de hasta 1 A por carial. Cada canal es controlado por scñales de entrada conipatibles TTL y cada pareja de canales dispone de una señal de habilitación que desconecta las salidas de los mismos. La figura 29-4 describe cada una de las patillas de las que dispone el L293B y el encapsulado de 16 pines.

CHIP

ENABLE 1 INPUT ‘i OUTPUTI

GND GND OUTPUT2 INPUT 2

vs

Fipm 29-4 Pufillujcl del Driver L2938

470

MlCROCONTROLADOR PIC IhF84. DESARROLLO DE PROYECTOS

O RA-ht4

29.3 GfF

Dispone de una patilla para la alimentacibn de las cargas que se están controlando (Vs) de manera que dicha alinientacibn es indepcndjentedc la 16gica de control.

La figu cotitinua que g

La fiyum 29-5 representa el diagrama dt. bloques del L293B. La seiial de coritrol EN1 activa o desactiva la pai.qa de canalcs formada por los di-i.zrs 1 y 2. La señal EN2 controla Ia pareja dc drivers 3 y 4. Las salirlas OUTn se asocian con las corresporidicntt.~ INn. La tabla de dicha figura detalla cl funcionainieritoparri cada uno de los drivers.

El mo detien El mo dciien

+VSS

H

L

= Nivel alto

“1”

Nivel bajo” O Z = Alta impedancia VS

Figurrr 29-5 Biirgrma de bloqir P.S del L293 8 y tahlu de funcionumiento

k

La tabla 29- 1 informa sobre los ttiáximos valores admisibles. Fier La Tabla

Tensicin de entmda Tensidn de habilitación

Tabla 29- 1 Rnngo.s absolutos del driver L293B

Tabi

También se fabrica el modelo L793D, cuya principal diferencia respecto del L293B es que proporciona una comente mixirna de 600 1 1 ~ 4 . Veamos seguidameiite algunas formas de coticctar los motorcs de corriente continua a este driver.

Es iiidispi motores tal coi

contraelectromo

conmutücián. 1.

6: RA-M,+

CAP~TULO79. MOTORES DE CORRIENTE CONTTNUA 471

29.3 GIRO EN UN ÚNICO SENTIDO

:c(>~~trol

ñal EN2

~ndientes :s.

La figura 29-6 mucstra el modo de funcionamiento de dos motores de corrieiite continua que giran en im Uriico sentido, suponiendo que lri Vinh = 5 V : m

El motor M 1 sc pone en marcha a1 poner 3 niwl bajo la cntnda de control A y se detiene con uii nivel alto de entrada. El nintor hI2 se pone eri marcha al poner a nivel alto la etikada dc control B y qe deticnc con un nivel bajo de entrada.

F i p r a 2 9-6 Cunei ion de dos mofvre.rDC. MI activo por “O” y M2 por “1 “

La Tiibla 29-2 mucstra el modo dc iuncionamicnru del circuito.

?ecto del

corriente

Tuhia 29-2 Modo de,func.ionumit!n~o (I(/I r.ir.c-zríto de lu$gira 29-6

Es indisperisable conecta los diodos D 1 y D2 en paralelo con los devanados de los tnotorcs tal como muestra la figura, como protección ficnte 3 los picos de fuerza contraelectromotnz producidos por la carga itiductiva de la bobina en el momento dc la conmutación.

472

~ C R O C O ~ O LPIC1 ~ t6F8-4. t DESARROLLO DE PROlTCTOS

ORA-MA

29.4 GIRO EN LOS DOS SENTlDOS El circuito de la figura 29-7 pemiite controlar el doble sentido de giro del motor: Cuando la entrada C estíi a nivel bajo y la D a nivel alto, el motor gira en un sentido. Cambiando la entrada C a nivel atto y la D a nivel bajo se cambia el sentido de giro del motor al contrario.

Figura 29-7 Circuito dr controlparu el doble giro de uli motor de C.C.

Los diodos de protección se pueden cotiectar segun se muestra en la figura 29-8.

Para

(

MotorDC-01 .a marcha del mo La posición de depende de la motor los giro! en la figura 29-

Figura 29-8 Conexión de diodos de protección d circuito de 1aJ;guro29-7 La Tabla 29-3 muestra el modo de funcionamiento del circuito.

CAPÍT~ZO29: MOTORES DE CORRIENTE CXIhTWUA 173

ORA-M4

del motor: or gira en un

. el sentido de

i.

I

‘,S, Tobh 29-3 Modo de~firncionnmieprivdc.1 cirrui io d~ Iu.fip4r’rr 29- 7

29.5 CONEXIÓN

DE MOTOR C.C. Y PICl6F84

$

LIfigwa 79-9 iiiueslra una conzxih tipica de un motor de corriente continua a rin microcontrolador PIC16F84A a traves de un dnver L293 B. La tensión aplicada al pin Vs es la de alir~ientacihndel motor, en este ejemplo se utiliza un motor de 12 V.

Figuru 29-9 Con PO/ de motores c.c con el dnver L2933 y el P1CI 6FMA 1 I

‘ , I

rra 29-7

i

Para comprobar su funcionamiento se puede cargar el progrania McltornC-Ol .asm, que controla el bivcr dcl motor. La l inea RAO curilrula la puesta en marcha de1 motor, si RAO es”O” el niotor se pone en marcha y si RAO es “1” si: detiene, La posición del interruptor conectado a RA4 controla el sentido de giro que por supuesto depende de Ia polaridad de conexidti del motor. si se intercambian los terminales del motor los giros serrin en sentido contrario. El organigrama de este programa se muestra en h figura 29- 10.

:li b

474

MICRCK’ONTROLADOR PlC l hFñ4 DES .ARRULLO DE PROYECTOS

“MotorDC-0 1 .asrnm

Configura lineas de Entrada y Salida.

Gira a la DERECHA: RB4=1, R B I = l , RBO=D

Motor PARADO:

Fi_qum 29-I O Orgunigrt-rniodel pruguma MotorDC-0 1.m m

;Programa de control para un motor & comente continua en funcionmienio y sentido de ; gim. Con R A e O . el motor se pone en niarcha y

CONFIG -CP-OFF & -WDT-OFF & -PWRTE-ON & -XT-OSC LIST

P=16F84A

WCLUDE

PORTA,O PORTA,4

; Ititemrpionde pmsh en marcha. ; Intemiptor de sentido de giro.

; Z O N A D E C ~ D ] ~I + S b*L**L”**W******V***#********************************************

La ~CXIS frecuencia con variando el ci sumjnistra al rr

; Configura las Iineas & enkda.

hf clrf bcf

Entradakitido PORTE3 STATUSRPO

: L a h a s del Puerto B conñguradas como salida. ; Con esta cornbinacibnse detiene el motm. ;Comprueba el estado del Uitmqtm de funcionamiento.

alimentacihi di

C A P ~ W L O29: MOTORES DE CORRIENTE CO N T I N U A 475

,ou-VA

goto

ActivaSSda

movlw

b’m0100iO’ Ent~~daFentido

btfic movhv

Activ&lida movwf goto

bfOOOI0001′

; Girti en un sentido.

; Cornpnieba el sentido Ge giro deseado. ;Gira en el otro satrido.

PORTB Plimipal

29.6 CONTROL DE VELOCIDAD La velocjdad de un motor de corriente continua depende del valor medio de la tensi6n aplicada en sus extremos.

El sistema más uti1i;tado para controlar la velocidad de un motor DC’ de pequeña potencia es mediante la modulacion por aricho de pulso P WhI (Pulse Widdi~Modulufion) de una señal cuadrada TTL, como muestra la figura 29-1 1. Bajo el control PWM. el motor gira a una velocidad determinada por la media del nivcl de la señal cuadrada. O% (Motor parado)

100% (Velocidad rnAxirna)

Figura 27- 11 Control velocidad de un nutur c.c. mediante PIIffid La tensión continua mcdia presentada al inotor se controla manteniendo la frecuencia constarite, y variando el tiempo que la señal permanece en alto, es decir. variando el ciclo de trabajo (duty cycM. Así, si el ciclo de trabajo cs del 50?.1óse suministra al motor una tensión media del 5098, con un ciclo de trabajo del 20% sólo una

quinta parte de la tensibn t t h i m a es suminjstrada a la carga. Cambiar de un ciclo de trabajo de1 50% a otro del 20% conllevarii una disminucion de la velocidad del motor. La regulacian PWM proporciona iin eficaz método mediante la utilizacion de una simple señal digital de control. Si se utiliza una señal de estas carrictaisticas para atacar In entrada EN1 del montaje de la figura 29-9 se consigue que el valor medio de la seíial de alimentación del motor varie, de tal manera qiie cuanto más tiempo cstC la linea RB4 a

476

MICROCONTROLADOR PIC IúF84. DESARROLLO DE PROY ELTOS

Q RA-MA

U RA-M4

nivel alto más deprisa girará el motor. Ldgicamente si la duración del impulso a nivel bajo es muy grande el motor se parará. ‘MatorüC-a2.asm”

.*#*~*****d

Configura llneas de entrada y salida

de anchura^

Motor Parado: RB4=0. RBI=O, RBO=O

(RA3:RAO)-r (Ciclos-ON) ID – (RA3 RAD) + (Ciclos-OFF)

Motor en ON: R84= 1, R 8 i =l. WO=O

;ZONA DE I

-C

LIS

Retardo de 100 ps

INC CBI Cici Cicl

(Ctclos-ON) – 1 + (CiclosON)

Gua EM Maximenwr Motor en OFF: RB4=0, RBI=O, RBO=O

;ZONA DE C

OR( inicio

I d mov

Retardo de 100 ps

mw

ckf

(Ciclos-OFF) 1 4 (Ciclo-FF)

Wpal mOY

a¿Klh

m bth

Figura 29- 12 Organigrama del pr-opnnia AhtorDC-02. arm

m’

srPbh

liso a nivel

El programa MotorDC-02.asm es un ejemplo de gobierno de la velocid-id de iin motor de C.C. mediante control PWM. Su funcionamiento se explica en los comeiitarios y en su diagrama de flujo de la figura 29-1 2. .**+VV*+*+**C*88*************IMOtor~

M,-****Y*W***V***********..*..****..

9

; Programa de regulación & velocidad & un motor de corrientecontinua mediante Ia modhciiin ; de anchura de pulso (PN’M).Por la línea de salida se genera una onda cuadrada de kmewia ;wnstmte a 1O0 Hz @ocio de 10 ms) y ciclo de trabo d a b l e desde 0% a X W h ,dqmdicndii ;de1 dar de la entrsda del Puerto A. Es decir, el tiempo m aito varia entre O ms (0%) y 10 ; ms (1 00%) de a c u d o con la siguiente tabla:

(Ciclos-UFF)

(Ciclm-Or)

DC (YO)

Entrada

-CONFIG -CP-OFF LIST P=I FiF84A

8: –FF

SEMiPWODO ALTO

SEMIPERIODO BAJO

& _PWRTE-ON & -XT-OSC

INCLUDE e l bF84A.INO

MaximaEnaada

EQU

-10

ORG Inicio

bsf STATUS,RW movlw b’00001111′ mvwf r n A M

TiUSB

M

STATUS,WO

Prhcipal mMrf d

w

m* btfsc

;RA3:RAOcano mmdas. ;Las iáieas del

0 s.e-aonfigtuanwmo didas.

,

MICROCONTROLADOR PIC 1 hF84. DESARROLLO DE PROYECMS

478

btfsc gow btfss goto movwf

movf movwf

Motor-ON moviw

STATUS,Z m-IDDPoiCietito STATUSC IX:-CeroPaCim Ciclos-OFF GuardaEnwada,W Ciclos-ON

; ,i,C=l?, i(W) positivo?, L(PORTA%=~ 07 ;Ha resultado (PORTA> 10) ; ~O-(PORTA)–~~~C~S-OW). ;Carga RA3:RAO en (Ciclos-ON).

btOM)lOO10′ PORTB Retardo-lms Ciclos_ON,F Moto-0N-t-2

; Habilita los drivers y un sentido de g h .

clrf cau decfsz @m

PORT3

; Inhabilita los drivers. Motor parado.

g*

Fin

movd

caU decfsi gota

rEi R A M A

; Si (Ciclos-ON)=O salta a Motor-OFF.

Motor-OFF

~ o 0 l m s

Ciclos-OFF,F

DC-CemPotCiento clrf PORTB gota

;Si (Ciclos-OFF)=O salta a Principal.

MotorLOFF+l ; Inhabilita los dnvers. Motor p&.

Fin

K-1M)PorCiento

Fin

movlw

b’0001001Ot

movwf

PORTB

goto

Pnncipd

; BabiIita los drivers y un sentido de giro.

La generación de la onda cuadrada PWM tambien se puede realizar mediante interrupciones por desbordamiento del Timer O, tal como sc cxplico cn un cjcrcicio del capitulo 18. El siguiente programa es un ejetnplo de ello.

Programa de mntroI de velocihd de im iiiotor dc crirricntc coiitinw mediante la modulacihn

:

;de

wchim de pulw (PWM) similar al M~iiorD-O?.asmdonde el control de tiempos se realiza

; mediante iniempcionrs por dwhrdaniirnto del Tiincr O.

:El sentido de giro del motor se decide en fuiicion del valor dc la lina RA4. ; El control de las lineas de salida se realizi+ mediante direcciunamiento por bit con ; las iimiccionrs “bsf’ y “bcf’.

CBLOCK OxW CicloTrabajo

; Ciclo de

habajo d e d .

b Rn-MA

CAP~TULO 29: MOTORES DE CORRIEKTE C:CNlT?JUh

GuardaEntrada Tirnd-ContadorA

; Contdor auxiliar.

ENIX TMRO-Cqa

EQU

4745′

MaxirnaEnrrada

EQU

.10

#DEFINE SalidaSmtidoO #DEFiNE SalidaSemidol #DEFINE %lidaMarcRa

PORTB,O PORTl3,l WRTB,4

#DEFlNE EntradaSentido

PÜK’i’A,4

; Valor obtenido expcrimentahente con la ventana ; Stopwatch para un tiempo de 1 ms. ; Salidas

determinan el sentido de giro.

;Salida de puesta

;~ONAWEC~~D]GOS**~***V+LC*****S***~****IC*U~**U~~~C~******V******~VV**~********~***~

ORG goto

0

inicio

ORG

.4

goto

TimerOrOlntemipcion

bsf

STATUS,RPO SdidaMamha SalidaSmtidoO SalidaSentidol b’00011111′ PORTA b’0000000I’

Iaicic!

bcf hf

bcf movlw movwf movlw movwf bcf

bcf

nediante

cicio del

474

;Estas 1Inea.s se configuran como

dida.

;Aierto A confiprado como eneada.

, ThlRO cun p~iscalerde 4.

OFTIONLREG STATüS,RFQ SalidaMarcha

; Al yiriiicipio el motor parado.

Principal

bsf

!%baddenti& OtroSentido SalidaSentidoO

hcf

Salid9Stntidoi

btfsc goto

goto Otrosentido

TesteaVebcidad

bcf bsf Trsteavclocidad movf

SalidaSrniido0

movw f

btfsc

STATUS,Z

goto

DC_CeroPorCiento MaximaEutmda STATUSL E – 1 OOPoKiento

sublw btfsc goto & goto movf mmwf moviw

; Gira en un sentidó.

;Gira eii el sentido opuesto.

SalidaSwtidn!

PORTA,Mf b’00UOllll’ GuarciaEntrda

andlw

;Comprueba el sentidu & giro deseado.

;h e el puerto de entrada :Guarda e1 v~lor.

:(W)- IO-(PORTA )

STATUS-C

:iC=l’?,

DC-CeroPorCiento GuardaEntrada.W CiclaTraba~a b’1 0 10000iJ

; Ha resultado PORTA> 1 0.

positivo?, ¿(FORTA)

480

MICROCONTROLADOR PIC 16F84.DESARROLLO DE PRUY LCTUS

mm-f N Fin

; A u t h inferrupcibnTOT y la -1

O M-MA

(GIE).

goto

DC-CeroPurCiento bcf SalidaMarcba goto

: Pwe la salida siempre en bajo.

MiabilitaInternrpciun

m-1OOPorCiento ;Pone La salida siempre en alto.

bsf SaLdaMArcha lnhabilitalntemrpcion clrf INTCON Fin goto hincipal Subnitina ” T k e d-Intemipcicm”

;W

i t a iiitffnrpcionm.

———u——————–

; Mantiene la &da en alto un tiempo i g d a 1 ms x (CicloTrabajo) ; y en bajo iui tiempo igual a 1 m6 x (10-CicloTrabjo).

CBLKK –W M-STATUS ENDC

TimerO-intempcion mowf G d – W mapf

STATiJS,W

movwE Guarda-STATUS bcf STArnS,RW movlw TMRO-Carga movwf T M R O decfsz Thd-CmtadorAS gota Fin_TimerO-iniemipcion kfs Salid&mha gm

1

;Guarda los valcm de ttnian W y STATUS en el ; Programa P&*. ;Garantiza que trabaja ai el Banco O.

; h m m t a el contador. ; Testea d anterior estado de la salida

EstabaAlto

EstabaBajo

bsf m& mwwf goto EstabaAlto movf sublw

S h W h a

:Estaba bajo y lo pasa a alto. ;Repone el contador nwammte crin el tiempo en CicloTrabajo,W ; alto. Tiind-ContadorA Fin-TimerOerOIn~pcion

SalidaMarcb

;Bt&ad~ylopabrijo.

CicloTrribajo,W

; Repwe e1 c m t a h nuevmnite con el tiempo ; en bajo.

.lO

TUnaO-ContadmA Fin_TmerOerOh~ion

mwwf

movwf

swapf

M-STATUS,W STATUS

swapf

Guarda-WF

swspf bcf

C ~ – W , W

bcf

INTCON,TOiF

Fetfie

mc0NJwIF

No es ra conseguir un rr de iin proyecto.

; Restaurs regidros W y STATUS.

Los m01 dispositivos COI papel de una ir disqiieteras de obsenra que en por el eje del m

Los mot comente contin hacerlo continu rnicrocoiimladc dentro de una control de pos revoluciones pc y carsa mecánii por niétodos ser

Un motc devanados. El i Cada pulso pro

c APÍTULO

30

MOTORES PASO A PASO

No es raro qiie un aficionado a la electrónica desguace una vieja impresora para conseguir un motor paso a paso y poder realizar alguna tarea de posicionamiento dentro de un proyecto. En este capitulo se explica coi~iotrabajar con estos utiles motores.

30.1 MOTORES PASO A PASO (PAP) Los motores paso a paso o PAP (Stepper ,Ilotorj son muy utilizados en los dispositivos controlados por sistemas digitales. Por ejemplo los mecanismos que arrastran papel de una impresora, [os que mueven cl brazo de un rvbot o los que hacen gii-m las disqueteriis de un ordcnador dependen de motores PAP para su funcionamiento. Se observa que en estas situaciones se requiere un conml pr~cisode la trayectoria a seguir por el eje dcl motor Los rliotores PAP proporcionan iitu considerable ventaja sobre los motores de corriente continua o DC. El eje de un niotor PAP gira a intervalos reguiares en lugar de hacerlo continuamente, como ocurre con los motores de continua. Bajo el control de un rnicrocontrolador, los mvtures PAP puden ser usados para pasicionarnientos precisos dentro de una amplia gama de aplicaciones, incluyendo robótica, autornatización y control de posicionanuentu. La velocidad de un motor de DC viene expresada en revoluciones por minuto (yni) y es función de la tensicin aplicada, corriente por el motor y carga mecánica del mismo. Un posicionamiento preciso de un motor DC no es posible por mhodos sencillos. Uri motor PAP gira en h i c i ó n de una secuencia de pulsos aplicados a sus devanados. El eje del motor gira un determinado ángulo por cada impulso de entrada. Cada pulso provoca la rotacion del mtor ciel motor en un increttiento de ánguio preciso,

e . .

j;

j

i

,/& I

E

482

MICROCDNTROLAWR PIC 16F84. DESARROLLO DE PROYECTOS

O RA-MA

denominado paso, de ahi el nombre de motor “paso a paso”. El resultado de este inovúniento, fijo y repetible, es un posicionamiento preciso y fiable. Los incrementos de pasos de la rotación del rotor se traducen en un alto grado de control de posici~namiento.

Los incrementos de rotación o pasos se miden en grados y es cl paramemo fundamental de iin motor PM. Tarnbien se piicdc cspresar en números de pasos por rcvolucion de 360 grados. Un motor paso a paso puede girar un número exacto de grados en ambos sentidos. Los motores PAP se comercializan dentro dc una gran variedad de grados de rotación por paso, desde 0,72″a 22.5″. correspondientes a 500 y 16 pasos por revolución, respectivamente (efectivamente, 360°;0,72″ = 500 y 360°/22,5″= 16). El motor PAP más comerc~alimdoes el de 7,5″ por paso o 48 pasos por revolución. El principal problema que presentan los motores PAP es su limitada poteiicia. Sin embargo, este problema esti siendo resuclto por los iiuevos diseños, con los que se ha logrado potencias superiores a 1 CV.

En este capitulo se va a explicar como realizar el control de niotores P.4P mediante un microcontrolador PIC16F84, pero antcs liay que examinar sus pnticipios de funcionamiento.

30.2 PRINCIPIO DE FUNCIONAMIENTO Aún basados en el mismo fcnhmeno que el principio dc funcionamiento de los motores de corriente continila, los niotores paso a paso son mis sencilos, si cabe, que cualquier otro tipo dc motor eléctrico.

La figura 30-1 ilustra el modo dc funciunarnicrito de un motor PAP. Supotiernos que las bobinas L 1 como L2 poseen un núcleo de hicrro dulce capaz de iniaiitarsc cuando dichas bobinas scan rccotridas por una corricntc cl6cttica, esto es el denoil-iinado estatur. Por otra parte, el imán M puede girar libremente sobre el eje dc sujeción central, este es cl rotor. Inicialmente, sin aplicar ninguna corrieilte a las bobinas (que también recibe11 el nombre de fases) y con el imári M cn im:i posiciiin cualquierao cl i d n liermanecerá en rcposo si no se somete a una fuerza tihteiria. Si se hacc circular comenie por ambas fases, como se muestra en la figiiia 30- I (a), se crcaran dos polos magnéticos NORTE en la parte interna, bajo cuya influencia el imán M se desplazah hasta La posiciún indicada en dicha figura.

Si invertimos la polaridad de la corriente que circula por la bobina L 1 se obten& la situación magnética indicada cn la figura 30-1(b) y el imán M se vera desplazado hasta

Lnviríienc

la situaci6n de inwriimos de n grados y se hab grados.

Si se m corrientes son 2 cada pulso aplic

lo de este menios de iarniento.

la nueva posición de equilibrio. Es decir, ha girado 90 grados en seiitido contrario a las a p j a s de1 reloj.

parámetro pasos por I de grados kmdos de rvoliiribn, :P.4P mas

tencia. Sin

yuc se ha I

I

(a) Paso 1

1

1

(b) Paso 2

‘ mediante icipios de

nto dc los cabe, que ;iipclincmos rse c L

I : ~ ~ O

lo estator. 1, Aie es c.1

reciben el mecerá en m 30-](a),

:ia el imán

lnvirticndo ahora la polaridlid de la corriente que atraviesa la bobina L2, sc llcga a la situación de la fik~1t.a30-1 (c) habiendo girado el imán M otros 90 grados. Si invertiiiim de nuevo cl sentido dc la corriente en la bobina Ll el iman M girara otros 90 grados y sc. habra abienido una revolucidn completa de dicho imán en cuatro pasos de 90 grados. Si se mantiene la secuencia de cxcilacion expuesta para L1 y L2 y dichas

484

MICR0CONTROLALK)RP1C 16F84.DESARROLLO DE PROYECTOS

o M-MA

Analizando lo expuesto podeiiios decir que un motor paso a paso es un dispositivo electromecánico que convierte impulsos elecbicos en un movimiento rotacional constante y finito dependiendo de las características propias del motor. El modelo de motor paso a paso que hemos analizado?recibe el nombre de bipolar ya que para obtener la secueticia completa, se requiew disponer de corrientes de dos ~iolaridades,presentando tal circunstancia un inconveniente importante a la hora de diseñar el circuito que controle cl riiotor.

30.3 MOTORES PAP BIPOLARES En este tipo de motores las bobinas del eshtur se conectan formando dos grupos, tal y como se muestra en la figura 30-2. Mobr paso a paso biwlar

F i p m 30-2 Circuito de Control de

uri

niolor bipolur

De este motor salzri cuatro hilos conectados al circuito de control, que realiza la función de cuatro intemptores electrbnicos dobles que pemitm variar la polaridad de la alimentacion de las bobinas. Con la activacion y desactivacion adecuada de dichos interruptores dobles, se puede obtener las secuencias correctas para que el ttiotor gire en un sentido o en otro. Estos transistores carifigurados como pi~enteen H pueden ser sristititidos par el driver L293B taj como se estudió en el capitulo aiiterior, la conexión de un motor PM bipolar y el driver L293B se muestra en la figura 30- 13. En la figura 30-3, puede analizarse como debe ser la secuencia de excitación para que el motor gire en un sentido. Tiene dos modos de funcionamiento: Full Step y HoVStep.

t,RA-MA

i dispositivo

ial constante

CAP~TULO30: MOTORES PASO A PASO 435

O RA-MA

30.3.1 Motor PAP bipolar en modo Full Step En el modo Full Stcp el rotor del motor PAP avanza un paso par cada piilso de excitación.

s de bipolar mtes de dos la hora de

1

+

Reloj

1

Terminal 1′

I

1

I

dos grupos,

que realiza la slaridad de la la de dichos motor gire en i pueden ser iconexibn de a figura 30-3, :or gire en un

1

I

!

l

l

l

h

1

Terminal 1′

I

u

I

Terminal 2

I

I

I

u

I

1

I

4

1

1

1

l

l

l

1 l

1

1

I

I

I

1 I

l

L

1

1

I

1

I

I

I

l

t

1

I

I

t

I

1

1

N

I

N

1

1

+-S

t

Figunr 30-3 Secuencia d~ In señal de excirucion del motor PAP bipolar

La tabla 30-1 muestra las secuencia para generar los rrwvimientos eii sentido horario CW (Clnckwise) y antihorasio CCW (Counf~rc.lor;hui~e) de un motor bipolar. Los términos “horario” y “antihorario” se deben rclatjvizar ya que dependen del punto de mira del obseivador y de la posicion del motor, por tanto, solo se deben tomar como una forma de indicar que gira en un sentido o en el coritrario.

Tublu 30-1 Sec.iic,ncia de ccopih-ol de un motor PAP hb~ulurpara modo Full Step

30.3.2 Motor PAP bipolar en modo HaH Step En el modo cle medio paso (Harf Sfep) el rotor avanza medio paso por cada pulso

JMb

M I C R O C O h T R U W R PIC !6FW DESARROLLO Ut PROYbCTOS

DR%.%I~

disminuye el avance angulw (la nlitad qiie en e! modo de pasa completol. Para conseguir

tal cometido, el modo de excitación consiste en hacerlo alternativamenk sobre dos bobinas y sobre ima sida de fllas, de giro.

según se rnucstra en la tabla 30-2 para airibus seritiiicis

Según la fibwra 70-1 al excitar dos bobina consccutivas del esvalor sitnuitaneamente. el rotor se alinea con la bisectriz de ambos campos magndticos. Cuando desaparece la excitación de una de ellas, extjnguiendose el cminipo magnitico inducido por dicha bobina, el rotnr queda bajo la acción del h i c o Campo cxisteilte, daildu lugar a un desplazai~iientuinitad.

En este c control del sent tabla 3 4 para in

30.4 MOTORES PAP UNIPOLARES Una forma de paliar cl inconveniente que supone la necesidad de dos polaridades de la corriente para generar la secuencia del motor, si este dispone de una toma media cntre las bobinas, es realizar el montaje que se representa en la figum 30-4. Se obtiene uti motor PAP unipolar de cuatro fases (o bobinas), donde la corriente circuIa por las bobinas en un h i c o sentido. 1

I

I

En los incitores PAP unipolares, tíidas las bobinas del estator están conectadas formando cuatro grupos. Estos, a su vez, se conectan dos a dos y se montan sobre dos estalores diferentes, tal como se aprecia en la figura 30-4. Del motor paso a paso saIen dos grupos de tres cables, uno de los cuales es c o m h a dos bobinados. Los scjs tetminales que parten del motor se conectan al circuito de control, el cual, se comporia corno cuatro conmutadores electronicos que al ser activados o desactivados producen la alimentación dz los cuatro grupos de bobinas. Generando una secuencia adecuada de funcionamicilto de los transistores que trabajan como interruptores, se pueden producir all los de un paso en el número y sentido deseado.

I

Su priiicip inicialmente se al

CM~TULO 30: hiO’CORES PASO A PASO 487

h” ~ n – t . ~ O RA-MA

conseguir sobre dos 1s sentidos 1: estator agneticos.

I

Dispositivo de control y de potencia

magnético !de. dando

En este caso la tabla de la secuencia que debe introducirse en las bobinas para el control del sentido de giro es la mostrada en la tabla 30-3 para modo FUI/Step y en la tabla 3-4 para modo HalfStep.

FULL STEP

Tubla 30-3 Secuencia de control de un molar PAP [email protected] Fzrll S t q ~

&rkiades ima media obtiene un ila por las coiiechdac sobre dos paso salen .. Los seis i compcitta ~rducenta

lecuada dc :n prodiicir

Tublu 30-4 Secuencia de conrrn/ de toi motor PAP Unipolar para modo Half Step

Su principio de funcionamiento se representa gráficamente en la figura 30-5.Si inicialmente se aplica la corrizntc: a las bobinas L I y L3 cerrando los interruptores S1 y

4$8

MLCRM30NTROLADOR PIC’l hFM. DESARROLLO DE PROYECTOS

O RA-m

S3, se generarán dos polos NORTE que atraerán al polo SUR del jni;úi M hasta encontrar la posición de equilibrio entre arnbos como puede vcrse en la figura ?O-5(a). Si se abre posteriotmente cl uitemiptor S1 y se cierra S2, por la nueva dislrjbucion de polos magnéticos, M evoluciona hasta la situación reprtsentada en la figura 30-5(b)

30.5 CON

I

E1 modelo

mayor atractivo 1

I

anguiarts.

1

Una fomu el número rle bbbi y a p8rdiheis muy Hmh &ore pm nricles8 de lu bc

~

1

micropsles mgnl mpktieea con n motora ch hmh i.ssurpii& s ~ t d a i~ Figura 30-5 Princhipio hhrjsico de un motor. unipolur de cuatrofasw Sigmendo la secuencia representada en In figuras 30-5(c) y 30-5(d) de ta misma forma se obtienen avances del rotor dc 90 grados habiendo consepiida, como cn el motor bipolar de dos fases, hacer que el rotor ai7ancepasos dc 90 grados por la acción de Icis impulsos eléctricos de excitación de cada una & las bobinas. El movirnicnto obtenido ha sido eii sentido coiitrario al de las agujas del reloj. Ahora bien, si las secuencias de excitación se generan en orden inverso, el rotor girará en sentido contrario. Podemos dcducu que el sentido de giro en los motores paso a paso ss reversible en función de la secuencia de excitacibn y, por tanto, se piiede hacer avanzar u retroceder al motor un número determinado de pasos según las necesidades. La función de los intemptores sera ejecutada por los transistores NPN de la figura 3 0 4 que se incluyen dentro del driver L293B estudiado en el capitulo anterior, la conexión de iin motor PAP unipolar y el driver L293B se muestra en la figura 30-14.

CAP~TUM30: MOTQMS PASO A PASO 489

ORA-MA

;ta encontrar ). Si se abre jn de polos

1

30.5 CONSTITUCI~NINTERNA DE UN MOTOR PAP

!

El modelo de motor paso a paso tsnidisdo, salvo pw su valor didhctico, no ofrece mayor atractivo desde el punto de vista pdctico debido a la amplitud da sus avances angulares.

I

ESTATOR

L

J

ROTOR (Mbvll)

Um fama de conseguir metores BAP de gam n& mdueido esnsiste m amentw el nilanero cb bobiaee del erihtor, pero ello llevada a un aumento del coste y del volumen y a gddirla~m y eonddaablea en el rendimiento $el motor; por lo que no a i vi~biblo, Hri~ta&ora pwa eon~eguirla salucidn rds i d h a M r e e m ai 18 rneemi%arcibnBe loi nuclm~de lae bobinrie y el mtsr en foma de hendidura O d i ~ n h e, d n d o ~ eMI mjoropoloa [email protected]~, tmtgfi come diente8 y @i~ablaeienQ 1m ~ l W i o n e 8dc equilibrio mapdtiee~cm avmeer~mgulms muohe mmoia. Be bita f o m em piiblo conaegulr metome de huta de 500 pasos e inelmo m h , En k figura 30-6 se m u e m de f o m raaumih eeta dhpodoibn g m un motor BAP do 22,S0, fases

de la iiiisma o en el motor acciiin de los

D obtenido

ha

;ecuencias dc riii. Podemos funciiin de la – al motor un

N de la figura o anterior, la

4W

iíiCROCONTRQLAI)OR PIC E hFR4. DESARROLLO DE PROYECTOS

G M-MA

En las fotografias dc las figuras 30-7 y 30-8 piieclen apreciarse un estator y un rotor

de un motor bipolar de 48 pasos desguazado.

centrales, mientl

en el interior cst:

30.7

Desde cl 1 de algunas de las

Par dini dinhmica perder pi estator ) velocidaa

generadni

t i

moror po

Fip~ra30-8 Esfator del motor paro a paso

30.6 PIISPOSICIÓN DE LAS BOBINAS

]

La existencia de varios bobiirndos en el cstator de los motores paso a paso da lugar a varias f m a s de agrupar dichos bobinados para quc sean alimentados adecuadamente.

+vcc

(a) Muraa Blpolar

1-

Par de m dgimen d

+vm

(b) Mator uniplar 6 Mlos

bri

(c) M o r Umpdar 5 hlhs

Id) M&nr Unlpdar 8 hilas

Figura 30-9 D i . ~ p u ~NSn ~ i d~ c ~ km bobinar de motorm paso a pn.70

En el caso de IOS motore5 ;laso a paso unipolares se pueden encontrar con cinm ~ m i a a l e sya que aderntis de los bobinados Iiay otros terminales qui compondcn con las tornas intermedias de las bobinas, los cuales se conecta1 directamente a positivo de la fuente dc alimentación para su correcto funcionamiento. La figuras [email protected]), 30-9(c) y 30-9(d) describen como están conectados internamente lo teminalec de estos tipvs de motores.

mayor qiri posicibn e

Númemd pam real iz

seis u ocho

Hay qiie tener en c:ieiita q d e los [notores PAP uriipolares de seis u ocho hilos, pueden hacerse funcionar como rnotom paso rr p s o bipolares si no se utili7m las tomas

donde NP

krecuenci Úmerci d lecuadarr

cir y

iLX RA-MA

un rotor

!

l!

n R4-h4A

~ A P h l 30: 0 AiOTORES PASO A PASO 49 1

centrales, mientras que las de cinco hilas no podrán usarse jamás mmo bipolares porque en el interior están conectados los dos cables centrales.

30.7 PARÁMETRO DE LOS MOTORES PAP Desde el punto de vista mecánico y eléctrico es conveniente conocer el significado dc algunas de las ~iiincipalescaracterísticas y parametros que definen un motor PAP: Par dinámico de trabajo (Workifig Torque). Depende de sus caracteristicas dinámicas y es el momento máximo que el motor es capaz de desarrollar sin perder paso, es decir, sin dejar de responder a algún impulso de excitacibn del estator y dependiendo de la carga. Hay que tener en cuenta que cuando la velocidad de giro del motor aumenta, se produce un aumenta de la f.c.e.m.en 61

generada y, por tanto, una disminucion de la corriente absorbida por los bobinados del estator. Como consecuencia de todo eHo, disminuye el par motor.

Ángulo de paso (Step Atrgle J . Se define como el avance angular producido en e1 motor por cada impulso de excitación. Se mide en grados, siendo el número de pasos estándar más empleados los mostrados en La tabla 30-5.

‘,

Tablri 30-5 Atigu10.v íIe paso mas comirnes rn los motorrs P.4 P

Par de mantenimiento(Holding Toque.).Es el par requerido para desviar, en regin~cnde excitrición, un paso el rotor cuando la posición anterior es estable. Es mayor que el par dinámico y actúa como fimo para mantener el roior en una posición esbble dada. I;i cantidad de pasos que ha de efectuar el rotor pam realizar una revolución completa. Evidentemente su ecuación es:

Número de pasos por vuelta. Es

a donde NP es el número de pasos y a e l arigulo de paso. Frecuencia de paso máximo (,Wavimtarn pull-in/out). Se define como el máximo número de pasos por segundo que puede ejecutar el motor funcionando adecuadamente.

492

MICROCONTROLADOR PIC 16FS4. DESARROLLO DE PROYECTOS

i

B m-MA

O RA-MA

30.8 CONTROL DE LOS MOTORES PASO A PASO

1

de resistencit hilos que m i

#..

de ohrmos. E dos a la parej

Para realizar el control de los motores paso a paso es necesario, como hemos visto, generar una secuencia determinada de impulsos. Además, estos impulsos deben ser capaces de enrsegar la corriente necesaria para que las bobinas del motor se exciten. La figura 30- 10 muestra el diagrama de bloques general de un sistema de conml para un motor PAP,

N ,

I:I 1,.

de Mando

Control

Potencla

Mee6nlw

Figura 30-10 Diagrama de bloques de un sistema de conlrol para motorpaso apaso

I

Vamos a centrarnos en el control de los motores paso a paso utilizando el

microcontrolador PIC 16F84A,Como el microcontralador no es capaz de generar la

corriente suficiente para excitar las bobinas del motor PAP utilizaremos los drivers contenidos en el integrado L293B (figuras30- 13 y 30-14)

A-B (1-1′) O I

EJEMPLO: El c h i t o de conhl que gobiema un motor PAF de 7,5O por pam, pmiucc ei s m c a de I 1 prsoi motor s una frecuencia

de 200 ~ z ¿suintos , grados gira? si se desprecia la inercia y los ronmientos mechicos, ¿cuánto tiempo tarda en realizar dicho movimiento?.

1

I

1

I

1

Soluclbn: Como el motor gira 7 , 5 O por pulso, d t& de aplicar los 11 pulsos, el eje del motor habrá girado: 7,5 x 11 82,5″. I31 priodo & la señal es de 5 ms,por tanto, el motor tardad SS ms en realizar este movimiento.

I

!

30.9 IDENTIFICACI~NDE UN MOTOR PAP

I

!

Para Iti rcalizaeibn de los ejercicios que vamos ri plantear, se van a utilizar dos motores paso a paso, uno bipolar y otra unipolwr, recuperiidos de miquinas de desguace, como discos duros,

impresoms o similar.

i

i

La primera dificultad eei la ideatificacidn dc las bobinas internas con tras teminales del motor, Es eenvmimte tener en cuenta cl niliiiem de hilos que diripone el motor PAP, para intentar identificar su estructura i m a con alguno de las modetm desrritoi en I i figura 30-9,

Oenertilrnente se deduce por el color de los cribler pero, en cmo de d h , es convaniante mdir le resietencia de la bobina con un ohmem, Asi, por ejemplo, plrm un

nicitrir hipolar qiie tiene cuatro hilm debe utilizame uii polimetro en posirihn de medida

sentido antih de la bobina

1 1I

1 ¡ I

1 1 I

l

Se mide cwlquiem dis

bobinassey niide los (: central medida de 150 mitad correspo 2′ y 3′- 4′.

II 10hemos

visto, isos deben ser se exciten. La

:oneol para un

*pasoa paso utilizando el de generar la 10s

los driver9

:7 , 5 O por paso, ,&lbs

@O8

impo tarda en

CAPITULO 30. MOTORES PASO A PASO a93

O k4-M.4

de resistencias para detectar las dos bobi independientes. Para ello, hay que buscar dos hilos que midan iin valor cualquiera que no sea infinito, generalmente mas pocas decenas de ohmos. Estos dos hilos pertenecen a los terminales de una de las bobinas y los otras dos a la pareja opuesta. nas

Figirm 30-1 1 Motor puso n poso de 4 hi1o.c

En este caso no es importante coriocer el devanado que corresponde con la bobuia A-B (1 -1 ‘) o a la C-D (2-29, ni identificar siis terminales, porque una vez conectados los cables al circuito de control si el motor gira en sentido horario y queremos que gire en sentido antihorario, solo tendremos que cambiar las conexiones de la bobina A-B por los de la bobina C-D. Para los motorcs de 6 hilos si queremos identificarlos con los del motor dc la figura 3 0-4, procedcrernos de la siguiente manera:

U 10s

11 @OB, a de 5 m, por

n a utilizar dos as de despace,

n los terminales : el motor PAB, dcsct.itos cn la

F’igrra 30-12 Fofo de ula tiItorrivpaso uyuso de 6 hilos

Se mide con el ohmetro para buscar los tres hilos que entre si rnidan un valor cualquiera distinto de infinito. Estos tres hilos pertenecerán a uno de los juegos de bobinas y los otros tres pcrtetiecerán al otro juego de bobinas. Pim averiguar el terminal central se mide la resistencia entre dos cables, ubtsriiendo para nuestro caso concreto la

medida de 150 S1, midiendo los otros dos resulta 300 SZ, por lo tanto, el que tiene el valor mitad corresponde con la toma central de la bobina, numerados en la tigura 304 con 1′-

0 M-M

1 irnos visto,

deben ser La m1 para 1

CAP~TUKJ 30: MOTORESPASO A PASO 493

de resistencias para detectar las dos bobinas independientes. Para ello, hay que buscar dos hilos que midan un valor cualquiera que no sea infinito, generalmenteunas p a s decenas de ohmios. Estos dos hitos pertenecen a los terminales de una de las bobinas y los otros dos a la pareja opuesta.

exciten.

so apaso

Figura 30-1 1 ~Uotorpaso a paso de 4 hilos

tilimdo el generar la los dnven

5″r

pitso,

ntos prados

po tarda cn

IS

En este caso no es importante conocer el devanado que corresponde con la bobina A-B (1-1 ‘) o a Fa C-D (2-27, ni identificar sus tminnles, porque una vez conectados 10s cables al circuito de control si el motor gira en sentida horario y queremos que gire en sentido antihorario, s61o tendremos quc cambiar las conexiones de la bobina A-B por los de la bobina C-D.

Para los motores de 6 hilos si queremos identificarlos con los del motor de la f i p 30-4, procederemos de la simiente manera:

11 aulsos, or

utilizar dos Ic desguace,

s tminalcs motor PAP, ssi-itor; en IR

de dudn,

CR

plo, pnni iin 1 ric ntcdictn

Figtra 30-12 Fato de zrn motor paso a p a ~ ode tí hilos Se mide con el olimetm para buscar los tres hilos que cntrc si midan un valor cualquiera distinto de infinita. Estos tres hilos pertenecerán a uno de los juegos de

bobinas y los otros tres pertenecerán al otro juego de bobinas. Para averiguar el terminal

central se mide la resistencia entre dos cables, obteniendo para nuestro caso concreto la medida de t 50 R, midiendo los o- dos resulta 300 Q, por lo tanto, el que tiene el valor mitad corresponde con la toma central de !a bobina, numerados en la figura 3 0 4 con 1’2- y 3′- 4′.

494

MlCROCOiriTaDLAüOR PIC16F84.DESARROLLO DE PRO Y ECTOS

O R.-MI

Para identificar cual de los hilos corresponde a las bobinas 1, 2, 3 o 4, procedemos de la siguiente forma, tendremos que alimentar el motor, el valor de la tensión de alimentación normalmente suele ir indicado por una etiqueta o serigrafiaclo en la carcasa. En caso contmrio, deberemos de tener cn cuenta que la mayoria de los motores paso a paso están consb~iidospara trabajar a 4, 5 , 6 , 12 y 24 voltios. Probamos con 5 V, por precaución, conectando esta alimentación a la patilla central de Ias dos bobinas. Seguidamente se toma uno de los dos hilos, se numera con cl número 1 y se conecta a masa y el otro hilo del mismo juego de bobinas se nurnmrá 2011 el número 2 y se deja sin conectar. A continuación tomamos uio de las terminales del otro jucgo de bobinas y se conecta a masa, si el motor gira un paso en sentido horario se numera el terminal con el número 3 y el otro terminal con el 4. Si por el contrario lo hace en sentido contrario a las agujas del reloj se numera con 4 y el último tmnina con el número 3.

l

i 1

Una vez identificados 10s terminales del motor bipoiar y del unipolar. cn los siguientes epigrafes veremos los circuitos que vamos a montar para cada uno de ellos. ! I

30.10 CONEXIÓN MOTOR PAP BIPOLAR Y PICI 6F84

1

!

El montaje que vamos a realizar para el motor bipolar se muestsa cn la figura 3013, en el que se ha realizado la conexión del motor PAP a través de los drivers de1

Figura 30-13 Cottcxihn del motor P,4P bipolur u PICl6F84.A y driver L2 93 B

activar las e las bobi ejeniplo se u

Las ~ i dichos pines cerrados, res del motor sej

El moi bipdar. En e alimentación terminales 3 centrales de 1 en este ejern~

4, procedemos la tension de o en la carcasa. motores paso a s con 5 V, por ; dos bobinas. y se conecta a i2 y sc deja sin le bobinas y se tenninal con e1 i contrario

a las

diipolar, en los lo de ellos.

en la figura 30los dnvers del

Las ljncas RBO, RR1, M 2 y RB3 serán las encargadas de genemr la secuencia de [email protected]~.ii del motor paso a paso, mientras que KB4 y RB5 se ponen siempre a “1” para activar las entradas de habilitación de los drivers. Las salidas de los drivers se conectan a las bobinas del motor para conseguir la corriente suficiente que permita su funcionamiento. La tensidn aplicada al pin Vs es la de alimentación del motor, eii este ejemplo se utiliza un motor de 12 V. Las lineas RA5:RAOse han concctado a unos interruptores que pueden entregar a dichos pines un nivel alto “1” o un nivel bajo “O”,dependiendo de que estén abiertos o cerrados, respectivamente. Esto perrnitira controlar las condiciones de funcionamiento del motor según el estado dc cstos intcrruptorcs.

30.11 CONEXIÓNMOTOR PAP UNIPOLAR Y PIC16F84 El montaje se muesm en la figura 30-14 y es muy similar al del motor paco a paso bipolar. En este caso se ha conectado la toma intermedia de los bobinados a la tension de alimtrntación, e1 terminal 1 y 2 a las salidas de un par de drivers del L293B y los terminales 3 y 4 a las salidas del otro par de drivers. La tension aplicada a la tomas centrales de los devanados del motor debe ser igual a su tensión nominal dc alimentación. en este ejemplo se utiliza un motor de 12 V.

MOTOR PAP UNIPOLAR

Figura 30-14 Conexih del motor PA P urlipolur a PICI 6F84A y driver L293B

496 MICROCONi’ROLADOR PIC lbFB4.DESARROLLO DE PROYECTOS

30.72 CONTROL DE MOTOR PAP EN MODO FULL STEP Utilizan& cualquiera de los montajes de las figuras 30-13 6 30-14, vamos a analizar el programa MotorPAP_Ol .asm, que es un programa que hace girar el motor siempre que este cerrado el interruptor conectado a la linea R A O y dependiendo del estado & la linea RA4 girará en un sentido o en el contrario. El programa para los dos tipos de motores es el mismo y su organigrama es el que se muestra en la figura 30-1 5 .

m w beE w ;

hido

M Pdiscipltf L..

‘.’

w.

gBOO

ctñ

micmcontrolador. -1:-

G.&.

– ..*.

,

:#M

.&-

m-

a*.

* :.-::-* ,:

, ,

.

al-

.:-.

…–:..

Figtra 30-15 Organigrama del programa MotorPriP-01.asm

.

CAPITULO 30: MOTORES PASO A PASO 497

Q RAMA

,STEP

#DEFiNEEni&&khci PORTA,O #DEFiNü ~ s n d d o PORTA,4

-14, vamos a

;~A~&I~**W.**~~******~*****~L*WWW~~~~~**++****O*+***~****-**

$rar el motor mdiendo del los dos m 30-15. i para

o-

W

STAWS&W l%m&Mmb

;Ema hms se crmfipm cona0 entrada.

FWITB,

;Las l

bef

bef.

Mbcf

– – .:,

m. ,

.. . –

;–en

.-

;s.

‘PURTE

.

.

.

. . :

marcka?

-,

drf:

b &l hiena B configurada8 como salidas.

SAWSJtM

.& &::; .–‘..sw:.,;:Fm a.:,d

. ..

.

, –

; No, para el motor, poniendo rt cero la líaea ; #e Wlitzzidn – ; Cgqmcba el sertiido de giro deseado.

;Gimen unmtido.

–.

-*:/

,:*.

. . ,

ri

,

ORG

Inicio .

; htemptor de putsben marcha. ; Inkmpbr & sentido de giro.

..

:-.,.

parado

.

.

.-

,. –

–: @ i w%mi&~

0 0 ~ 0 .

498

MICROC’I )NTROLADOR PiC 16FL14. DESARKOL[.O DE PRI

)YFCTOS

movwf

PORTB

cail

Retardo-lOms

c RA-MA

;Temporkción antes del siguiente paso.

NCLUDE m A R D O S . M C >

Este control también se podía haber realizado mediante tablas de datos, de forma similar a los juegos de luces plaiiteados y res~~cltos eri el capitulo 12. Se anima al lector a inodificar &te y los próximos ejercicios resolviéndolos mediante el procedimiento descrito en el ejercicio Retardo-08 .asrn.

30.13 REALIZACI~NDE SECUENCIAS DE MOVIMIENTOS Eri muchos proyectos es necesario realizar una secucncia dc moviinientos con los motores PAP. A continiiacihn se muestra un ejemplo que tambjQ nos p u d e servir para

conlpmbar correcto funcionamiento.

Si no se conoce el nutnero de pasos que tiene nuestro motor ahora puede ser un buen momento para saberlo. Así, si se hace la kinpc.irización Iriayor llamando por ejemplo a la subrutina Retardo-5Oms en lugar de Retardo-IOms, denm de la silbnitina “ActivaSaljda”, podenios contar fkilmente cuántos pasos necesita para dar una vuelta completa. El motor unipolar que hemos utilizado nosotros necesita 48, por lo que cada impulso de excitaciiin recorre 7,5″, que corresponde a urio de los valores comerciales recogidos en la Tabla 30-5.

El progranla MotorPAP-02.asm Iiacc que el motor ejecute wia iuelta completa en

el ángulo de paso del motor o, lo que es igual, el número de pasos a recorrer para que el eje del motor ejccute una vuelta completa.

8Ob

: Suhtina “Gire

GiroIiqukh movlv call

; El motor PAP realiza una vuelta en sentido y dos en saitido c o n m o ufizaodo el modo Full Step.

KtoYlu

call mmlv call

CONFIG -CP-OF’F t -WDTTOFF & -PWRTE_ON & -XT-OSC LIST P=16FS4A N C W E 816F84A.INC>

movh cal1

m

CBLOCK OxOC Cich

; Se denementarli cada ciclo de 4 pasos.

Vue1tasHdo

; slhltina”Gk

VwhasAnatihorario ENüC

Girokmha

NumeroCjclos

EQU

-12

movlv

;Un ciclo & 4 p o s son 30 gradas p m un PAP

I

O RA-M:

CAPI I’YI.CI 10: MOTORES PA S O A PASO 499

Q RA-MA

; de 75′ en modo Half-Slcp. Por tanto para ;m p l c t a r una vuelta de 3W.se requieren 12 ; ciclas de 4 paso, cada uno. ;ZONADEC~DIGOS***********+~~~*****Q~~~~*****QQ”*********X*#************V**

ORG

O

bsf

STATüS,WO WRTB

inicio

os, de forma na al lector a -ocedimiento

clrf bcf Principal

movlw movwf OtraVueltakr&a

mvlw :ritos con los .e servir para

puede ser un

lamando por la subrutina ir una vuelta lo quc cada comerciales completa ~ri :ne en cuenta !r para que el

i

; Las lineas del Puerto B configuradas coniu salidas.

STATUS3PO ; Dos vueltas en sentido horario.

0x02 VueltasHorarío Numdiclos

m 0 4 Ciclos OtmCicloMha ,

cal1 kfsz

GiroDerecha Ciclos,F

goto

~

decfsz

VueltasIIorario,F

goto

OmVueltaDaeCha

~

1

0

~

movlw OxOl

mwwf

Vue1tasAntihomrio

OtraVueltalzqurerda movlw NumeroCiElos movwf Ciclos OtmCicloiqtiierda cal1 Girohquierda decfsz CiclosF goto OtroCicloIzquierda d& VueltasAnti~o,F goto CbVueMzquierda goto Principal

GiroIzqirierda movlw

; UM vuelta en sentido antihorririo. ; AL wt una soh vueltano haria falta el contador. ; Pero se deja para que el lectot pueda k e r iaq ; pniebas que crea oportunas canibiando la carga ; (VueltaAntiliorario}.

; Wmer paso.

catI movlw

; Segundo paso.

ira11

movh cal1

; Tercer paso.

mvlw

; Cuarto y iiltimo pmS.0

cd retum

PAP

; Primer paso pam el giro hacia la daecha.

l 5W

MCROCOhTROLADOR PIC16FM. DESARROLLO DE PROYECTOS

F RA-MA

i

Aaivasalids mvwf WRT3

caü rmm

;Tempimibn antes del siguien& paso.

30.14 CONTROL DE MOTOR PAP EN MODO HALF STEP Una de las posibilidades que tienen 10s motores paso a paso es la de utilizarlos en cl modo medio paso u HurStep. En esre caso hay que utilizar una secuencia de 8 estados, como la que se muesba en las Tablas 30-7 y 30-4, corno puede coinprobarse en el programa MotorPm3.asm, el proceso de progmacion es el rnisino. Como ejemplo de aplicacibn se va a repetir el progma de la sección anterior pero en modo Hcilf Step.

I

;El motor PAP r d i m una w l í a en m&do y dos en sentrdo conbajo u t i h d o medios

;~(nmdoWalfStep)paraobtcneraias~isiBa

;ZQ~ADEDA~****h+***I*******+***.L***V********~*****+****UW************************

EQU

.i2

I

;Uncichde8~son30griidwparamPAP ; dt 73″ m m& w – S t e p . Par tanto para ; [email protected] una vuelta de 3W,se quieri:n 12 ; ciclog de 8 pagos c& uno.

. ~ N A D ~ C ~ D ~ C ~ ~ S ~ * L ~ * * * * ~ + ~ Q * * * * ~ * * ~ ~ L Y ~ * I * * U U ~ * * * * ~ V * + * + ~ *

ORG kucio

O

bd

STATüS,RW

O RA-MA

C ~ P ~ T U L30:O MOTORES PASO A PASO 50 1

e M-MA

STEP tilizarlos en

e 8 estados, b m e en el

no ejemplo ‘alfStep.

;Frimsrpo. ;Se&

paso.

; Tercu paso,

; Gurirto p o . iQuia~g~eo*

; soxw p o .

; -PO.

;mwyrilthnopa

502

MICROCON’t’ROLADCiR P1ClhF84 DESARROLLO DC PROYFLTOS

movlw cal movlw cal1 movlw

3 KA-m

r l

2,RA-MA

b’00 1 1 1000′

; Sepimdo paso.

ActivaSalida b’00i 11010′

;Tercer paso.

CBLa VeloeY EMX

; Ciiarto paso.

#DEFINE Entra¿

ActivaSalida U001 100 10′ cal1 ActimSaIida mor~lw WíMI 10110′ call .4ctivaSalida movlw b’00110 100′ call ActivaSaf ida movlw b’0011010lt cal1 Activasalida rnovlw b’00 1 1000 1′ cail ActivaSa1ida

topas^. ;Sexto paso.

; ZONA DE C

~

ORG

; Skptimo paso.

movlw ; &cavo y ultimo p w .

movwf

movf

andlw

mowf

PORTB

cal!

Retardo-jOms

:Temporizaciiin antes del siguiente pso.

m

M

lNCLUDE

30.15 CONTROL DE VELOCIDAD La velociilad del motor queda determinad21 por la frecuencia a la qiie se ejecutan los pasos de la secuciicia y la direccihn de giro depende del sentido en qiiz se aplique dicha secueiicia. Esto proporciona un excelente coii~alde velocidad y posiciijn sin

PamMotvr

rcalimentacion.

; Sdnititte “Seiwx:

E 1 programa MotrirPAP-04.asni describe un procedimiento para controlar la velocidad. E1 hardware utilizado será el de las figuras 30-13 6 30-14. La lectura de las

cuatro lineas bajas del Puerto A determina el tiempo de retardo qiie hay entre la aplicacion de una nueva combinacion a los devanados del motor. Cuanto mayor sea este rctardo m& dcspacio girara el niotor.

:hlkrando los valc

SeIeccionaVeIocidE addwf

: Subrutina “Girola :Programa de c o n n l de velocidadde un motor PAP. La velocidad del motor esta4 g&m& ; por el valor de las cuatro líneas bajas del Puerto A. El sentido de giro de motor se decide

;en funcibn

del valor de la Iinea RA4.

movlw

movlw

CONFIG -CP-OFF & -_wDT-OFF & -PWRTE-ON & -XTXTOSC ~ S T P=IóFS.IA [NCLUDE -+16F84A,i?VO

movluretum

#DEFmE E n W a i t i d o

I

!

:

ORG Inicio

1

! 1 4

1

; Interruptor de sentido de giro.

PORTA4

STATUS

b~f inoviw movwf CM

b*WM11111′ PORTA

; El Rierto A se conñgura m w entrada.

WRT5

; L8S l i n w del mierto B m 6 g u r a d a s corrm salidas.

bcf

STATüS,RPO

movf andiw

PORTA, W bYIOOOI 1 I I’ STATUS.7.

; Lee el puerto de entrada ; Se queda con los cuatro biis bajm. ; Si es cero se mantiene pwado. ; Pasa a seleccimar ei factm el que se va ;a multiplicar el ixtafiki pakhn. ; Comprueba el sentido de giro &seado.

&Oto

P&otur SelmcionaVelocidad VeIocidxd EntradaSmtida AA*&

di

Girohecha

bipai

btfx cal movwf

msc gafo A-Izquierda

call goto

ParaMotor c irf

ejecutan :apliquc

ición sin trolar la ra de las

entre la sea este

Fin

goto

PORTB Pnncipai

; Para ci rnutor, piniendo a cero la linea de ;habiliwción.

; Alterando los valores de esta tabla se pueden conseguir diferentes retardos.

Seieix~onaVelocidad addwf PCL,F 0,675′, d17ú’,dr6S’, d’G0′, i1’55’,d’5íY, 64T, b40′ DT 837,d’30t.d’25’. dt20′,d’15’, dlOf,d’5′ DT

GiroIzquierda m o v : ~ HMJIOIOI’ cdl ActivaSaiida movhv b’00110110′

; primer F. ;Lo envía a la salida donde esth cone~hdoel motor P,4P. ; Sogundo paso.

cd1

AchvaSalida

movhv call niovlw

blOO1llO1O’

; T e r w paso.

Ac~vrtSalida b l W1 1 1001′

;Cuarto v

ÚItimo vaso

7 MICROCONTROLADOR PIC 16F84.DESARROLIB DE PROYECTOS

504

;SulaP1IisiQhDasha”-

d 1 ,

-kv-

Actimwdri ~001~11014 ,- ,

ActiyaSW

mlw

buXf1lOIIOt~:

4

Aotiddidn

odl

dmfsz

~ ~ l Cmadnr,F

.

.

.

m

a

Paca la servomotort~,c (figura 31-1). PO

de rtiodelismu a tirnbn dc uii barc

3

. SERVi

Un servomc ruedas: deritadas qu una pequeña tiirjet; figura 31-2 inuesk

Para la renlizacibn de rnicrorobotq experimentales es frecuente utilizar semornotores, que son pequedos dispositivos utili7ados tradicionalmente en radicxonwol (figura 3 1 -1 ). Pnpulamcnte reciben d nonlbre de “servos”y suelen usarse para el control de modelismo a distancia, actuando cobre el acelerador de un motor de cornbuaihn, en el timón dc un barco o de un avión, en el control de direccián de un coche, etc. Su pequeño tamaño, bajo consumo, adcmás de una buena robustez y notable precisión, los hacen ideales para !a constnicción de los microrobots.

31.lSERVOMOXORES PARA MICRORO’B~TICA Un m o m o t o r esih crinsiirnido por un pequeno motor de corriente continua, unas niedac dentadas que trabajan corno reductoras, 10 que le da una potencia comiderablc, y una pcquefia tarjcta de circuito impreso can la electrónica necesaria para su control. La fipra 31-2 muestra el despiece dc un sewo

5íkÍ

MICIROMNTROLiZWR PIC16F84.DESARROLLO DE PROYECTOS

QR ~ M A

en Torrejon dr donde exponc supuesto, taml I n t mct, siemp

Ln tcnsir voltios, El con! una scfial cua Moh~lnrion).L p n e a el eie dcl eje del motor ( 1

una retroalimen

m o esiándar constante y

11

1 1: IT

II~

,!f I

proporcional a la carga. Otro servo compatible wn el anterior y muy utilizado es el Futaba S3083, www.fiitaba-rc-com.

Si el lector tiene dificultades para comprar estos s m o s en su proveedor habitual de componentes eIectr6nicos puede adquirirlos en tiendas de modelismo donde vendan matcnal para radiocontrol de aviones, coches, barcos, etc. TambiCn pucdc entnr en ww.itl.rnodejirnport.com,que es la pagina Web de Mdel Import S.A, empresa con sede

-a auracia f i ~ t 3a14.Cada

el ancho dcf pu

mecanicamctite r! smvomotor utili;~ es&nentre 0.3 y rns indicaría la PG

(:AP~TLJLO 3 1: SERVOMOTORES DE RADIOCONTROL 507

u M-MA

en Tomejon de Ardoz (Madrid), distribuidora oficial para España de los servos Futaba, donde expone una completa relacion de tiendas ordenadas por comunidades. Y, por supuesto, también puede adquirirlos en alguna de las múltiples tiendas que hay en Internet, siempre comprobando que trabaja con las necesarias garantías.

31.2 FUNCIONAMIENTO DEL SERVOMOTOR La tensión de alimentacián de los servos suele estar comprendida entre los 4 y 8 voltios. El control de un servo S limih a indicar en qué posición se debe situar, mediante 7 una seiial cuadrada TTL mgdulada en anchura de impulsos PWM (Pube Width Mudulationj. La duracion del nivcl alto dc la señal indica la posición donde queremos poner el ejc del motor. El potenciómetro que el servomotor tiene unido solidariamente al eje del motor (ver figura 31-3) indica al cixuito electrónico de control interno mediante una retroalimentación,si éste ha llegado a la posicion deseada.

i1 servomotor

Extremo tzqtierda

33 rns

t

20 ms

b

900

r

Posición Central

1,2 rns

A

20 ms

1 BOD

Extremo

Dereda

2,lme

servo estándar d constante y ~tilizadoes el

ior habitual de donde vendan iede entrar en Jresa con sede

Figura 31-4 Tren de imp wlso.s pava control de un servo de radiocontrol Futubu S3003 La dwaciiin de los impulsos indica el ángulo de giro del motor, como muestra la figura 3 1-4. Cada servomotor tiene sus márgenes de operación, que se corresponden con el ancho del pulso máximo y mínimo que el servo cntiendc y que, en principio, mecánicamente no puede sobrepasar. Estos valores varían dependiendo del modelo de servomotor utilizado. Para el servomotor Futaba S3003 los valores de la señal a nivel alto están entre 0,3 y 2,1 ms, que dejarían al motor en ambos extremos de giro. El valor 1,2 ms indicaría la posición central, mientras que otros valores de anchura del pulso lo dejan

MICROCONTROLADOR PIClbF84. DESARROLLO DE PROYFCTOS

508

A RA-MA

en posiciones intermedias que son proporcionales a la anchura de los iinpulsos. Si se sobrepasan tos limites de movimiento del servo, éste coinmzará vibrar o a einitir un zumbido, denunciando un cambio en la anchura del pulso.

El periodo entre pulso y pulso no es critico. Sc suelen emplear valores cntrc: 10 ms y 30 ms, aunque lo habitual es utilizar 20 ms, que implica una frecuencia dc 50 Hz. Si el intervalo entre pulso y pulso es inferior al mínimo puede interferir con la iemporizaciiin interna del servo causando un zumbido a vibración del brazo de salida. Si es mayor que el máximo, entonces el servo donnido entre pulsos provocando que se mueva a pequefíos intervalos. Es importante destacar qiie para que un scm’o se mdntenga en la misma posicibn, es necesario enviarle continuamente un pulso de una anchura constante. De este modo si existe alguna fuerza que le obligue a abandonar esta posiciiin intentari resistirse. Si se deja de enviar pulsos, o el ititervalo entre pulsos es mayor del máximo pcmitido, entonces el sernomotor perderá fuerza y dejará de intentar mantener su posiciiin, de triodo que cualquier fuerza externa podría desplazarlo.

31.3 TERMINALES Un servoniotor es básicamente un motor elkctrico que sblo sc piiede rnover cn un arigulo de aproximadamente 180 grados (tio dan wcltas complet cbmo los motores de comente continua). Los sen~omotoresdisponen de tres terminales:

+

Positivodealimentaci6nunidoalcabledr:coIorrojo. Masa o negativo, que casi siempre es rin cablc de color negro. Señal por dotide se aplica la entmda de impulsos y cuyo cablc surle ser dc color

blanco, amarillo o naranja.

La Tabla 31-1 inuestra una relación Jc fabricantes de servoniotorcs, con la descripción de cada uno de los tcrmiriales destacándose en n e p l l a los fabricantes Futaba y Hitec que son los más importantes.

Los ten alimentación í microcontrolnd las dos fuentes se construye ur utilizar dos fui energía a los presupuesto piu

El siguie ejemplo, el eje i Tabla 3 1-1 Ident$caciÓn de los terminales tic I0.f servos, st’gzin rJiversosf~h~.icantes

as

npulsos. Si se

En la figura 31-5 piedcn identificarse los concctrires de algunos de estos

o a einitir u11

fabricantes.

es cntre 10 m s le 50 Hz. Si el tcmpori7aion i. Si es rnayor nvocando que

isnia posición,

c este modo si esistirse. Si se mo permitido. icibn, dc modo Red (*)

*Brown f.)

11ack ar Wkila

Qrrngr (Slgnil) ind

e niovcr en un

I-) a r i Ihc

i’rrwso s l Futdba.

,

Ios motores de

Figwru 31-5 Conecforcsy cubkes us’udo,spor aPrgunosfubricun~esde semornolores

31.4 CONEXI~NDE

:le scr de color

U N SERVOMOTOR A UN PlC16F84

En la figura 3 1-6 se muestra iin ejemplo de conexión de un scrvomotor Futaba S3003 a uii microcontro1ador PIC 1 6FS4A.

otores, con la ricantes Futaha

Los tcrminatcs de alimrritacibii del senwmotor se conectan a u n a fuente de alimeritaciári a 5V que puede ser Ia misma que se utilice para alimentar al rnicrocontrolador. En caso de utilizar dos fuentes distintas debemos conectar las masas dc las dos fueiites de alüiientación, pasa que tengan la misma tsnsion de referencia. Cuando se construye un mecanismo o un rnicrorobot con servamotores, es siempre recomendable utilizar dos fueritcs dc cnergía distirios, una para la “electrónica” y la otra para dar energia a los servomotores. pero desgraciadamente no siempre hay espacio ni presupuesto para ello.

m

fabricantes

El siguiente programa aq-iidarj a comprender la técnica de pmgramaciiin. En este ejemplo, el eje del servomotor girar6 dc O a 1 80″ y de 180 a 0″indefinidamente.

Inicio

Pl’wipl

Figz~m31-6 Cone~.ibndel PfCI 6F84.4 parn contrtr/ de1 servomotor . I ~ * * i r * * * * * r ( i + * t * * * * ñ * * * ~ * ~ * i I * * * * ~ t S e r YOa] .S -++I*****+15*8***0**0******I+****C**#L

9

; P r o p de conbol riel posicionamiento de m servornotor Futaba S3003.Controla el @do ; mediantc una d a 1 cuadmda FWM de 20 111sde perimh quz se aplica a su Iinea de cnnml. ; El gngulo es gobernado por el tiempo en alto de la seAal cuadrada desde O” (para 0,3 ms ;de tiempo en alto). hasta 180″ (para un tiempo en alto de 2,l m). ; En este progmma el servomotor se posiciona en 09 90″. 1 80″,vuelve a W y repite el cicio. ; Permanece en cadaposiciiin &te 1 s. E1 funcionamientose explica en la siguiente tabla, ; donde se ha tomado como tiempa p t d n 100 ps (O,]ms) conseguidiis medrante interrupciones ;por desb0rdamit:nto del Timer O.

FactorAlto

O,1.FactorAllo

Timipo 3ajo O,](200-FxiorAlto)

-.-m+–

M*–.–

m——-+——–.

Titnipu Alh

3

12

9

21

12

O,! ms

19.7 rns

1;,

m~

2,l ms 1J ms

Anguio

LIST

P16F84A

Gw

18.8m~ 17,9ms

qO0 180″

Tim

18,8 ms

9P

ENI

& -WDT-OFF Br -FWRTi-ON & -XT-OSC

LBLOCK OxOC Contador

FaccwAlm ENDC

CBI

o”

* * * * V * * C * * * * * * * * * * e * * * * * * C I * * * b * V

-CONFtG -CP-OF’F

;Mantiene la a ; a lWpx(2C

(Grdm)

—–

L

;ZONADEDAMS *

; Subnrtina ‘Ti

; Factor por el que se vaa multipiicar e1 tiempo ; patrbn de 100 p.s para obtener el tiempo en atto.

RA-MA

CAPITULO 3 1: SFR VOMOTORES DE RADIOCONTROL 5 1 I

cR~-L~A

TMRO-Carga

EQU

#DEFINE Saiidn

PORTB,O

ORG gota

; Vator obtenido experirnmtaimentecon la ventana ; Stopwatcb para un tiempo de 100 s. ; Lfnea del W O B donde se conecta el servornotar.

4’90’

O Inicio

ORG .4 gob

TUnerO_Inknupcion

bsf

STATUS,RW Salida

Inicio

bcf movlw movwf

; Esta línea se cmfigwaw m salida. ; TMRO sin prescder.

blOOOO1OOO’ OPTION-REG

bcf

STATLrS,RW

movIw movwf clrf

bt1O10000(r

; Autoriza intemipibn TOI y la general (GiE).

NCON Contador

Principal

movf andlw

Contador,W

caü monvf cai t incf

SeleccionaFxtorAlto FactorAlto Retardo1 s Coutador,F

gob

Pciticipd

b’OOOOOO1li

SeleccionaFactmAlto M w f

DT

=S*

dT3′,d’l2*,d’2 1 ‘. d112’

; Tabla para el s e ~Futaba l S3003

; Msnrime ts salida en alto un tiempo igual a

Anguio

;a [email protected]

x (2WFactorAlbo). El @o&

lODps x (FlictorAlto) y en bajo un tiempo igual de la stAal cuadrada lo rnantrene en 20 ms.

(Grados) e-

@’ 90″ 180″ 90″

; Contador auxiliat.

Tirad-htmpcion mowif Guarda-W swapf STATUS,W m o d Ouarda-STATUS bcf STATUS,RPO rnovlw TMRO-Cqa

lempo 1

en alto.

‘I

; Guarda las valores de tenian W y STATüS en el ;PP-P*@. ; Garantizaque trabaja en el Banco O.

[‘

‘i’, l

movwf decfsz

TMRO TimerOerOContadorA,F

; Decremerita ei cwtadar.

goto

Fin_TierOrOhtempcion SaW

; Testea el mtaior esiado de la salida

btfsc

h I

,

Il’

5 12

MICROC’OKTROLADORPIC 16F84. UE5ARRVLLO DE PROYEC i 3 i S

O~ 4 – M A

EstabaAlto

g m EstabaBajo

;Estaba bajo y lo paM a aito ; Repone el cunhdor n u m e n t e m el tiempo en ; alto.

bsf

Saiida

mvf

FactwAlto,W

mowf

T M – C m ~ A

goto

Fm-T~merD~Intemrpcion I

Estabdlto bd movf

Salida FmAltn.W

,200 movwf T m d – C ~ ~ r A Fin4TimdemInteqxion M-STATUS,W

sublw

;A paitir de una

; Estaha alto y lo pasa a bajo. ; m n e el contador nuevamcnrc con el t i m ~ p o ; en bajo. ; E1 periodo sera de 100ps.2W21iOOOps=2Oims.

; Restaura registros W y STATUS.

~1

STATUS

movwf swapf

Gw&-W,F

mf –w,w bcf

iNTCON,RBF

bcf

LNTCON,TOIF

ENDC

re&

A la hora de claborar el progranla de control, hay que tener eri cuenta que las especificaciones de estos servomotores dc pequeño cnctc no suclcn ser muy eclrkhs. De heclio si cambia wi servo por otro de la misma marca y modelo no es raro que tenga que reajustar el centrado e incluso los reconidos. Luegi* ttio debe extraiiarsc si necesitara reajustar ligeramente las constantes de cstos programas, para su caso particular.

En el siguiente programa ejemplo el ai-igulo del senJumotor í*s ~onbolxhpor el valor de entrada fijado por los interruptores conectados al Puerto A con una resolución de 10″. Asi sj la entrada vale O se posiciona en O”. si vale [ en lo0: si vale 2 en 20″; …, y si

ORG Boto

0

vale 18 e111SO .

ORG soto

lnicio 9

posicionamiento de uri servomotor Futaba S3003. Conirola el k l o ;m d m t e mMíal cuabtodaJW ‘ M de 20 ms de p i d o que se aplica a su línea de control. ; El hgulo es gokmda por el tiempo en alto da h seiíal cuadrada desde O” @ara 0,3ms ;de tiempo en alto) hasta 180″ @mun

tiempo en alto de 2,1 ms) iPrograma de ~untml hl

la lineas del Pueao A conbrolanel ingulo de posicionamiento con una que se indican en la siguiente tabla, tornando conm ;tiempo patr6n 1M) ps {0,1 ms) mseguidos median& interrupciones por desbordamiento del

;l 3e& pro-

;mlwiún de

1P aegh los val-

;Timer O.

;.Enaada

F~

; RA4:RAO

(31-htda)

Tiempo AIto 0,lxFactorAlio

Tiempo Bajo O,lx(2OC-FactorAito)

–*e–..—

-+——*-

——–+—-

‘ —m-

;0 ; 1 ; 2

3 4 5

A i t o

0,3 my

0,4ms O,5 m6

ms 19,6ms 19.5 ms

19.7

[email protected]

(-S} -+—–+

0″ 1P 70″

bsf

bcf

7 ? ,.

~ U – V4

,3 w-vA

CA~~TL’LO 31: S~.’IIVTJMOTOKESDF.R,UIO(:O’I’TROL

; 17 ; 18

2,O ms 2,l ms

20 2I

18,O ms 17.9 ms

513

170″ 180″

7

;A pariir de una entmda superior a 18 d

mF vrii h

4.

;~~ADEDA~)S*********************************v************************t********** CONFLG -CP-OFF & -WI)T-OFF & – PWRTE-ON & -XT-OSC

LIST P-16F84A INCLUDE ‘P16F84A.INO

CBLOCK OxOC ; FactOr por el que se va a multiplicarel tiempo ; patriin de 100 pc para obtener el tiempo eii alto.

FactorAlto ENDC

EQU

TMRO-Cnrga

490′

; Valor obtenido eqerimentalmcntc wn la ventana ; Smwatcli para un ticinp

de 100 ps.

:La próxima conshnte hay que variarla [email protected] el tipo de Servomotor utilizado

que las :tas. De

iga quc cesitara

;Tiempo en ;lita

para O”. Para el Futriba S3003.300 p.

AltoCeroGrados TiernpoPatron

EQU

d’3W 6 1#’

FactwMinmio

EQU

AlroCeroüddTizmpoPatron

EQU

#DEFINE Salida

por el ición de …, y si

;Línea dcl Puerto B donde se conecta el servomotm.

-i

ORG goto ORG

O inicio .4

Pro

Timero-Intempcim

bsf

STArnS,RPO Salida

Inicio

bcf movlw mwwf movh movwf

bcf mwlw

b’OOO1lllli

; Esta línea se coafigura

comu snlida. ;hiatoA configurado como entrada.

PORTA b’00001D0(1′

:TMRO sin prescaler.

.

.

OPRON-REG STATUS,ñPO M 0 Carga

movwf

MOmovhv btl0100000′ movwf W C O N

; Carga el Timer O.

; Autoriza inhmpcióa TOI y la general (GIE).

Rincipai PORTA,W

andhv d

w

mowvf

b’000Illll’

; Lee el puerto de entrnda ; Se quede con lm bits d i d o s .

Factorhimo

;Para conseguir el timp mínimo correspiindientt:a O”.

FíictorAlto

;Valor eniregado a la subtutina de

513

hIICROCONTR(3LADOR PICI bFg4. DESARROLLC DE PROYECTCX

/ pm

Pruicipai

;atención a la intcmrpcibn.

; Mantim la aabda en alto m tiempo igual a 1 0 0 ~ xs (FactorAlto) y en bajo un tiempo igual ;a 1 0 0 ~ xs (2WFactorAlto).El periodo de la s&l adrada lo mantiene en 20 m.

:Contadorauxiliar.

TirnerOerOIntemipcion movwf m – W swapf STATtlS,W movwf Gwd-STATUS bcf . STATIIS&PO rnovlw TMRO-Carga movwf

m 0

decfsz

ThnerO-ContadorAJ?

goto

Fin_TimcrO_Intmpcion

btfsc

Salida E s w t o

gotD

;Guarda los valores de tenfanW y STATUS en el ; p m p m a principal ; G;uantiZa que W j a en el Bancg O.

; Derrerncntmi el contador. ; Testm el anterior estado de la salid&

EsWajo bsf

rnovf rnovwf goto

Salida ; Estaba bajo y lo pasa a alto. FactorAlto,W ; Repone el ccmtadoinuevamente con el riaapo en TimeiO-ContdorA ; dto. F~TimerOerOintemrpcion

EmbaAlto bLf movf

Salida FactorAlto,W

sublw .200 momf TirnerQ-ContadorA F u i T UnaI)-íntampcion swapf Gd-STATUS,W movwf

STATUS

swapf

Gia-wJ

swapf

bd bcf mfie

Guarda W,W

INTCD~,RBIF N K O N ,TOIF

;Estabaaltoy lopasaabajo. ; Repone el connuevammte c m el tiempo ; en bajo. ; El periodo será de 100fis-2W20000pa=2hs. ;Restaura registros W y STATUS.

O RA-WA

7

A-MA

C~QPITULO 32

SENSORES PARA MICROROBÓTICA 32.1 SENSORES PARA MICROROB~TICA El presente capitulo es iiiia basc de datos o guía de referencia sobre algunos seiisorcs y de cómo conectarlos al inicrocontrolador para realizar aplicacicines especialmente dirigidas a 10s niicrorobots yero adaptable a muchos proyectos industriales. Los sensores que se van a estudiar son:

LDR, detector piisivo de luz. Sc utiliza para detectar ausencia o presencia de luz. CNY70, serisor cjptico reflexivo por infrarrojo con salida a transistor. Diferencia colores blailco y negro. OPB7031415,sensor óptico reflexivo por infrarrojo. H21A1, sznsor óptico de barrera. lndicado para medir velocidad de mi~tores. GP2Dxx, sensores uifrarrojos para medición de distancia. 1S471F, censor detector de proximidad de obsthculos por infratrojos. B~tmper,f i a l de carrera mechico para detección de obstáculos SRFM, sensnr de obstaculus y medidor de distancias por ultrasonido.

Pero antes es iiecesario conocer ima forma de acoridicionar sedalcs no dipitales mediante inversores Trigger Schmitt.

32.2 INVERSOR TRIGGER SCHMlTT 40106 Algunos sensores no proporcionan sefiales digitales puras y es necesario conformar dicha seiial antes de aplicarla al microcontrolador,como en cl ejemplo que sc muestrrt en la figura 32- 1.

KA.kl.

vi*

Figiir.u 32- 1 .L)ñ~r/c:s ric ~tirrcrcitry .~ulir lrt tic un ciwu ifo Trigger Srhrnit f

I Jiia Ioi~i::~ 3c.i rcllla 1.l~: cutifr,ri-nar utio seha1 e11 digital es mediante puertas Trigger Schmitt, ccitno Iris qiic ticnc cl circuito iiitegrado 401 06. Este dispositivo contiene 6 in>crsorcs J.ri:;;cr Sr!iiiiiii cncrips~iladi>s scgúii se inilict?en la figiira 3 2-2.

El funcional: una mane

añadir el (

Estos disposili*os ticneii Lina c;iracteristica de transferencia como la que se muestra en la 1Tgii1~ 32-3. Fn csta cuma se aprccia que si la tensibn de entrada aumenta desde O V hasta un nivel ,ilio la traiicicicín se prtiducc siguiendo b curva A y conmuta para el valor V I’ . dcnoininnrlo amhral superior. Por cI contrano, si la entrada esti a un nivel alto y disininuyc Iiiistü 01′.I,I tranciciiiii sc prodiice sigiirendo 13 curva B cuando se alcanza el dcnoniiiiadci taoibr:il ieihrioi V ,-. I,o.; valores de y de V , – para el caso del 40106 depeiidcri de la tc.r~~~iiiii dc iilinieritnciiin y piicdcn tomar Icis valores de la t-bla 32-1, Eli !; ciirva d,: i:;!ti~f~rc:i~ia dcl iiivcrsor Schrnitt cs iniportante observar que la tmiisiciori dc salid:: dc iito – 3 Brijri cs distinta que la dc Unjo -+ Alto. A estc fenbmeno se Ic coni3i’c coino Xliaii’esis.

Tal

E st con señait 32- 1 se mi digital. Ci vuelve a ti consideni 40 106, la ;

RA-MA 1

Trigger ntiene 6

:muestra

esde O V i el valor )el alto y lcanza el el 40106 .l.

a que la 5meno se

FIguru 32-3 Curva de truisv/;~i.c~~?r’ina r.lo r 117 ini)ojntir. Triggcr ,S~,hrnift El inversor Tnggcr Srhmitt, y todos. Icis disposiii~os cor, ~ q i r : iipo ric funciominicnto, utiliza el sirnholo de la figiiia 32-3 pai:i iridici~iq i i c pucdcii rcspciririci dc una manera fiable ante striales q i i e cambi:iii con Icrititud. Ilsta s~rt-il~oI~gi;i sc h x i cii añadir el dibujo de la pifica de histcresis en la ciitr:id;i corrvsprindici~l~.

Tabla 32- 1 I “rrinresclk tT y 1 T ~ I A W o1 40 1/16 (tr)~Ii>.~ k )r il:,r{:i.

i

~:o/tio.s)

Estos circuitos son de ~ a utilid;id i ~ cuando sc clrscn c(:nii-{il:ii. 1111 r*it-L-iiitodigiVal con señales que no lo so11o señales digitalcs coil una srii:il dc i-iii di: ,iriniar;ln. En 1;i íiglir;i 32- 1 se muestra como actúa un circuito no invcrcoi- lfenlc a iitia s;:i-i;tl rliic ri;i cs ~ iii-aiiicritc i digital. Cuando la señal V I alcanza 21 valor V., ‘ I;i sal¡da V,, h n c c i i l : ~:I ~ i iiiil:cI i al11i y rir! vuelve a tomar un nivel bajo hasta que 1;i ciiirada n o Ilcgilc n ‘, l:,~ la tigul-i~32- 1 sc 11;i considerado un no inversor para una mis, ficil cxplicricicin. I’nia iin iiivcr;c>i. ~ o t i i ocl 40 106, la señal de salida hubiera cstado invertida reYIiEicici dc 1;i t i ~ , i i i n

5 IX

U I C R o C O U T R O W R PIC I6F84. DPSARROLLQ DE QROYECrOS

8M-MA

CR A M A

En conclusión, un dispositivo Trigger Schmitt produce transiciones de calida limpias y rápidas, aunque la entrada no 10 sea. Et rnimonkolador PTC I6F84A posee Ia línea RA4 con entrada Trigger Scmitt (figura 5-7) que se puede utilizar para este fin sin ~eoecidadde intercalar un 40 106. I

R7 337

32.3 LDR Las resistencias dependientes de la luz, LDR aight Dependertr Rcsistor) o fotmistencias, son dispositivos que varían su rmisíencia en funci6n

de la luz que incide sobre su supwficie. Cuanto mayor ssea la intensidad luminosa que incide sobre ella menor será la resistencia entre extremos de la misma. Para su fabricacibn se utilizan materiales fotosensibIes.Su a w n fisicn y sUnbologia

mLr.~común se muestra cn la figum 32-4.

.

.. , ,

8

L

.-

.. – .

. :S-.

.:

i; +.-:.

.. –

.. –

LDR

LDR

,

F o m fisica

Shbofo eléctrico más común de 3n LDR

I * .CL YUL Ie mcurwc ; del miiduilii LCD vc

Figz~ro32-4 LDR

:basta 99

Su valor nominal se especifica sin que incida la luz externa. Así, por ejemplo, una LDR de valor nominal 50 m, como la de la figura, tendri dicho valor si se tapa de manera que no incida la luz sobre su superficie, si se la acerca a una bombilla de 60 W

:ZONA D’EDATOS

puede bajar hasta unos 30 a.

Las principales aplicaciones de estos componentes son cnntroles de iluminación, control de circuitos con selb,en a l m q , etc. La forma más sencd1a de conectar estos sensores de luz a un rnicrocontmladores mlizando un divisor de tensión con la LDR y un potmi0metm, que permite ?jurzar el nivel de luz a detectar, A la salida’del divisor de tensión se le coloca una puerta Trigger Schmitt para conformar la señal, tambikn puede hacerse m una entrada de a t e tip como la RA4 del PICláF84A tal mucstaa la figura 32-5.

I

1

I

El p r o p m Senso-DR-Ol.acm haz de luz que incide sobre la LDR.

menta el número de veces que es c o d o un

DRG

i

Inicia

O

CAPITI~U) 32:

t M-MA

SENSORES PAR.4 MI~ROROBOTICA 519

ies de salida 84A posee la -a este fin sin

Resistor) o uz que incide ella menor an materiales ura 32-4. t

lre

– Incide luz sobre LUR –> Entrada RA4= ‘ O Corla ha2 de luz cobre LDR –> Entrada RA4=”1’ (Flanm Aspendenle) Vuetue a Incldir luz sobro LDR -> Enirada RA4= “0” (Flanai Descendente)

Figuru 32-5 Cvn~xionde una LDR a la mlruda Trigger Srhniirr RA4 de un P1CI 6F84A

LDR

9

; Una LDR ae i ea la entrada Trigger Schrnia RA.t/TOCKI aplicando impulsos d Timw O Eada la W de htz y la LDR En la pantalla ;vez que se os cure^ al intmpnetse ua-i objeto ;del d u l o LCD se visualiza e1 númao de veces que se hkmmpeel haz & luz en dos dlgiios ; (ha99 * o ) .

ejemplo, una si se tapa de billa de 60 W

:iluminación,

controlador cs mite ajustar el puerta Tngger :ste tipo con10

es cortado un

ORG

O

4 1

bEf

LCD-inicializa STATUS,RPO b’00101W OPTION-REG STATLiSJWO

ctf

TMaO

inicio bsf rnovlw mowf

; AoocsodSanm l. ; TMRO mino contador por flan00 scendenre de ;R A W K 1 . . Prescaier asi& d Watchdog.

; Acceso al Banco O. ; lnicializa contador.

; La seccih “PrincipP es de mantmhiento.

So10 se dedica a visualizar el Timer 0, cuya

;cuenh sc increinenta coii bs flancos ascendente prucedente de : RA4iTOCKI donde se ba conectado la LDR.

Iri

cntmda Triggcr Schriiitt

;C

d la LDR

Principal. cal1 niovf cal! cal1 goto

;ZONA DE DA

LCD-Lineal TMR0.W Bm-a-BCD

; Se pone al principio de la lhm 1.

1,CD-Byte

: Visudiza, apagando las dxenss en c a ~ o de q~iesean 0.

; k e l T u n e r O. ; Se debe visualiznr en BCD.

hiricipal

Este programa solo pertnite contrir dc forma corrccta hasta 99. Se deja al lector su mejora para ~iridcraumentar la cuenta y utilizarlo. por ejemplo, en la coinputüción de los ob,jcios que están en una cinta trarisportadora, pcrscitias quc pasan por uria puerta. etc. Estc niisrno programa se l~iiedeutilizar para otros censores que sc dcscrihcn mas adelante, por qjcmplo para cotitar el iiiutierci dc objctos que pasan por delante dc iin sensor dc iiltrasonidos. El circuilu de la figiiia 32-6 jiiilto con cl prograina Sorisor .ILDR_-fll.asmconstituye otra aplicacihri típica. Se trata de un interruptor crepiiscular, que cs un circuito para cricender una Iimpara cuando llega la noche y apagarla con los prirncros raycis del sol.

Inicio bsf bif

bcf kf bcf

PrUicipd

btfss Boto EacierideLw caii btfss

soto Y RE1.E

e

bsf

REO

4%caU btk

g*

bcf Fin

cal1 goto

INcLLrn END

+***I**bC*ir4*$******,***i******L4*

1

ScnSoI-LDR-

~*****Lm*****~**********C******I*~*Y*

; Programa de un interruptor crepuscuIat:una b p a r a se inatendrh encendida mientras wa ; de noche. Uria LDR detectarh la luz arnbicnte (sin que le Heme la luz de la Ihpm quc ;pretende conu.olar) y estad conectada a la 8ntrada Ttigger Scbrnirt RA4.

Este tipo I LED, y un recep define el tipo ya :

al lector su lacion de los :rtri. etc. Este idelante, por

11 serisor de

i

; Cuando la LDR detecte osmidad el sistema activará ima kmpara: ; – LDR ihuninada 3 Enb& PIC = “0” -A Lhpmapagada.

; – L D R a i o ~ ~ ~ i d a d EneadaPIC=”l” -> ALbmpani-ida.

se conecta

:ZQNADEC~D~~S**********+*I***********I****~****I****~******~******W******** ORG hiciti ; Acceso al Bataco 1.

bsf bsf

ni constittiye

:ircuito para

s del sil.

; Lhm donde se conecta la calida. ; EnTrigger Schmi~del PIC don& ; b LDR.

#DEFRIE LmpmPORTB,I #DEFINE LDR PORTA,4

bcf bcf

; A-

bcf

;En principio

I h p a r a upapda.

al Bmco O.

Principal btfs9

LDR

gow

ApaWpara

cal1 btfss

Retad- 20s

; J?ntrada=l?, &DR en &?.

;No,LDR

i ! i m h d a por el sol.Apga la Idmpm.

Encid-

W R

baf

Fin Lampara

goto

Fin

APasaLampara cal1 Mfsc

;Espffaesietimppmnbu~Ioaat&$ : &nmda=l?, ¿LDR sigue en oscuridad? ;No,sale fuera. ;SI, mciendc la lamparrt

; Espera este tiempo p m conñrmar la luz de1 mi. ; ¿EnW=O?, iLDR sigtic ihiiaimda por ~ U del Z sol? ;No.sale hem. ; si, apw Igmpara.

Retado-20s LDR Fm

bcf Fin

cal1 soto

LamP ~

0

~

2

0

s

; Permaneceenelesardo~n~~lmtriosestetiemp~.

Principal

INCLWDE 4U5TARDOS.MC> END

32.4 FOTOSENSORES ACTIVOS Este tipo de sensores consta de un emisor de luz, que nonnahente es un diodo LED, y un receptor. que suele ser un fotodiodo o un fototransistor,la situacirjn de ambos define el tipo ya sea reflexión o por barrera como se estudiará a continuacicín.

522

M I C R O C O ~ O L A W RPICl h%M.DESARROLLO DE PROYECTOS

0 RA-VA

Sti aplicacjbn. entre om, suele ser la detecciiin de la prcscncja de objetos, medida de distancias inuy cortas, lectura de cisdigos de barras, etc. En microrob6tica suelc :para dcitectar una marca o seguir una línea (normalmente negra sobre fondo

vcc:

..

Los problemas mis comunes que suelen darse con este tipo de sensorcs son que la reflexión depende las características del material y del color;en principio los colores mis claros reflejan el haz de luz infranoja m i s que los oscuros. La luz ambiente es una importante fuente de mido a tener en cuenta.

Al 2;:

Sensor optico CNY7Q es un sensor optico reflexivo con salida a transistor (figura 32-7) Vishqk. TeIej~nken Semlcondttctors (www.vishay.cum). Tiene una constmcciOn compacta donde el emisor de luz y el receptor se colocan en la misma dirección para detectar la presencia de un objeto por medio del empleo de la rcff e x i h del haz de luz idmmoja IR (Infraredl sobre el objeto. La tongjtud de onda de habajo es 950 m. El emisor es un diodo LED infrarr~~io y el detector consiste en zin fototmnsistor. La distancia del objeto reflectante dcbe estar entre los 5 y 10 mm de distancia. La corriente directa del diodo Ir= 50 m4 y la intensidad del colector es de IC= 50 inA.

#

El circuitr Utiliza un arnplrfi ha canectado cr potcnciólrnctro qui

Vista desde arriba Aspeicto y pati1Iaje

Diagrama interno

Fiipr-a32- 7 Sensor cipiico relferivocon salida

n fransisfni.CW70

.

ara conectar estos dispositivos hay que polariz;rrlos, ésa es la fiinci~nde Inq resistencias del circuito de la fipura 32-8, donde se mt!esiran las dos posibles formas de conexión. según se quiera la salida alto para color blanca o negra.

El invmor Trigger Schmitt 40106 se intcrcata pam corifomras las tensiones a valora lógicos. Hay que tener en cuenta que los valores de msiciiin de la puerta son VTt = 2.9 V y V; = 1,9 V para una tensión de alimenlacion de 5V y no podemos variarlos.

f

CAPITULO32: SENSDRFS P,WA MICROROB~JTICA 523

P RA-MA

is, m e d i h rica suele

bre fonclo

Funcionamiento del Circuito (A): – Detecta Blanco –r Transistor Salurado – – r E n h d a al inversor “U –> Entrada al VC “1” Detecta Negro -> Transistor en Cone Entrada a) inversor “1” -r Entrada al VG’O”

-.

vcc=5v

VCC=SV

son que la dores más ite es una

32-7)

riene una la misma flesion del ia.10 cs 950 insistor. La .a corriente – Detacta Negro

–r Trans151oren Corte –> Entrada al inversor “O” –> Entrada al pC “1”

Figflru 3.2-8 Cirtrritu tr;tlzcosde conexiupr del CM70

El circuito de la figiira 32-9 permite ajustar la tensión de disparo del CNY70. Utiliza un amplificador oper~cional,que trabaja como comparador de tensiiin, al que se le ha conectado en la rtitnda no inversora cl sensor y a la entrada inversora iin potencibmetro que traja como un divisor de tensión. VCC’W

1’70

ción de las formas de

S

tensiones a erta son VT

ariarloS.

Fi

524

MICROCOWROLAWR P1C lbFR4. DPSARROLLO ‘IIEPROY E m S

’13 un-M

Su funcionamiento es el siguiente: si la tensión en la entrada no inversora es mayor que la tensiOn presente en la entrada inversom, Irt salida del amplicador operacional toma el valor ‘”1″ y si, por el contrario, la tensibn en la no inversom es menor qiie la existente cn la entrada invasora, la salida toma un nivcl “O’. Es recomendable que la resistencia variable del circuito sea un potenciómetro rnultiwelta, ya que dc csta forma es más sencillo el ajuste.

h c senaores OPB703, OPB704 y QPB705 de Ea empresa Optek Technolom (www.op~ekinc,coni) son tarnbidn del t i p reflexivo y utilizan como emisor un diodo LED emisor de infiarrojos y como receptor un fototransistor (fipia 32-10). En este tarso est5n montados sobre unas lentes convegentes alqiadx en la carcasa n e p y la forma del sensmpermite que el haz refleje en una superficie más concreta que el (247’70.

De los tres modelos aqui tratados, el OPR703 no dispone de lente?el OPB704 tiene una lente azul de polisdfuro y e! OPB705 pemiite un desp~azamientode la lente para corregir el Q ~ P En ~ estos . dispositivos la lente de plisulfuro elimina g n n parte de las interfmncias producidas por la luz ambiente. Superficie Reflexiva

/

n;lpl-lci

y patillaje

Patil t as y cabezal

Figura 32-1O Sensores Opiicos rgflaivos O P703/4/5

La distancia del objeto reffectante debe estar e n k los 4 mm y 10 mm de distancia, La comente directa mhirna del diodo lF = 40 mA y la intensidad del colector máxima es de Tc = 30 d.

Los circuitos de aplicación sedn 10s que se han mostrado en las figuras 32-8 y 32-9 pero habrá que modificar las resistencias de p l a r h c i b n tcniendo en cuenta la corriente máxima que soportan estos dispositivos.

Para cc y los OP703 circuito con siiperficic blz hará que en

enfrenta a un; LCD aparcct

c~rinrto 32:

c RA-MA

2s

I

SFNSOWS PAKA M K R O R O B ~ T I C A 525

mayor

es mas

chnologv un diodo este caso

Tamia del Funcionamienlo.

1 –

GZ

. Blanco ->Transistor

22P

– Negro –Transistor en C m e

Sauraao

.–Enbada inversor ” 0 –> RA3; ‘1’ –, Enmda invsrsor “1” –> M = – D .

704 tiene ente para rte de las

32.4.3 Ejemplo de aplicacion Para corriprobar el funcionamiento de los dispusjtivos que tiernos analizado CNY70 y los OP703104105 se puede cargar el programa Sensor-CNY70-01 .asm y montar el circuito con el sensnr de la figura 32-1 l . Cuando cl sensor se enciimtra frente a una superficie blanca el h a z infrarrojo refle-ja y en la entrada RA3 aparece un nivel alto que hará que en el LCD visualice el rnensajc “Color BLANCO”. Si el haz inhrrojo sc enfrenta a una superficie de color negro o tio encuentra superficie, el haz no refleja y en el LCD aparece el mensaje “Color NEGRO”.

;Eaimblla L.CD se visualiza el color “Blanco” o “Negro” que e& detectando el sensor CNY70, ; se& b configuración del esquema corrrspiindimie. Si: ; Color B h c o –>transistor sahuado 3 abada al inversor”O” –bRA3 = “1 “. ; Color Negro -> transistor en corte 2 enhda al inversor “1 ” -aKA3 = “0”.

distancia, náxima es 7-8 y 32-9 3 corriente ; Líneas donde se conecra d sensor.

526

MICRWONTROLADOR PIC 1 hF&l. DESARROLLO DF PROYECTOS

O M-M.4

; Z Q ~ ~ A D E C ~ D* *~~ *~* ~O* vS+ w * * * * * * * * * * * ~ * * ~ ~ * * * v ~ * * + b * * * ~ * * ~ * * ~ ~ * * u ~ ~ * * * ~ * * m e * * * ~ * * * m m + ~

ORG

O

4 1

movlw call

LCD-hiciaiiza MensajeCiilor LCDMemaje

bsf

STATVS,rn

hf

STATCiS.RPO

call movlw

LCD-Lind

;Linea del senwr se configura corno entrada.

btk rnovlw cal1 goto

MensajeNegro Sensor MmajeBlanco

LCDMensajc Principal

; En principio considera que es negro. ; Lae el sensor. ; No,es blanco. ; Visualira el msultado.

DT ” BLANCO”. 0x00 DT ” Negra “,0x00

WCLmE

a-ms.IN0

32.4.4 Sensor óptico de barrera H21AI El representante más populw de este tipo de sensores es el H2 1 A 1 (figura 32- 12) fabricado entre otros por Isocom Componetirs (www.isocorn.com) y Faiwhild Semiconductors (www.fairchildsemin~j.

cl haz infrarrt

Estos sensores también tienen como emisor un diodo de infrmojos y Como receptor un fototransistor. En este caso el etnisor y el rcceptor estjti enhitados a una distancia de 3 mrn y entre ellos existe un espacio para que un objeto pueda introducirse y romper la barrera iri frarroja.

que pasan po luz eii la unid

El circiiito de aplicacibn para este tipo dispositivos es similar al de la figura 32-8. Los valores de )as resistencias de polarización deben limitar la conientc por el diodo emisor IF a 60 mA y por el colector del transistor a una comente lc no siiperior a 20 mA. El fabricante facilita los valores de pmeba indicados eri la tabla 32-2.

32.5 SE

1

Los 1F alta sensibilii C:orporntion

muestran cn 1

v BF M A

ORA-MA

-.

Aspecto y patillaje

CAP~TL;LO 32. SENSORES PARn M I C R O R O ~ J ~ C 727 A

Posición del emisor y del rcccptar en el dispositivo

Fi,qura 31-12 Sensor Upfico de hmera H2 IAJ

Para comprobar el funcionamiento de estos sc :picden utilizar muchos de los programas propuestos en temas anteriores sustituyendo pr por el cimito con el sensor hptico. Por e-icmpl las pro_mrnas rn~in-i.asrn, 1n-nt-02.asm o Semor-LDR-Ol .asm, que prcsentarin en un LCD e1 n h e r o dc veces que se interrumpe el ha;? infrarrojo del senwr. l

.

,

Una aplicación típica dc estos censores es medir la velocidad de un motor. Para ello 3

y comu

dos a una 3ducirse y

se acopla a1 eje del motor un cncodcr, quc es una Eimitia circular con una serie de ranuras que pasan por el centro del m o r y cortan el haz de luz, el número de artes del haz de luz en la unidad de tiempo sed proporcionar a !a velucidad dcl motor.

32.5 SENSORES INFRARROJOS GP2DXX Los IR Sharp GP2DXX son una familia de sensotec de infrarrojos compactos de alta sensibilidad para IR deteccibn y medida de distancia. En la página Web dc Sharp Corporarion &np://sham-wor1d.m) encontramos algunos dc los modelos que se muestran en la tabla 32-3.

524

MICROCOWRCIL4DOR PIC 16F84.DESARROLLO DE PROY PCTOS

c.

R4

.w

distancia o la mudo de func transmite a trí contrario, no

lectura que se obstáculo el h punto de refle? ndiendo de la distancia.

Seguida

Tabla 32-3 Sen,cor4esde la serie GP.2D.u

El objeto esa cerca, el triangulo as pequeAo y el Bngulo B gran&

El objeto esa lejos, el [email protected] alargado y el hnwlo es pequefío

Figirra 32- 13 Concepto de medida por trimgiiducion

1

32.5.1 Principio de funcionamiento Estos dispositivos emplean el método de triangulación, utilizando un pequeño Sensor Detector de Posición lineal (m, Position Sensitive Detector) para determina la

El senso micmontroIad la entrada de ci dto no ha dcite alcance al que z

BRR-m

CAP~WLO 32: SENSORES PARA MICROROB~TICA S3

distancia o la presencia de los objetos deniro de su campa de visión. Rhsicamente su modo de funcionamiento consiste en la emisión de un pulso de luz infrarroja, quc sc transmite a través de su campo de visi614que se refleja contra un abjcto o que, p r el contrario, no 20 hace. Si no ennientra ninpiin obstáculo el haz de luz no refleja y en la lectura que se hace indica que no hay ningún obstáculo. En el caso de encontrar un o’bstaculo el haz de luz infrarroja se refleja creando un trihngulo formado por el emisor, el punto de refl exiiin (obstáculo) y el detector.

La información de Ia distancia se extrae midiendo el ángulo recibido. Si el angufo es grande, entonces el objeto estA cerca, el iriángulo es pequeiío y ancho. Si el ángulo es pequeño, quiere decir que el objeto está lejos, el triángulo es largo y delgado. En ta f j p 32- 13 podemos ver una representación de estos conceptos.

Seguidamente describiremos el m 4 0 de manejo de algunos de estos dispositivos.

El Sharp GP2DOS es un sensor capaz de medir distancias por i n h j o s e indica mediante una salida lbgica(O ó 1) si hay algún objeto dentro de un alcance preahblecido (figura 32-14), El rango se ajusta entre 10 y 80 cm con la ayuda de una resistencia variable que incluye el propio dispositivo, que es ficil de regular. Patendornmo –pai a ajuste de distancia

El sensor utiti7a sblo una línea de entrada y otra de salida para comunicarse con el niimontroladot. Su utilización es tan sencilla como mandar un impulso a nivel bajo en la entrada de control (Vi), esperar en* 28 y 56 rns y leer el estado de V,, si esta a nivel alto no ha detectado obskiculo, si está a nivel bajo ha detectado un obstáculo dentro del alcance al que se ha ajustado.

530

MICROCONTROLAWR PlC16FM. DESARROLM DE PñOY E-

6 RA-MA

32 ‘” qP2P15 El Sharp GP2D15 es un sensor medidor de distancias por infmojos que indica mediante una salida digjtal si hay un objeto a menos de 24+3 cm (figura 32-15). La detcccibn se hace de forma continua, esto significa que no es necesario ningtin tipo de circuito de control ni temporización externo. Basta con aplicar tensihn para que la medida este disponibte cada 50 ms. El sensor utiliza una Unica línea de: salida para comunicarse

con el micmntmlador. De características similares a este dispositivo, Sharp ha sacado recientemente al mercado el GP2YOD21 YK.

vcc GND

vo

ktas de tcn GP2DJ l

El SI infram,ja n negro esta c

El S h r p G P 2 v l ~es un sensor que mae distancias por inrmrrojos. El dispositivo indica mediante una salida annlhgica la distancia medida al objeto sobrc el que refleja el haz de luz. Za tensibn de salida varía de foma no lineal cuando se detecta un objeto en una distancia entre 10 y 80 cm, ital y como se aprecia en la curva de la figura 32-16. LA salida eski disponible de foma continua y ni valor es actualizado cada 32 ms. Normalmente se conecta esta salida a la entmda de un convertidor analhgico digital, el cual convierte la distancia en un número binario que es utifi~adopor el micmontrolador. ia salida tambikn puede ser usada directamente m un circuito analbgico. El sensor utiliza sólo una h e a dc salida para comunicarse con el mimontroladot. Su margen de medida esde 10a80cm.

De caracterÍsticas similares a mercado el GP2YOA2 1YK.

este dispositivo, Sharp ha sacado recientemente al

Este un p m p l paso banda.

Figura 32-16 Función de fiansferencirs del GP2D12

32.6 RECEPTOR PARA CONTROL REMOTO SFHSI .10 32.6.1 Descripción El SFHS110 es un receptor de TR (infi-are4 utilizado para detectar un haz de luz irdiarroja moduIada en sistemas de telemando {figura 32-17). Su encapsulado en eoior negro estA disehado con un filtro de corte para la luz del día. VCC – .-

J –

-* -GND

1 –

holadiir. p o r utiliza &&medida

Figura 32- 17 Vida y patillaje del SFHSI 1 O Este circuito integrado incluye un fotodiodo sensible al haz infrarrojo de 940 nm, un preamplificador, un control de ganancia automático, un demodulador y varios filtros paso banda, como puede apreciarse en el diagrama de bloques de la figura 32-18.

Se comercializan distintos modelos de este sensor dependiendo de la hcuencia de ‘la portadora a utilizar, como puede comprobarse en la tabla 32-4.

532

MICROCOM’ROLADOR PIC’ l nF84. DESARROLLO DE PROYECTOS

t. HA-MA

32.6.2 Cit La fig detecta una h

Auiomdtico de Ganaricia

paso banda 4Demdulador

Figura 32-18 Diagruuiri de3bloques del circuito SFH5 I I O

i

El c i r c ~ un ciclo de tra otra initad a n circuito integ ajusta la frecc realizar cl ajus

TubZu 32-4 Frt~menciade porfadora de los djstlntns nzodelos dtl setrsure.7 o

vcc=5V O

Vcc=+SV

SFH 5517 -XX Microconfmlador

n

de infrarrojos señal a iina ( Darlington BE

GND

(“) R1 y C l cdlo son necesarias para eliminar las periubaciones de la fuente de alimentacibn

32.7 SE1

Figuru 32-1 tJ Circuito receptor de haz inftnvrojo moúulario

E1 iS47 que es capaz (

I

CAPITULO 32: SENSORES PARA MICR~ROBPTITA 5.1)

L.’, RA-uA

32.6.2 Circuito detector vcc

La figura 32-19 iiiuestra c l circiiito de aplicacihn que proponemos. Cuando se detecta una haz de luz infrtirruja modulada a la frecuencia del sensor, pone un nivel bajo en la patilla V,, en ausencia del haz modulado la salida es un nivel alto. Salida

32.6.3 Circuito emisor GND

El circuito emisor debe de ser capaz de generar uiin olida cuadrada a scr posible con un ciclo dc trabajo del 50%, es decir, la mitad del periodo In sena1 estLwha tiivel bajo y la otra mitad a nivel alto. El circuito propuesto es un multivibrador astable realizado con un circuito integrado 5 5 de uso muy corriente (figura 32-201. El potencibmetro cori el que se ajusta la fi.ecusricia del multivibrador es recomendable qiie sea multivuelta, para poder realizar cl ajuste cle La frecuencia de manera mis cómoda.

!

– THR

CV

~7 DIS -3 Q

TR

5

K

2N2222

U

15K

q

4K7

R3

47

R2 VCC=5V

0-13 –

DI

INT T

1 TIO C2

w

. .

Emisor lnfrarmjo

UF

Figzcr-rr 32-20 Cir~-l I ~ I Ot3rnisorde haz infrarrojo modulado 36-40 kH.2

GND

Si se disiniiiuye el valor dc la resistencia R3 hasta hacer pasar por un diodo emisor de infi-arrojos SFH 45 10/SFH 45 15 iina corriente de 500 mA, se puede llegar a recibir la serial a una distancia de 30 m. El transistor 2N2222 se puede sustituir por un par Darlington BD135 y BC547 utilizado en otros esquemas (por cjcmplo cn cl32-6).

32.7 SENSOR DE PROXIMIDAD IS471F El IS47 1F fabricado por Sharp Corpoiatioir es iin detector de ubst&ulos infrarrojo que es capaz dc dctcctar cuando se refleja sobre uii objeto el haz que emite un fotodiodo

1

534

MICROC’ONTROI. m R PlC 16FX4 DF.SARROT.1I ) DE PRí-)Y ECITOS

O*

RA-MA

emisur dc infrarrojos que se le conecta tal y como se muestra en el circuito di: la figura 3223.

salida se nbti

o vcc

a vo 0 GND

@ GLout

Estos dispwitivos son inmunes a las perturbaciones de luces externas debido al sistema de modulación de luz quc llevan incorporado. El prvpio circuito incluye el &ver de ~111150~ y shcronismo, como puede verse cn el diagrama de bloques de la figura 32-22. El circuito detector y emisur tiene un amplio margeri dc tensión de alimentación que va

desde 4,5a 16V. En este conectar uti con

32.8 BUN Los detei uno o vanos

mecánicos com control de nive robatica convcn Los buml comutador qui meta1 qiic hace

que dispone de longitudes de la Figitrcl32-22 Dingrum~i[le hkuqires del 1.9471F

:bid0 al :l driver 3 32-22. . que va

El circuito prácticn de aplicación que proponemos es el de la figura 32-23, con c l que se pueden delectar objetos situados a una distmcia máxima de 70 mm siii quc haya contacto fisico con los mismos, la distancia puede disniinuir dependiendo del color del objeto sobre el que reflecta el tiaz iiiírarrojo. Cuando se aliriienta el circuito a SV, en la patilla de salida (V,) aparece un nive1 alto con una tcnsiiin de 5V si no hay ningi~nobjeto próximo. Si se coloca un objcto eri el radio de acción del dispositivo, en la patilla de salida se obtienen O V y por lo tanto un nivcl bajo.

C…..

1S471F

Fiswra 32-23 Circuito hasico de ~~plicación rfd IS4 71F

En este circuito para estabilizar la teilsibn de alimcntrición es recomeiidable concctar un condensador de iiltt-o20.33pF. cntre Vcc y GND cerca de1 dispositivo.

32.8 BUMPERS Los detectores de obstáculos mecánicos son unos dispositivos que abrcn o c i e m i uno o varios circuitos elictticos. En el mercado existen innumerables detectores mecáriicos como pueden ser pulsadores, interruptores: sensores dc presión, boyas para controI de iiivel de agua, etc. Nosotros tratareriios de los finales de carrera que en la robótica convencional y micicirobótica reciben el nombre de bumpers {figura 3-23).

Los burnpers como puede verse en el diagrama de su represcntaciiin eléctrica. es un conmutador que cambia de posición al realizar la presiiin necesaria sobre la lámina de metal que liacc de brazo de una palanca de primer orden que a su vez activa u11pulsador que dispone de un miielle de recuperacih. Se comercializan burnpcrs con diferentes

S36 MiCROCOmOLArXIR P1Cl bFS4. DESARROLLO DE PROYECTOS

O RAMA

O –

Activado (A)

Final de carrera

Representación de un final de carrera

Figura 32-24 Final de carrera de tipo Bumpq AI activar el brazo de la palanca, el temhal común C realiza un contacto elktrico con el t m i n a l activado A. Cuando no se activa la palanca el terminal C estñ en contacto con e1 t m i n a l dc reposo R.

Los urtrason i ci pero dc fsecuencia humanas. Los dctcc: mediante un dispos, algUn ob-jeto. ri tni tiempo quc tardan 6 objete sobre el que P

EL S1 Ltd ( w ~ ~ . T o ~ [w.sul>en se encuerim su bajo consumo y gr 32-26,

En temas anteriores se ha utilizado siempre sistemas a n t h b o t e softwaTe para los pulsadores. Un sistema antirrebote hardware se muestra en la fgum 32-25, se mta de un flip flop M que presenta en las salida Ql y Q2 unas seiiales complementarias. En el estado de reposo la salida Q E tiene un nivel alto y la salida 4 2 un nivel bajo y al activar e! final de canera la salida Q1 pasará a tener un nivel bajo mi-? que la salida 4 2 pasad a nive1 alto.

Este sensor fui hacer la medicibn. S I anchura del piilso de 1

Figirro 32-25 Conrxión delfinal de carreraa trm& $E un circuito antimebofe

El scnsor SR1 emitidos viajan a la z reflejado y captado íil incorporado cs emitir

32.9 DETECTOR POR ULTRASONIDO SRFO4 Loi; ultrasonidos son vibraciones del aire de la mislila naturaleza que el sonido, pena de frecuencia superior a los 20 H-k por lo que no son audibles por los m humanos. Los detectores de obszacuIos por ultrasonidos emiten pulsos de ultrasonido mediantc un dispositivo transmisor, cuando las ondas ultrascinicas se reflejara sobre algún objeto, a tmvés de una cápsula sensible se captan los pulsos reflejados. El tiempo que tardan en volvcr los piilsos reflejados es proporcional a la distancia del objeto sobre el que se reflejan.

i

eléctrico

1 contacto

EL SW04 es un módulo de sensom por ultrasmidos, desrtrro!lado por Deiwrrrech Lrd (~w.mbot-electronics.co~uk) y comerciali;rsido en Espaiia por Intpluc S.L ( w w w . s u ~ m o h o t i c a . ~que ~ ) ,es capaz de detectar objetos y calcular la distancia a la que se encuentra cn un rango de 3 a 3 M cm. De muy pequciío tamaño, el SRF04 destaca por su bajo consiirno y gran precisión. Su aspecto fisico y conexiones se muestran en la figum 32-26.

e para los rata de un ias. En el

Canexlones del SRFW

activar e1 2 pasad a t .5llrnanlsd4n ?N

Z Salldn Eca 3 E111rada Disparo

Aspecto fisico

Cencxiones y vista postcriol

Este sensor hncinnn por ultrasonidos y contiene toda la electrónica encargada de hacer la medicion, Su uso es tan sencillo como enviar el pulso dc arranque y medir la anchura del pulso de retorno tal como se muestra en la figura 32-27.

El sensor SW04 fiinciona emitiendo impulsos de uftrasonidos, Los impulsos emitidos viajan a la velocidad del sonido hasta alcanzar un objeto. entonces el sonido es reflejado y captado de nuevo por el receptor de ultrasonidos. Lo que hace cl controlador incorporado es emitir una ráfaga de impulsos, a continuacibn empieza a contar d tiempo

538

MlCRKONTltOLADOR PIC 1 hFM, DESARROLLO DE PROY ELTOS

un-MA

aiie tarda m se traduce en un nulso de eco de michura – – eco. – – -. Ente —- .t i e m–‘ 3— — en — lle~ar — =” el –

– –

n*

J;.-,.-+~I

proporcional a la distancia a la que se encueiitra el objeto. Pulso de Disparo

10 uS Mínimo Entrada Pulso ds Disparo

I

Permita un retardo de 10 mS desde el final del Pul- o de Eco y el COmlEriZG del Pulso de

U Impulsos

‘1

ultra

11

I

Rafaga sónica d ~ c r l a01 —–

[/

!

Disparo

cancni

u. u-,

1

l

II

I U

Nota E l P u l s o ds Eco

d

NC

u

rel=”nofollow”>

Iidr

Z

Pulsu de Salida de Eco

E

Figura 32-2 7 Diagramar de iiempos del SRFO4, (c¿~rfe~..iLi de www.srtp~rrohof ica.com) La relación entre la distancia medida y el ancho del pulso se muestra en la tigura 32-28. Por cada centímetro de distancia la anchura del pulso se incrementa en 60 p, siendo el rango de medida ihlida entre 180 11s y 18 m, correspondientes a 3 y 300 cni respectivama te. 3

4

5

6

*258

– –

– – – – –

259

1 i

300 DISTANCIA (cm)

.L ——.-

I

I

0,lO 0,18

IF’

0,24

030

.”

ANCHURA 18,00 36.110tPULS0 ( m s ) MAXlMO ~~nina –A q …–.-,

17.68

0.36

MlNiMo I _nniurn .,..,- n~ I l-

17.94

I

.**************

1

I

; Para el control ; lhea RA3 que ; sensor se ponga r ; uitemrpciones po ;S e g u i d a m a se ;centirnms.

,. D.,-

A-A-

.,-L.

I V I L-Ua b.GIlULW

I

i

Figura 32-28 Relación entre la distaticio »tedida y la unchuua de pulso

; En este programa

: ZONA DE DATi

I

Una aplicación típica puede ser un medidor de distancias, como el de la figura 3229, donde en el display se visualiza la distancia desde el censor a un objeto.

I I

El programa Sen~or~Ultrasonido~O1.asm, piiede utilizarse para comprobar d funcionamiento del sensor. La técnica de programación consiste en mandar un impulso a nivel alto de disparo con una duración minirna de 10 ps al pin 3 del SRFO4 (entrada

-r n M

LIST iNCLUI

C8UIC I

Distancii ENDC

Rh-MA

: anchura

disparo). Después se lee el pulso que sale por la patilla de ECO pin 2 y se mide su longitud. que es prcipiircional al eco recibido.

retardo de

le sl 6nal e Eca y el le1 Pulso de

la figura en 60 ps, y 300 cm

.i

.*kli**O*iT~U**L***O#*******i**,**SeIISM

; Programa para

– uaoniJo –

+*****~”+C*~***,VU**I**~

un medidor & dismclas hasta un objeta utilizarido L.erisoíporuhmonido SRF04.

;Para el control del semar en primer iugar se genera un pulso de 10 us a mvei alto por la que se conecta a Ia entrada de di~parodel msm.Seguidamente se espera a que m el : línea ; aensor se ponga un nive1alto en la salida ECO que se conecta a la liea RA4 y se utilizan Ips ; interrupciones por desbordamiento &I Timcr O para medir el tiempo que está en alto el pulso. ; Segudmente se v i d i z a en el módulo LCD el valor de Ia distancia hasta al okqeto e x p r d m ; centimfms. ;Por cada mtúr&u de distancia al objeto el SRF04 aumenta 60 ps la anchura del pulso. 3 ctn y la mixima 250 cm.

; En este programa la distancia minina es

CBLOCK OxOC Distancia

m i

540

hIICRKONTROLAWR PIC 1 hF84. UESARROLI.0 DE PRO’rT.C’TUS

#DEFINE Diqm PORTA,3 #DEFINE Eco PORTA4 MinimaDis!ancia

EQU

MaxbDistaacia

EQU

; Disparo para iniciar la medida. ; Pulso cuya anchura hay que medir.

.3 ,250

; Valor obtenido experimenttilmente con la ;ventana Stopwatch para una interrupción del ; Timer O cuda M) p. Si no mide correctzmciitt pir las tolemcias de los componentes M d ; que hacer un a j e fúio de este vator, comprobándolo wbre Ias condiciones reales.

TMROCarga~crm

EQU

ORG

O

goto

Inicio

ORG

4

goto

Serviciointemipcim

4’27’

M-jeDistaracia

DT ” Distancia: “,OxOO MensajeCentimetro DT ” cm”, 0x00 hfmsajjeDisranciaMenor DT ‘mist. MENOR de:”, 0x00 McnsajeDistanciaMayor DT “fist.

MAYOR de:”, 0x00 4 1

I

kf bsf

mwlw movwf

bcf

Eoo b ‘ m ‘ OPTION REG STATL’S~PO

moy

; Prescaler de 2 para el TMRO.

Dic(arrcia Disparo

btfss @tu

Eco ESpera-Ec0-l TMROOCargadOmicros

Reiardc-70micros Dispara

m=x~Eool movlw

m

M

rnoviw movwf

W O b’10100000′ MCON

subu bth ~ D

:úticializa línea de disparo en bajo.

clrf bsf cal1 bcf

;visualizmrrm ;Ycuandom ;Si la distancis

LCD-Inicializa STATWS,RPO Disparo

bsf

; V i s W la d

; Iniciztli el registro. ; Comierw el guiso de disparo. ;Duraciún de1 pulso. ; Final del pulso de disparo.

; Si E C M , espera el flanw be subida de h &al ; de salida del censor. ; Ya se ha producido el flanco de subida ; Carga el Timer O.

;Auton~airiterrupcibndel TMRO (TOIE).

sub1 btfsr

!m

DisrauciaMayt mov mov mov

mv mov mOY

gota clrf cdl

Espera-Eco-O NCON VisuaIiza

; E s p flanco de bajada de la s d a i de la salida ; del S W . ;Se ha pducido d h c o de bajada. Prohlbe intemp. ; Visualiza la distancia.

Disl~nciaFiabi m VisurilizaDim

Fin

call

Reíardo-2s

gota

Principal

– Subrutina”S&cioIntmppioa” del

; Espera un tiempo huta la pr6xima medid&

——.

; Se ejecutadebido a la peticibn de interrupción del Timer O cada 60 ps que 8s

el mCmento ; & la anchura de pulso por centímetrode distanciamedido. La variable “Distancia”contiene el ; valor de la distancia espresada en centímetros.

ServicioIntmpcion movlw TMRO-Carga60micros movwf TMRO movlw . i &lwf Distancia,F mvlw MaximaDisimcia btfk STATüS,C movwf Distancia bc f MTCON,TOF rdie

; Cwga el Timero. ; Se utiliza insmicciim “addwf”,en lugar de “incf’ ; para posicionar flag de Carry. ; En c m de desbordamiento carga su máximo valor.

; Visualiza la distancia expresada en centimetros. Se t i x e de manera que niandohaya que ; visiialitar un nírmero mayor de 99 las dwenas siempre se vimialicen aunque sean cero.

; Y cuando sea menor de 99 Iasdecenas no se v i d i c e n si es =o.

; Si la distancia eu menor de 3 cm o tnayor de 250 cm apmcc un mensaje de emir.

Visualita ; Borra la pantrilla antsrior. ; Va a comprobar si es menor del mInimo 8drnisblc. :TW)+istancia)-Minimaatancia ; ;C=l?, ¿(W)positivo?. [email protected])rMinimaDi~ia? ; No ha resultado menw. y salta al mensaje de error. : Va a comprobar si es mayor del máximo sdmisible.

can movlw

subwf btfss goto

movf

btfs

; (W)rMaximaDistancia-(Distaricia) ; ¿CeO”, ¿(W) negativo?, &laximaDistancia~istancia)?

goto

;No,la medida de

sriblw

movwf

MaximaDistancia Distancia

la distancia entra dentro del rango.

; La distancia es rnayw que el &o

movlw MensajeDistanciaMayor goto

DistanciaMenor niov1w mowf movlw DistanciaFiable movlw VisuatizaDisimcia

VisusiizdXstancia

MinimaDistmcia ; La distancia Distancia MensajeDiutanciaMenor ~iisual~Dis~c~~

ir~enordel minimo fisble.

542

MICR(K0NTROLADOR PlC16F84. UESARKOLI .U DE PROYEflOS

0 KA-MA

!

‘,

caIl rnovlw

LCD-Mmje

cal1 movf

4 1

LCDLPosicionL~ DistancikW Bi’Na-BCD

mvf

BCD-Centem~W

btfss

STATi JS,Z

gota

VisdmCentenas

mcst-f d i

DistanciqW

;Vuelve a recuperar este valor.

BIN-a-BCD

d i

LCD-Byte

: Liopass aBCD. ; Visualiza las decenasy unidades.

gota

Visuali~a-cm

.S

VisdizaCentmas cail LCD .NitibIe movf Distancia,W

d

BIN-a-BCD

cal1

LCi-ByteCornpleto

movlw

MensajeCentim-

csll

LCD-Mumaje

: Centre la metida de la distancia m la segunda llnea ;& la pantalla.

: im pasa a BCD. ; Primero lai centenas. ; Si mcera no vislializa

las centenas.

;Viwalim las centenas. ; Vuelve a reci~perareste vaior. ; Lo pasa a BCD. ;Visualiza las detenas r a q u e sea cero) y : unidades.

¡

C

I

La mb

rem

INCLUDE

Un sensor con mejor resolución es el SRFO8. Se trata dc un niedidor de distancias por ultrasonidos para robots con conexion I2C. Tiene un alcance de 6 m y un consumo de 35 mA activo y de sólo 3mA en reposo. Gracias a su bus 12C se pueden conectar Imta 1h unidades con s8lo dos líneas de entrnda y salida, permitiendu montar un completo sonar perimetral en cualquier robot Únicamente con dos pjnes libres, Como valor dadido, incorpora iin scnsor fotoeléctrico que indica el nivel de iluminación a traves tamhikn del bus IZC. Su precio es aproxiinadamenteel.doble que el del SRFW.

eleckbnica. H

Para ul sobre una a

cxperimental,

conocimientos ‘-trasto”, el le como hito lir

33.1 INT

niveles, cada

rnicrombot. E: a

Nivel

único

capac

segunda l

3r de

h

distancias un consiuno de lnectar h a ? a 1 6 :ompleto sonar valor añadido, es también del

CONSTRUCCIÓN DE UN MICROROBOT

La robótica es una de las aplicaciones más apasionantes de la electranica. Hasta hace poco tiempo había que ser todo un experto para poder adentrarse en esa rama de la electrónica. Hoy en día, gracias al imparable avance de la microelectrónica, tio es dificil construir un microrobot, denoniinado también microbot, qiie es un pequeño robot de investigacibn que nonnalrnente se controla con un microcontrolador y que esd diseñado para realizar tareas concretas.

Para un solido aprendizaje, sc van a desarrollar las explicaciones de este capitulo sobre una aplicación real. Vamos a detallar la conssucción de un microrobot experimental, a partir del cual, el lector pueda desarrollar toda sus habilidades manuales y conocimientos de mecánica y electrónica. A este micromhot experimental le llamaren~os “Trasto”, el lector puede introducir todas l i s mejoras que sea capaz de idear, poniendo como Unico limite su imaginacion (y presupuesto).

Al plantear la constniccion de un microbot es interesante conocer la clasificación que hace la empresa Microbotica, una de las pionera? en este campo en Espaiia. Esta clasificación esta basada en la Torre de Bot o TorreBot (figura 33-11, que tiene seis niveles, cada uno de los cuales diferencia un paso en el diseño y construcción del microrobot. Estos niveles son: Nivel físico. Comprende la estructura física, las unidades motoras, y las etapas de potencia. Es posible encontrar desde sistemas sumamente sencillos basados en un único motor hasta estructuras sumamente complejas que buscan emular las capacidades mecánicas de algunos insectos.

-A

534

MICROCOW.I1’ROLA~CiR PIC 1hF84 DESARROLLO DF. PKUYE(:TílS

IL-MA

4%

KA-.UA

Nivel de reaccihn. Está formado por cl ccinjunto de scnscrrrs y los sistema? básicos para su manejo. Estos sensurcs cubren un amplio margei dc posibilidades, así podenios encontrar desde simples bumpcrs (finales de carrera), hasta microcaii~arasdigitales con sistcitias de rcconociiniento. Un microbot que haya superado cn cuanto a su coilstnicriiin tanto cl nivel fisicn como el de reaccibn, se denomina microbot reactivo. Estas unidades trabajan cuiiipl iendo la premisa, “acci6n-reaccioii”. En estc caso los sensores son los propios contr»ladoresde las iinidadcs irlotoras, sin ningún tipo de control intermedio.

I

Nive con11

cono coop PnPU

En estc

Nivel 6 Nivel 5

Nivel de Inklgencia

Nivel 4

Nivel 3

1I

~ i v e~l l s l c o

1

l

I

I

mcrcatlo.

Nivel 1

Nivel de control. Iricluye los circuitos d s básicos quc i’elacionan las salidas de los sensoriis Con las restantes unidades. Partiendo de una simple lógica digital y llegando hasta potentes microcoritroladorrs buscan dotar al rnicrobot de la capacidad para procesiu La infonnaciói~ribtenida por los serisorcs asi coino actuar de una manera controlada sobre las uiiidndcs motoras.

1

un motor p

Nivel de inteligencia. Abarca la $ir1ificaci6n a largo pluo. En csie nivel se introducen los cibjetivcis dcl microbot qrie tienen relativa indepei-idenciri de los sensores. Este es cl nivel más alto dc iiiteligcncia quc puede alcanzar un inicrobot corno una utiidad iridividuat. Nivel de comunidad. Se trata de la puesta en hiicionatniento de más de un microbot dentro de iiti tnismo entorno de forma ximultliiea y sin que ninguno dc ellos tenga conocimientos explicitoq dc la existencia de otros eii su mismo entornci. A estos rccintos sc los dtmomina granjas. Los centros de invcstigacibn utilizan 1 s granjas conio entomiis de observación de los microbot. Dichos . establecimientos pucden contar con sistemas sufisticados quc permitan a u11 operario monitorilx el coinpcirtarniento dc la comiinidad asi como alterar las

condiciones externas dcl sistema (agregar obstáculos, cambiar la terriperatiira. etc.)

son los que S revoluciones apropiados p

~n los 1 o la posibilida redirctorcs. qu microbot cnn de algunos dc

En mic radiociititrol. 1 estudiado en e

Estos S

constmcción 1 trasladar cibjei mutti tud dc a(

histemas 3rgc:cn de :carrera), robot qiie mo el de ~iliendola propios dio.

Nivel de cooperación. Comprende los sistemas doildz a partir dc iiii nivel cle comunidad se planifican o programati Icis microtiut para quc icngan conocimiento Q la ewistcncia de otros, dc inarizra que posean la cqacidad de coopera1 para el huzii desarrollo de uria tarea. Deiitro dc este pip estarian los populares equipo:, de fútbol constitliidcis por rnicrcirubots.

En este capítiilo vamos a cunstruir un robot quc 1leg:ira hasta el nivel dc control.

33.2 NIVEL F ~ S ~ C O MOTORES . Dentro dcI nivel fjsico comenzarelnos a hablar de los motores. A 13 hora dc elegir un motor para aplicaciones dc microbiitica, debemos tener en cucnta que cxistcn varios hctorcs como son 13 velocidad, el par, el frenado. la inercia y el niodo de ccintrol. Si lo que queremos es utilizar un motor de cot.iientc coiitinua cxisten varias posibilidades en el mercado.

33.2.1 Motores de corriente continua de pequeña potencia Denti.0 de la gran aricdad de tipos existentes en el mcrcado los tilis economicos son los que sc utilizan en alguncls juguetes. Ticneti el inconveniente dc que su niimero de revoluciones por nimuto es muy clei*adoy sil par cs pequeño, lo quc no los hnctl rnuy

salidas de . digital y lot de la nio actuar

i nivel se :ia de los

microbot

.as de un nguno de u inismo ~stigacioii . Dichos tan a un .Iterar las ipcratura,

apropiados para la ccin5mcciiin de un nitcrubot si no un sistema dc regulación electrbnico.

be

iitilizan rediictoras adicionales o

33.2.2 Motores de corriente continua con reductoras Eri los juguetcs como ,tl(~c.rrno y I,cp podemos cncuntrar motores con rccluctoras o la posibilidad dc constniirlus. TarnbiCn podemos encontrar cn cl mercado inotijres con rcdiictoies, que adernas de disminuir 1;i lzlocidad le dati más par, lo que permite mo tir e1 microbot con su cstructiira y batería quc pruporcionalmente pcsa muclio. Las fotagi-afias dc algunos dc cstos motores se rnucstran en las figuras de la iabla 33-1.

33.2.3 Servomotores En micrnbótica se suclcn utilizar los n~isnicisservoiiiotorcs que en inodclismo y radiwontrcil. Sc trata de unos motorcs con iin circuitci electronico. ccinio los que si: Iiail estudiado en cl capitulo 3 l. Estos senuinotores cumlilen las características que los Iiacen ~ ~ S ~ I I L ‘ para U S la coiistrucción dc nuestro microbot, conici un bucn par de salida, potencia suficiente para trasladar objetos o uno hcitcría, baja inercia, capacidad de niovcr 3,5 K g I; cm, incliiyrn

s66

MICROCONTROLAWR PIC 1 @M.DESARROLLO DE PROYFCTOS

Q m-MA

CRA-MA

ir dentro de una carca- de plástico rectangular m w p d e s para fijar los rornillos. De hecho la opción que hemos elegido para la mstmcci6n de nuestro microbot “Trasto” ha sido utilizar estos servomotores como elementos motnccs. esñuctura plana al

*

h s S de girar conici como es reqlicr las que estin restricción vic m w h~icosquo

:.-M

l

circliito cleclrcc

2.-

por In tanto,

motor de DC c

-.

Quitar c1 tornit me&? mcton que es eskiao s a c d a despub.

Motor reductor dc relaciciri 194: 1 con doble eje Motor con reductor dc relacihn 17:1 can bi 2,4×6 mm, tensirjn de h b a j o 1,5V-12V doble eje de 44×20 rnm, tensión de trabajo 13-t2Y

I

…+–. -L..

Sacar tos

Motor rcductor de reiacicíti 23: 1 crin doble eje 4 ~~o~ mludorde reIaicj6n 10:1 con doble 4×40 mm,tensibn de mbaio 1,5 V a 12 V eje de d 2×20 mm, tensi6n de trabalo 1,SV4,s v

CM

posterior. Al Ii

circuito clcctrt esti metido a

hay que extrae7 del potenciam engranajes que quc hemos ahie

TabFn 33-1 Tipos d~ mororc~de C.C. comevciu~escon redtcroras

Pata pder utilizarlo en nuestra apIimci0r1,un servomotor debe ser “mcado”p quc el cjc dc3 motor pueda girar 30s 360 ” ya que normalmente giran entre hasta 180″ ó

270″. dependiendo de los fabricantes.

1

33.2.4 Madifiicacidn de un servomator En es El “”tmcar”los servomotores los hará inservibles para su use en las aplicaciones tipicas dc radiocontrol, ya quc se convertirá en un motor de comiente continua con una caja reductorrt, pero desde luego p m nuestro fin no tiene ningún problema

t

de la

Seguidamente se miiestran los psos a seguir p a n convertir los scrvomotores en

motores de corriente continua con iina caja reductora. La mayor parte de los servomotorcs son similares, nosotros vamos a modificar el modelo HS300B de la m a Hitec que es muy similar al Fiitaba S3003. ! 1

.

reducir la ~ifelo potcncia y par (

,

tes para i

fijar de nuestro

Lm serv~mtomde oigal

3VU

~~pccs

. ..- –

.- .

..

..

de girar como mucho entre 180″ y 27W, como es requerido en las apbcaciones para –

3.

-K

‘ están riensados inicialmente. Esta restriceitjn lpuesta Fmr unos t o v s : mecánicos que limi tan el gilm a 180″‘ y un . circuito elscmnico. Si eliminamos las dos . cosas podeirnos con!segiir el 1giro de 3160″ Y. I por lo tanto, que sc comporte con10 un . motor de DL con caja d u c t in. m, ~

I í ~ qque

A

b

w!

Quitar el tcirnillo qii e sujeta el soporte de la P- – – – solidariamente al eje, . rueda tractosa uniaa que es estriado, F sacarla dccptiks a pr 1

‘ “‘

SI

Sacar los cuatro tomillos de Ia tapa posterior. Al levantarla, se puede ver un circuito eIectaónico que en nuestro caso está metido a presjiin, para pdcr quitarlo hay que extraer el EomilEo que sujeta el eje del potencihmetro por 13 partc de los enmnaies – ” que están en la cara muesta a la ie ql hemos abierto.

con doble ihjo 1,5V-

ricado” para

iasta 180″ ii

.-

.

1

l

iplicaciones ua con una motores en rtc dc los l e la marca

. . . – . -. En esta figura se aprecian los engranajes m a h de la etapa reductora cuya misión CY; reducir la velocidad del motor y dar mayor .. potencia y par de arnnqiie al sistema

-54% MlCROCONTaOLADOR PlCIóF84.DESARROLLO DE PROYECTW

RA-MA

1

pcrder ningina de [ cllas. prestar atencion al pequefio eje que hay entre las niedas intcrniedias, cn algunos modelos de servornolores es mtivil. en nuestro caso está fijado a la carcasa. Con ayuda de unos alicates de piinta plana quitar ahora la tlicrca que sujeta el poinci6rnetro.

Proceder a desmontar la placa del circuito impreso y el potcncibnietm ayudandose con un destornillador para hacer un poco de palanca.

Volver a moi caja reductor

-Y

[ rniicho cuidado de no

no confundirr no fomqr ni1

manen .. niic Y- tapa supeior. nnest 1-0caso eje de ias ru está t 1-

l-

E–

h.

At~nriiiar i i i u

aconsejable 1 cables dcl rr interior para cl caso dc tira

i

al motor para desprenderlo del circuito impreco. Hacer lo mismo mn los cables g i ~ cconectan el exterior a la placa del circuito impreso para poder reiitilizarlos. Seyidamcntc conectar el rijo al terminal con el punto roio y el negro al otra. cl tercer cable no sc iitiliza.

En todo c

la meda dentadc ocurrc muy frec la meda. sc pu conveniente inl separado cri tien

Pues bic deberemos hacc

Ahora eliminar el lirnitadot mecánico, que consiste en una pestal’ia de la rueda dentada. para ello utilizar unos alicates de corte tal y como se muestra en la figura. Usar una lima peqiieña si hay que eliminar algunos restos dc la pestaña. Tener miicho cuidado para no romper la mcda porque el scniomotro sc volveria inservible.

Para tijñi prbximo apnrtai

hacerlas nosoM Si se util han mostrado li carca= rednnd: el tubo dc las in

Volver a montar las medas dentadas de la caja reductor% fijándose en In tigira para no confundirse, y tener mucho cuidado de no fomar ninguno de los en_majes, de manera que no puedan deteriorarse. La

,

tapa superior debed entrar sin forzarla. en nuesm caso hay que tener cuict~docon el eje de las ruedas superior e infcrior que estA en la propia A-

Atornillar nuevamenre 1n tapa inrenor, es acorasejablc hacer antes un niido en los =Mes del motor y dejar el nudo en el interior para que proteja las soldaduras en el caso de fimr del cable.

Tahln 33-2 Secuencicl paro rransJomas un .rwvomotoi. en mo,

En todo este procesa, el momento mis delicado es Ia elitninaciiin de la pestafia de la meda dentada ya que si no se hace con sumo ciiidado la mcda se ptiede partir, caso quc ocurre muy frecuentemente. Si abn con todos Iw avjsos quc se le estarnos dando. r o m v la nida, se pucde intentar pegar con un pegamento de contacto. En cstc punto. es conveniente informar de que estas medas dentadas también se pueden conipmr por separado en tiendas de modeIisrno y radiocontrol. Pues bien, ya tenemos uno de los motorcs preparados pwa niimm mimbot. deberemos hacer lo mismo con el otro para tener la pareja necesaria.

33.2.5 Fijación del motor a la estructura Para fijar cl motor a Ia csmtcttira de nuestro microbot, que describiremos en el priiximo apanado, tan sÓIo tendremos que ~orisegirunas escuadras c m unos taladros, o hacerlas nosotros mismos con un trola de aluminio y la aytida de un tornillo dc banco.

Si se utiliza cualquiera de los otros tipos dc motores de comientc continua que se han mostrado la fijación al chasis pucdc ser mis o menos compleja. Si el motor tiene una cascasa redonda, que es lo normal. se puede utilizar una grapa de lac utilizadas para fijar el tubo de las instalaciones cléetricas de supcfieie, tal como se miicstm en la figura 33-2.

w

55O

MICRDCONTROLADOR PIc’l hFP4. DESARROLLO DE PROYEcrOS

Un eje

1 de la empu donde pvdem impreso de P

alqada una b:

ana

Para la cunsiru~xi0nde tlurñirrv microbot piemos utilizar rnucl~os tipos de estructuras, que dependerhn de la fi~nci0nque quminos realizar, no es lo mismo diseñar un rbot

bípedo quc ~ i nmstreador a un hexiipdo.

33.3.7 Estr Unas de las estructurac más utibzadas es la de los juegos educacionales de construcci0n tipo Lego, ~Mccanoo Eifech, intmsantes por su flexibilidad. Para un diseño un poco mrjs profesional se pprreden utilizar las ntructum de los Fi.~cherTechnik que k o n disefiadas originariamente para aplicaciones técnicas tanto estáticas corno de micas con movimiento (figura 33-3).

Para el microbot expt

por ejemplo incluso pucdc

Un ejempb de estnrctura realizada con un Mecano es el caso del microrobot Pivot1 de la empresa Microgsdazs Engineering. En la foto qne se muestra en la Figura 3 3 4 , donde podemos ver cómo sus disefiadares han integrado hábilmente la placa de circuito impreso de mnhE en la estructura mecánica y jiistrtmente debajo de él se encuentra alojada una batm’a de plomo de 12?y 0.8 mA%.

tipos de io disefiar

33,3.2 Estructura del rnicrarobot experimental “Trasto” corno de

Para el caso de nuestro mlcmbot, que no debe salvar absdciilos y que sed un rnicrobot. expetirnental de bajo coste, d e m o s utilizar una estructura más sencilla, como p r ejemplo un trozo de metacrilato, poliestireno, PVC, placa de circuito impreso o incluso puede servirnos la caja de plástico de im Coinpact Diycs.

Figi~ro33-5 Estructirra del rnicrohot “Trasto”

I

Eri nucstro caso vamos H utilizar dos placas de poliestireno blanco dc 180 x 13,5 mm, pero piieden utilizarse otras mcdidas. Se utilizan dos placas para poder poner las batctías en el piso inferior y el circuito de control de los motores y scnsores esi el superior (figura 33-5).

DIRECCI~ Ruedas de

33.4 NIVEL F~SICO. RUEDAS 33.4.1 Estructuras segun la colocación de las ruedas Los microbots utilizan Jus tipos de niedas: Ruedas irioiiices o dc traccibn, qiie cstán corizctadas al inoior mediante un cjc y &en ser Capaces de adaptarsr: a Los obstáculos del terreno. Ruedas “locas”. que deben ser capaces de rodar y liiwtar sobre si mismas. La ruedas sc piieden colocar según alguna de las estsucturas indicadas cil las figuras 33-6 a 33-9. La configuracion adoptada para iiuestro microrobot experimental ha sido la corrcspondientc a 1;i figiirn 33-7 que permite un control mis sencillo del sistema.

E S T R U C T U R A DE NUESTRO MICROBOT

E S T R UC TU R A D E COCHE T r a c c i ó n y d i r e c c i b n en das ruedas

I F i p i m 33- 6 Es!n4ct~iratipo c:oclrc

Las rue moviniisnto li contrario es pc

Rueda Loca

Figitm 33- 7 Paru rnict.nhot Truslo

Las sol ciptado por la

pacias a una : cualquier fem

180 x 13,5 ?r poner las 1 el superior

DIRECCI~NDIFERENCIAL Ruedas de tracción

ESTRUCTURA DE TRIC1CLO

.nte un eje y

mas.

:adas en las crimental tia *1 sistema.

Figwra 33-8 Con direccirin difirencid

Fipm 33-9 E.striictrrn dp triciclo

33.4.2 Ruedas “locas” Las ruedas “locas” deben scr capaces de d a r y pivotar sobrc si misrnas movimiento lo tnás suavc posible pam no dificultar la rotación (‘ contrario es posible que se bhtoqucc y patine.

con

I

Fig-um 33- 11) Ruehs “Iocrzr”cwr r mrlm lentos Las soluciones para este tipo de d a s pueden ser muchas. Nosotros hemos optada por las de la figura 33-10. que son niedas que giran libremente sobre su eje gracias a una peqiiciia plataforma con rodamientos,Jaspdcmos cnconimr fácilmente en cualquier ferretería, ademhs hay un _san surtido de ellas en lo referente a mrnañcis, Otra

5?d

MICROCONTROLAWR PlC 16FR4. DESARROLLO DE PROYECTOS

r un-VA

opcibn podn’a ser utilizar la bola de un mil-on de desodorante, a la que se le adapta un eje acabado en un terminal pam fijarla a la estnictrim.

i

r

Er hacen

mcivimie;

Li einr los

t>

R4-!iA

d p t a un eje

C’APITUIO 33:

K4- M A

(:O’IS-~RL~C’C’ION DE UN MICRUROBVT

555

33.5 NIVEL F~SICO.MOVILIDAD

I

i

La cstruct~iraque hemos clegido para nuestro iiiici-obot nos pemiitiIá realizar tnovimientos hacia delante, hacia ñtrris, giro a la derecha, a la izquierda y sobre si mismo.

N

I

c un jug~etc

1

en enconw,ir

:undaria para ichci o de uri

I

1! 1

i

ntcs hay que ruedas, para iiie de S!ípcr 3ara fijar las

8

F i ~ ~ k33m 12 Mo i~intierrtuhucia delunte Figura 33- 13 Moilir~lit’ritohacia atru.~

En la tigura 33-12 se mucstra como se realiza wi ttiovimiento hacia delante. Se haceti girar los dos motores en la misma dirección hacia delante, esto provoca un movimiento rectilíneo, siiponiendo que los dos motores sean exacLm.icnte iguales.

— —

La figura 33-13 reliresenta la forma de realizar el mor,irniento hacia atrás. Se hacen girar los dos iiiotores en la misma dirección hacia atrás, esto provoca uii movimiento ~ectilineo,supiitiicndo que los dos motores scm exactaiiziite iguales. 1

I Giro a la derecha

Figum 33-1J Giro en ,spnti& hora,.io

Giro a la izquierda

F ~ L U33-15 ~ U Giro LJ /U iqzkierd~l

Por su parte la figura 33-14 muestra la forma de realizar un moviniiento de giro a

,

556

h4ICROCOYTROLADORP1C 16F84. DESARROLLO DF PROYECTUS

c RA-t.44

La figura 33- 15 indica cbmo realizar un movimieiltn de giro hacia la izqiiimda. Se hace girar el motor izquierda hacia atrA.5 y el motor de la derecha hacia delantc, esto provoca un niovimicnto de giro a la izquierda de la estructura.

-4 r: D.-hiA

Figura 33- 16 .Movimiento de giro SObre su propio c . j ~

El movimiento de giro completo sobre sii propio eje abarca tina superficie i~iuy grande que no hace la estructum. isuy adecuada para moverse en recintos muy pequeños (figura 33- 16) como podrín scr cl caso dc

movi tiiiciilvs e11 pruebas de laberintos.

33.6 NIVEL DE R E A C C I ~ N Como decimos al principio de este capitulo. este nivel esta formado por 10s sistemas electrónicos y sensoriales básicos para su control. Vamos a realizar seguidamente un sistema de control pam construir un microbot reactivo, gobernado por el rnicroconwolador PIC16F84h, qiie sca capaz de seguir una Unea niigr;i sobre un fondo blanco. A este tipo de microbots se los denomina rastreadores y probablemente son los m i s sencillos para introducirse cn e! mundo de la riiicrorobiitica. La figura 33-17 muestra el circuito eléctrico donde se aprecia quc los sensores utilizados son infmrrojos reflexivos del tipo CNY70, descritos en el capíhilo anterior. Para controlar los niotores utilizmios el driver L293B explicado en el capitulo 79.

Para fi

adyuicicion e

Para 1 i ~ üroco~itro c la ventaja d

RA-M.4

:quierda. Se elante, esto

REO = “1” MOTOR [email protected] SENTi30 HORARIC. RüO = “Y.hlOTORG ñ A EN SENTOO ANTIHORARIO

RB1 =”O’. IhHABILITA DRlVER 1 Y 2 M T O R I PARADO

RB2 = ‘1″ H481LtTA ORIKR 3 Y P RB3 = Y”. MOTOR G R . EN S E N T W HORARIC,. R83 = D”.MOTOR W R 4 EN SENT DO AFIllHOPARIO.

:rficie miiv y pequeños s.

do por los a realizar do por el : un fondo nte son los

– DETECTA BWNCO –rTRPNSISTOR SATURAD3 d ENTRADA AL INWRSUH W’ –> HA = ” 1-. – DETECTA NEGRO -> TRAVSISTOR EN CORTE a ENTRADA AL IhVERSDR ‘1″ –> RA = “O* 51 E N RAO t Rkl HAY UN “?’ESTA FUEW M L A C l f l E A Y CON W” DENTRO DE LA LIHEA.

Figwu 33-1 i Ca’rclri/ot’I4ciricti del hficrobot “TRASTO ” Para tijar los sensores heuios utitiaado una cinta adhcsivn por

dos caras. de fácil

adquisicibn cn una ferretería. En la Figura 33-18 se aprecia la forma de fijarlos.

sensores 3 anterior.

S

9.

!S

I

Para poder conformar las señales de los senscires C m 7 0 a la eiitrada del niicrocontrutirdor hemos utilizado puertas inversoras Trigger Schmtt, que ademh, tienen la ventaja de qiie en cl mismo chip 40106 nos encoiitramos con seis inversores. El

icionamento y la descripcibn de os dispsitivm se explicaron en el capitulo erior. Como puede apiwcinrscen el circuito dc la figura 33- 1 7:

r i e r a 33-10 ryac

*

Cuando un sensor detecta el fondo blanco, a la entrada de la linca del PORTA al que está conectado F e llega un ” 1″. indo un sensor está sobre la linca n e-m , a

la entrada de Ja línea del PORTA al

EII casa que hacer es i i que nresmta cl

k

33.7.1 Est

está conectado Fe Ilega un ‘V.

Antes ddi micmbot, ya S{ fiincion. Dc cst;

En pnnci hr;i de diseñar

Figura 33-19 Visto laretnl de! rnicrolior

Trcritu

Al L29I1R le hemos conectado los dos niotures que necesita cl rnicrobot:

€1 motor de~echnse encuentn m c c t a d o a los dtivm 1 y 2 que est5n

nicrocontrolador.

Primer que el

1

los C i l c o mpi cnciieiit

-.

.

– —

7

Iln-hl).

itlilili

nd->A

r

C ‘ A P ~ U L 33; ~ ) CONS 1-KUCC’IOYDE UN MCI1C)KOBC)T 559 –

-.

El motor izquierdri se enciientra cunectado a los d r i v m 3 y 1,qire a su vez están controlados pur las lineas KB2 y Rl33 del micmcontrolador.

El modo dt fiiiiciiiiiainiento de lo5 rnotriires se niuestra en 135 tablas 33-3 y 3 3 4 .

Tabla 33-3

roitrrol dcl inotvr, de~ttclao

Tabh 33-4 Conlrol del m u : izquierdo ~

En caso que 31 montar10 cl motor le gire en sentido contrario. In iinico que ticrie que hacer es inveitii siis cuncxicincs. La iorografía de la figura 33-19 miiestiu el aspecto quc prcscnia el microbot ”Trasto” cebo cl circuito implernentado.

33.7 NWEt DE CONTROL 33.7,l Estrategia a seguir para un rnicrribot rastreadór Antes dc rcalizar cl programa dcbzmos fijar la estrategia que Jebe seguir el inicrobut, ya sea lima qiie se cornportc c o m un robo1 rristreador 0 pala cualquier otra hinciiin De esta riuiierti podren-ios fiar el al~oriimcide conixol. €11 principio parece razonable peitsar en cualqiiiera de las siguierites estrategias a la hora de discfiar-el algor ítnici dc hiii~cioriamiento:

Primer .4ignritma. Depcndjcrido de la posición de los sensores podemos hacer que el micrrihcit tome las dccisiunes ~nostradasen la f i w a 33-20, En este dibujo los ~uacirados dc la derrclia e Izquierda indican lectura del s c i w r corresporidic~tte:si cs blaiico indica que detecta fondo blanco y si es negro que encueiipa encima de la lirica nzga.

Salida por el borde izquardo. Realizar giro a la derecha

Permanece sobre la linea n ra Seguir hacia d3aite

Salida por el borde derecho. Realizar giro a la izquierda

Está fuera de la línea girar a la derecha o a la izquierda

El P continuació cntiende el (

Analizando este algoritmo detenidamente se puede comprobar que no es lo

suficientemente bueno. puesto que el seguiiniento de la linea dcpende de la imprecisibn del camino seguirlo por el microbot, es decir, depende de la anchura

de la pista. Esto puede ocasicitiar retrasos en el recorrido, cabeceus no dcscndos o

incluso que 11egue a perderse.

Segundo Algoritmo. En este caso, dependiendo dc la posición donde se encuentra el microbot sobre b Iínea, decidimos seguir urio de los bordes, eri nuestro caso el borde derecho, es decir, la detección de negro-blaiico respectivamente por los sensores colocados a la derecha y a la izquierda tal y como se muestra en la figura 33-21.

bianco si

; ;

– S el sensor I

; lndependi ; -Sielmi ; hasta que w

; La sedal de los ;inversor 40106 ; Color Blancr ; (No estienci ; – CoIw Negm ; (Estiencima +

Salida por el borde izquierdo. Realizar giro a la derecha

Permanece sobre la tinea negra Realizar giro a la derecha

Salida por el borde derecho.Seguir hacia delante

EstA fuera de la Iínea girar a la izquierda

Figura 33-2 1 Decisio~resr7 irirrinr seghi el sepndo algoritnru

;ZONA DE DA

0 Robot Raslreador

ConfiguracibnPuertos: RA4 RA0 -> Entradas

: ZONA DE C ~

ORG Ha salido por la derecha?

lnicio

bsf

por la izquierda’

bsf

¿RAO=I?

bsf NO

Gira a la derecha: RB3=1, R02=1 RB1=1, RBO=O

Sigue camino recto: RB3=1. RB2=1 RBi-1, RBO=I

Gira a la izquierda.

Figura 3 3-?2 Diagratnu r i’rflujo dd prugrama del micvnrnhof ru~trmdor

clrf bcf hcipal movlw

bcEsi soto

movlw b&

1

w.4

~ I A

CAP~TLLO 37:

a3 RA.MA

33.7.2 Programa del rastreador linea o

ia

El programa quc realiza el s c p n d o algoritino del rastrcador se muestra a continuación, es fácil deducir su funcionamiento si hernril; seguido los i-azoriarnientos y se entiende el organigrama de la rigiirri 33-22

k la :Iiiira

dos U

ICse C:

en

lanco tal y

3 linea

!rda

Programa de control para el micnibut TRASTO, el cm1 se desplaza siguiendo una lhea negra ; marcada ~oii~c fondo blanco a malo & pi.;ta. ;Los sensores iipticuu de reflexibn a y 7 0 están situados en Ia p a delantera inferior del ;mimbot: El sensor de la derecha esti conwbdo ü RAO y el sensor d e la izquierda a M.1. ;

;El programa adopta la estrategia de seguir la linea por el híirde derecho: ; – Si derecta que esti en el borde d m ~ h osmsor : izquierdo sobre negro y derecho sobre ; blanco sigue en hacia delante. : – Si el sensor de Ia derecha detecia liiiea negra gim hacia la daecha buscando el borde, ; independientementede como estk el sensor de la izquierda. ; – Si el microbot tiene los dos sensores fuera de la Iínra. se le hace girar a la itquierda ; hasta que vuelva a c n c o n ~ I d ~ . ; La sena1 de los sensores CNY70 se aplican a hs:entrddas del micrmontroIador a baves de un ; invavor 40 106 de m a n a tal, que para color: : – Color Blanco –I transistor saturado –> enal inversor “O” –> RAx = “1”

: entrada al inverwr “1 ” -2 ; (Esti encima de la linca negra. wta dentro de La pista)

“O.

-CONFIG -CPOFF & -WDT-OFF & -PWRTI-ON & – X u S C LIST P=1 6FS4A INCLUDE

; Scnsor optico Dcrccho.

; Sensor bptico Izquierdo.

OKG

o

bsf

STATUS,RFO

bsf bsf bci’

SeusorDerecha SensorIquierda PORTB STATUS.RP0

movlw bffis goto

b’OMK!i110′ SensorDerccba ActivaSalida

; P m girar a la derecha. ; ¿Ha salido por la krecha?, ¿detecta blanco? ;No,el detector derecho csd cncirna de la lima ; nem gira a la derecha.

movlw btfss

b’00000111′

: Para girar a la izquierda. : ¿Ha saldo también por la izquierda?

Inicio

clrf

; Selecciona Banco 1 de registros. : Estas líneas se coiifiguran como entra&

, Liiu líneas del Puerh B se configuran como salidas. ; SeleccionaBanco O de regish-m.

Principal

Sensorlzqiiierria

AIICROCON I’K0LAI)OR PIC’I 6F84. UESARRCJI .LO DE PROYECTOS

S

kovlw

G lb MA

;No, estaen el bde.derecho. Sigiiz recto.

b’0000 1 1 1 1′

Para ci tipo SFH511( figura 32-19, El esquema cc

Activasalida movwf

goto

PORTB Prbcipal

EN¡

33.7.3 Estrategia a seguir para un robot detector de baliza Nuestro rnicrobot “Trasto” cn este caso debed detcc~ar una señal infi-arroja modulada a 38 kHz que emitc uti circuito como el de la figura 32-20 (capitulo 32) y dirigirse hacia ella.

b

M1 DERECM

M2 IZQUIERDA

R1

R*

O

loa

IW

5v

r

RESEi

S

: T1

IC 1 PICIBFMA

OUT+

tN2

40111

,

C

5v

5v

5v

5V

33.7.4 Pro

SENSOR

SENSOR IZQUIEROO

Si se h, fácilmente el p~

DERELUH

– –

F i p r a 33-73 Esquema del i~iict-ubotTTCLTEO con lus sensor-es de i~frarrojo,~

; Programa de oonh ; una sena1 infmrroj

Para conseguirlo añadiremos eil el frontal de nuestro microbut dos sensores del tipo SFH5110-38 montados como detector de sefial infrarmja, [email protected] se indicaba en la figura 32-19, y que denominaremos ~ e n s o r ~ e r i c hyoScnsorIzquierdo, rcspcctivamcnk. El esquema completo es el que se muestra en la figura 33-23.

1 1

infrarroja

pirulo 32) y

La estrategia que vamos a seguir es la siguiente. Si los dos sensores detectan la señal de la baliza el rnicrobot dcbcrá desplazarse cn línea recta y por 10 tanto, las dos ruedas deberán de girar en sentido de avance. En caso contiarici se coiii~~izieba si sólo el ScnsorIzquierdo detecta la sefial infrarroja, en Caso afirmativo el niicrobot dehwá girar a la izquierda hasta que el SensorDerecha detecte la señal, por lo yiie la nieda derecha girará c m sentido de avance y la izquierda en sentido de retroceso. Por el coiitrario, si Sensorlzquierdo no detecta el haz infrarrojo modulado se conipnieha si lo hacc el SensorDerecho, en caso afirmativo el robot gira a la derecha. haciendo girar la rueda izquierda en sentido de avance y la derecha en sentido de retroceso, hasta que Sensorlzquierda detecte la señal infrarroja. Se repite el ciclo de fonna continua. La figura 33-24 aclara los movimientos que seguid cl microbot.

senwrlmuierda ~snsor~erscna

Sensorlzquierda SensorDerpcha

Figrrn 22-24 Estraregiu u s e ~ ~ p~im i i r Ikt~gnrn Id baliza

33.7.4 Programa de robot detector de baliza CENSOR IZQUIERDO

Si se han seguidu los razonamientos del apartado antetior se comprenderá fácilmente el programa Robot-Bal im-O 1.abm.

; Programa de contml para Micmbot TRASTO el mial detecta una baliza que genera

rojos

; una seRal infratmjii moduladaa 38 kHz.

;Los swiswes fipticosSFHSI 10 están situados en fa parte h t a l del microbot ; El saisor de la daecha eh2á cconmrln a RA2 y el &ensorde 1s lzquicrda a RA3. ; Cuardo el smsor SFHS 110 detecta luz infranoja inodulada, propiirciona un nivel bajo en su ;línea de sdida.

; El progrnma adopta la estrategia sguiente: ; – Si no se detecta la baliza por ningún semiir el niicrnhnt giw ri~mprea la dcrecnn. ; – Si los dos msores dztectln prtdora el microbot avanza Eacia adelante. ; – Si se detecta porbdora en el m s o r de la izquierda y no en el de ia derecha el lmicrobot gira a la izquierda hasta que los dos smsores detecten la baliza. ; : – S: sc detecta portadora en e [ sensor de la derecha y DO en el de la izq~ierdael microbot g~raa la d w h a basa quc 10s dos sensores detecten la baliza. ; I

ZC)NXVkUA[‘us ***X***************&***W******C***’U”L’*”‘****+**********************+*Q***Q*

#DEFINE SzrwrDzrccha #DEFINE SensorIzquierda

POKI’A,Z PORTA,3

; Sensor Derecho. ; Senwr Izquierdo.

ORG Inicio

bsf b6f

; Selecciona Banco 1 & regisbus. ;Estas lineas se coniigiran como enlmda.

bsf c lrf bcf

; Las líneas del Puerto B se configurancomo didas. ; Selecciona Banco O de registros.

m

El sct

Principal

SensorDerecha

btfsc gou brfsc

Senuo~lzquicrda

&Oto

GiroDmcha

mavlw goto

Ver-Izquierda brfvc gota

Ver-Izquierda

bilWOO11 1 1 ‘ AcrivaSalida

; i,Ha detectado sekí la h e c h a ? ; No mibe por la derecha. ;Si, Ltarnbitn xid pui la izquierda? ;No, solo sella1 por la derecha, gira a del-&a. ;Sí, recibe por los dos sensores. Sigue recto.

; Por ia derecha no r ~ j k,Y. por Is izquierda?

i

:Tampoco, ni por la derecha ni por la inquisirla.

i

Girohquierda

movlw

;Gira a la izquierda.

m

[email protected]

GiroDer~ha

moviw AdvaSalida movwf

iwo

m

;Gira a la derecha.

1nsti-u

LOS da Dispon La pila Dispr deshab O O

O

O

I

j:

:I

t

APENDICE A

I

CARACTER~STICASTÉCNICAS DEI, PIC16F84A

1

<: i="" c="" sde="" l="" wp_automatic_readability="338.42694360532">

1

i salidas.

i

1

j

m

1 1.

l

<:wmsc wp_automatic_readability="380.35574378807">

La arquitectura de la CPU es del tipo Haward. El set de irisiiiii;ciriiies

rieiic 335 instr-uccioncs de una wla paliibra. Todiis las iiistrucciiincs duran un ciclo máquina, excepto las dc salto que duran dos. Velocidad de opcracion: o D c 20 MHz, para la frecuencia del reloj de entrada. o DC – 200 ns, para la duncibn del ciclo inaquina. Frcctiericia rnáxitria dc funcior~irnientcide 4 MHz (PIClbF84A-04) 6 20 MHL (PIC L 6FK4A-201. Memoria de príqrama iipn Flash de 1024 pusiciuncs.

Menioria RAM dc datos

de 68 bytes. Meinoria EEPROM de datos dc 64 byfes. Instriiccioncs con una longitud dc 14 bits. Los datos ticiien

una longinid de 1 bytc (8 bits) Di.;pne de 15 registros de funciones especiales.

La pila tiene 8 nivelcs

de profundidad. Dispot~cde cuatro fuerires de iiiterrupcion, 1 s cuales pueden ser habilitadas O deshabilitadasindependientemente por sofrware: o Extenia por el pin RBOANT. U Por dcsbortlamientu del Timer

O. o Por cambio eri las liiieas PORTR o Por finalizacion de cscntiira de Iii memoria EEPROM de datos.

i

1

8

1

0I 1I

1

ENCAPS ULADO DIL-18

Figura A -1 Microcon~o/udorP K I 6FMA

CAR~CTER~STICAS DE LOS PERIFÉRICOS Disponz de 13 liricas de entrad$ salida con control individiial de dirccción. Alta capacidad dc corriente por terminal. Proporciona suficiente corriente para gobernar iin LED: o Consume 25 mA por pin cuando csta a nivel bdjo. o Proporciona 20 mii por pin cuando csbi n nivel alto. Dispone de un Tcrnporkador/Contador de S bits(TMRO) con división de frecuencia programable.

La memoria Flash de programas admite hasta 1.000 ciclos de borrado y escritura. La memoria EEPROM de datos admite hasta 1.001).000 de ciclos dc borrado y

escriblra.

Ciwantiza una retenciiin de datos para la mcmoria EEPROM de datos superior a los 40 años.

Se puedc programar en el circuito vía sene mediante dos pines, ICSP (In Circ.uil Serzul Progrunrii?in~) Puwer-On Re.wr (PO N), Po wer- C’p Timer (PWRT), Oscilla~urSturt- Up Titner (OSTI Dispone de un temporirador Watchdog {WDT) con su propio oscilador RC para un funcionamiento fiable. Priltec.cicin de código dc proparno mcdinntc la activa~irjiide un bit de proteccihn. Mudo de bajo consumo SLEEP. Tipo dc oscilüdor seleccionable.

CARACTEI

Tensii (excep Tmcii

Tensic

/

APENDICI; A: C A R A C T F . R ~ S T I C ~ I S ‘ T É C ~ ‘ ~ CnEL ~ S PlclIiFX4A

I: RI-MA

567

-4RQUITECTURA INTERNA MEMORIA M DATOS (SRAMI

MEMORIA DE PROGRAMA CON 1024 POSICIONES

(FLASH) OOOhl

RA 1

PCL

RESET

-.

RA3 R.4

e 181hli & a

—-.J-,

DBh, 09h

C

EEDbTA

1.-

– … EEAOR

EECONI

EECON2

8%

u

1.

riente para

:ntiua. borrado y

DATOS EEPROM

/*t.-. -1 –

VSS

BUS D E I

DATOS

3€n

r—

CPU

j

BUS DE INSTRUCCIONES

r

1 PILA

— I NIVEL 5

p – , k – ” ; ” ” ” ~ ~ l M1 +FEEy 1 —N

MCLR

mior a los (ln Circtdi~

Fipnr .4-2 Arquitectura ipr/~

CARACTER~ STICAS ELECITRICASMÁX I MAS ADMISIBLES Tensirjn de cualquier pin respecto de Vss (excepto V,,, MCLR y RA4) …… …………….. …………………….. -0.3 V a (VD,+-0. 3 V) Tcnsion en VD, rcspccto dc Vs, ………………………………………………….. -0,3 a +7,5V

Tcnsiiin en RA4 rcspectn de Vss ……………………………………………… -O,> a +X,5V . . ………………………………… 8 mW Máxirna corriente por c l pin Vss ……………………………………………………….. 1 50 mA .. Maxima corriente por el pin VDD …………………………… . . . . ………….. 1 m.4 Máxima corriente dc salida e i i halo por cualquier pin 1IU………………………. 25 mA Mixima corriente de salida zti alto por cualquier pin I/O ………………………. 20 i r i A Máxima corrieiite de salida eti bajo por el conjtinto dcl Puerto A. …………. ,.S0 inA Máxima corrienic de sal ida en alto por el conjunto dcl Puerto A …………….. 50 rnA Maxima corrietiie dc salida en baio por el conjunto dcl Piiertri 8 ………….. 1 50 mA Máxiinn corriente dc salida en alto por cl conjunto dcl Puerto A-………….. 1 00 mA . . . Potencia de disipaciiin tnkl ……………….

El PIClt

instrucciones. E chdigo de o p e instrucciones de la Tabla B-l.

La nomen Eii las in O

Si

I

W.

o Si i En las in del bit d siempre t Eii las ir literal qu

Las 35 in: RISC, que no so1 instrucciones cd

i

Las insti tiempo de de salto, ( Las inst utilizar ci

APENDICE B

REPERTORIO DE INSTRUCCIONES

El PIC16FR4 csti compuesto por una LPU de tipo RlSC con un jucgo de 35 instruccicincs. En los 14 bits que forman las instnicciones máquina del PTC se incluyen el código de operacibn propiamente h c h u y los o p e d o s , en caso de que haya. Las 35 insmiccionzs de quc consta cste microconlrolador son las que se muestran clasificadas en la Tabla B- t. La ntimenclntiira qiie ritiliziin estas instrucciones cs la si~iicnte:

En las instrucciones la letra f representa un registro y d representa el destino: o Si d es “O” el resultado dc la operación se sitúa en el registro de trabajo W.

Si d es “1” el resultado se sitia en cl misino registro f.

Eii las iiismiccic!nzs que manejan bits. b representa en binario la posición (0.7) del bit deseado dentro del byte, C representa el byte o registro. El bit O es sietripre el bit de tnenor peso. En las instrucciunes con literales y de control Ií reprzsenia una constante o literal que según Ios casos puede ser de 8 u 1 1 bits. ci

Las 35 instrucciones del PIC16FX4 cumplen las caracteristicas de un proccsador RiSC, que no sOlo supone tener iui juego de instnicciones reducido sino que, además, sus instrucciona cuniplen las siguientes caracteristicas: Las instrucciones son simples y rápidas. Todas las instnicciones tienen un tiempo de ejecución de un ciclo máqiiina (4 ciclos de reloj) a excepción de las dc salto, que tienen un tiempo de ejecuci6n de 2 ciclos máquina. Las instrucciones son ortogonales. Casi todas las instrucciones pueden utilizar cualquier operai-ido.

MICKOCONTROLADOR PIC16FIW DESARROLLO DE PROY ECl’CiS

570

m

D RA-MA

La longitud de las instrucciones y los datos es constante. Tcidns las instrucciones tienen una longitiid dc 14 bits y los datos una longitud dc 1 byte.

1f

T

Dirección del registro ( de 0x00 hristu Ox7F) Posición de un bit dentro d l i s t r o dc Y bits Liteial, dato constante o etiqueta que puede ser”0″ o ” 1 ” si d = O, el resultado sc guarda en W, si d resultado de la operación se guarda en el registro f. El valor por dcfccto es

) 1

[I

(1 3

1 Bit de Power Down 1 Opcional

1

Contenido Sentido clc la transferencia Campo del bit de un registro

I

SET DE INTRUCCIONES DEL PlCIóFS4

Instrucciones de CARGA

clrf clnv movf movlw movwf

1

f

f,d k

f

00 3

[ad_2]

Trên là bài viết liên quan về Microcontrolador Pic16f84 Desarrollo De Proyectos – Enrique Palacios, Hy vọng qua bài viết này bạn sẽ có kiến thức về Chim tốt hơn

Viết một bình luận