639

Click here to load reader

Microcontrolador pic16 f84, desarrollo de proyectos ao

Embed Size (px)

DESCRIPTION

pic 16f84 desarrollo de aplicaciones

Citation preview

  • 1. Microcontrolador PICI 6F84Desarrollo de proyectos

2. 11 hMicrocontrolador PICI 6F84Desarrollo de proyectos Enrique Palacios Municio Fernando Remiro DominguezLucas J. Lopez PerezAlfaomega4+)Ra-Ma 3. Microcontrolador PIC lbFB4. Desarrollo de proyectosQ Enriquc Palacios Muiiicici. Feraando Kemi ro Dominguezy Lucas J . L6pez PrezISBN 84-7897-600-0, edicidn original publicada por RA-MA Editorial,reservxicis 0 RA-MA EditorialMADRID. Erpaia. Derc~hosMARCAS COMERCIALES: RA-MA ha intentado alargo de este librodistinguir las marcas registradas de los trminos descriptivos, sigiiiendo elesiilu de mayusculas que utiliza el Fabricanre, sin introci6n de infringir lamarca y slo en beneficio del propietariode la misma.Primera edicin: Aliaoiiiega Grupo Editar, Mkxico. agosto 20038 2004 ALFAOhlEGA GRUPO EDITOR, S.A. de C.V.Pithgoras 1139, Cul. Del Valle, 03 100 Mxico, D.F.Miembro de Id Camara Nacional de In Ind~striaEditorialMexicanaRegistiw No. 23 17ISBN 970-15-1033-XDerechos reservados.Esta obra es ptopied.d intelectual de su autor y 10s derechas de publicacicinen lengua espaola han sido legalmente transferidus a editor. Prohibida su lrepri~duccin parcial o total por cualquier medio sin permiso por escrito delpropietario de los derechus dzl copyright.NOTA IMPORTANTE - - -La inforniacirrn cnnten ida en esta oliri tienc un iiii ex~lu~ivamentediddcticoy. por lo tanto, no esti previsto sil aprovcchamirnio 3 nivtl profcsirinai ti in-dustrial. Las indicaciones tcnicas y programas incluidos. han cidn elahnra-dos COI] gran cuidado por el aur(ir y reproducidas bajo esirictas normas decontrol. ALFAOMEGA GRUPO EDITOR. S.A. i1eC.V. no ser jurdicamon-te responsabte por: errores u nmi176RBOIIMT 7 RBIUA2RB2- RA3W4TTDCKI RB3 RB41011 R5512RB6IN7 OUT7 rq RB7 13 8 GND COM.gto a la base delBOBINAS:ontactos, puedc -:lectricamentc la de los contactosoportar ms de 5 F i p r u 2-8 Circuito ttryico de gobierno de varios reI&scon ULN2003 11. -16 MICROCOWROLAWR PIC 1 hFR4 T)LSARROLLO DE IKUY CCTOS - R 4-MA -I RA-M) 2.5.2 Control con rel miniatura en cpsula DILde la Para cargas de hasta 10 W es riiejor utilizar reles de lminas encapsulndos en DIL,alta fque necesitan una menor inta~sidridde activacibn, aunquc sus contactos no perniitziidar 11activar cargas grandes. La f i p r a 2-9 muestra un ejemplo de apjicacitin donde s61o esnecesario un tratisistur para gobernar et reli. Normalmentt estos rels llcvanincorporados dentro de la cipsula el diodo de proteccin, como se ~iuedeapreciar en lafototrfigura, para 10s modelos que tio lo llevan es necesario conectarlo en el circuito.5vALlMENTAClON CARGA l--- CARGA R1 u1 10kBC547CARGA hiiAxiMA (500 mA. 1bW) FiguiF i p r u 2-9 Gobierno de p~qrtriln~cargas u trai.L.rd~ un rd&de lminas en cu~)sulu DILhar i2.5.3 Control mediante fototriac~ U Z .1ila teEn el circuito de I:i figura 2-10 los contactos del rel son siistitiiidos por un prctifciiotriac, cuyo funcionamiento es similar al dc un iiltemiptor controlado por luz. el tires ne El necesario aislamiento entre cl microcontrolador y la carga de 230V se hace cona;mediante w o p t ~ ~ o p l a d o r iMOC3041, qiic es iiii circuito integ~dc) incluye iin LED queque controla al fototriac. Este dispositivo esti rspccialmente diseado para usarse coinointerface tic sistemas 1gic0s con equipos que tienen que alimentarse coi1 los 230 V de la apag:red clectiiila. Sus carac tensti cas mas significativas son: conil Incorpora un pequeo y eConirriicoencapsulado DIP 6 .corrii Su tensibn de aislamiento de 7500 V garantiza un perfecto aislamiento entre la red elctrica y el microcontrolador. Es capaz de proporcionar hasta 1 O0 niA, que le permitira alimentargarar 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. de la cjrcu Cuenta con un detector de paso por cero inlenlo, lo que permite economizar de rt un nmero iio despreciable de componentes externos. c ircu El cc 12. ~ciamnimaPara conseguir cstas potencias, el triar: debe ir montado sobre un buen radiador derna es dccalor, de forma que el semiconductor cc refigere adecuadamente. A la llora de poner el;mdo en el radiador hay que sefialas qzie la parte rnetiilica del componente suele conectarse al. Por tanto. 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.I- 2.6 ZUMBADORic, donde laEn muchos proyectos es necesario indicar mediante tina sefial audible la ocurrencia r a! de unde un evento. Para ello normalmente se utiliza un zurnbsidor piezoelctrico miniatura;u vez, esta corno cl de la figura 2-12.rolar cargasUn 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 s indica cn la figiim 2-13.e SUM&ADOR EMITE SONIDO CON SALIDA A NIVEL B A l Otc entrc enolnac para ZUMBADOR EMITE SONIDO CON SALIDA A NIVEL ALTO137 (8 A) 822uctivas ei Fisura 2-13 Conexihn de irn aimbador ininiafirt-a a un microconfroJador 13. 22 fICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS~RA-M En microcontr: mltiples v tienda de ci por s mism 1 - Ordenador Personal Grabador E> Programador (TEPO-SE o compatible JDM) Fjxlrra 3-1 Coyf;guraciinpar[/p b o r micrmot iri-orudorps con medios redz4cilros3 2 GRABADORES . El grabador o programador es el equipo fsico dondc se procede a p h a r lamemoria del rnicrocantrolador con l% instnicciones del prapma de control. Tiene un azkalo libre sobre el quc se inserta el circuito integrado a grabas, el cual debe orientarse uadarnente siguiendo la seal de la capsula del chip. Hay multitud d.c grabad ores:rciaEes enmercado que se pueden adquirir en cualquier tienda de clec trbnica. e1 Microchip o k c e el gmbador PICSTART PLUS, de muy ficit utilizacin y ihzada fiabilidad respaldada por el fabricante (fipra3-2). En lasquc apenas rmiicho rncnumuy iiitcrcsaique estos g~purtAtiles soh 14. En ltiternct pueden localizarse mltiples grabadores de bajo c o n para microcontroladores PIC. Uno de 10s ms 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 1ntarlo por si mismo, cn c1 apkndjce F se proporciona informacin para el1-.1--amadorIible JDM)El programador JDM y a l s n a s de sus versionsla Wcb2- e grabar la disertdor Jens Dyekjm, w . i d r n . h o m ~ a ~ c . d k / n e w ~ i c .:rol. Tiene unzbc orientarsefe grabadores-ir(inica. ES EXTERNA AL CfRCUtTO3-4 decornpnfildeJBM bO.cico corFig~rcr Esqzt~rna 110pl1~1dor Eir las figums 3-4 y 3-5 se describen dos versiones bsicas de este pmprnador qite apenas reqiiicrc cornponcntes. Evidentemente P fiabilidad de este programador esa 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~acicin esv que estos p.abadores tan hrisicos no funcionan cor~ectamenteen algunos ordcnnc pottfitjlcs scihre todo. Ademb, iina conexin incorrecta puede daar cl ordenador. 15. 1 24 MICROCONTROLAWR PICI 6W. DF5AR ROLLO DE PROYECTOSm~4-WA - r M-h~lD1 TU n7lWi4 funcionamiel u i i g cstcfl7rde jq)mg.si:~ En 15 x la iiltima ver:I L y y- E5 -ayudar a todc ~Kprofundo dc DBs m programa .C-- 3.4 G R 1.fiE.I L . t C Avriromri lio Fimrvn -, -, YYYL,CI.*" M b ni.nhn/Lr i r n h. L.I.C.C.", l l r l rnnind;hlo IT) fiA hr;r;rn IUY.I,I&, YUil.U,lc;i?n1;montn~Mnoviornrr -.Lr"I...IL.. r p con el dato AiizeiDcsp el resultaido de Ia 1 (Move W lo 1 . )Carga el contenido del registro W al registro f. Nirign flag, delregistro de estado es afectado.IQmplo:Antes inshcc in:Despuks iinstniccihn:rnovwf PORTB(PORTR) = i,?(PORTB) = 0x4: (W) -9 (PORmI 21. y seleccionar Orrprtt ro File y salvar cl fichero de la forma ya conocida en el entornoindows.h i t o general de1:contenido de la 5TbTL5 PCL. .-.. 3 de estadoAunque no es una ventana de visualizaci6n propiamente dicha, la linea de estadoproporciona infomciiin muy iitil sobre la situacibn actual del microcontrolador. Se ubica1m la pane inf&or de la pantalla y ofrece infomnacion en todo momento del estado de Ia-------simular1n.i..."."O.,Es especialmente til la infamacin sobre el contenido del contador de progama.del registro de trabajo W.Tambin indica el valor de las flags de STATUS. Si la letra est Im rnaqsculas indica que ese flag vale "1 " y, si es miniicc~alas "O". Asi en el ejemplovale Ide la flgtn 7-13, Z =O, DC =1 y C=E.---+WFAQ?u .. -- :~~~JTARTa ; l~ S .. -. -; ....... - - ~ W m P 7 a h 3 - . w :- .2 duros . ......--+---L . Fipcrn 7-iJ , A ~ ,wc- G , ~ L ~ Lcon la infamacin del PC, W yJrapP~ SIn , ~ ~ I~) delhre simb6licci quede usiiario.7,6 SIMULACI~N BASICAT m el proceso dc ensamblado sc p d e a la simiilacibn del programa, Mientrasw ejecuta la simutacibn del programa es interesante visualizar el contenido de lastc supervisar losventanas explicadas antes y comprobar el efecto m cada una de ellas.iso concreto. Parawdro de dililogoEs conveniente antes dc nada, comprobar que est cargado correctamente elee pulsando sobre IPLAB SIM, tal como se explicb en L figura 7-4. a Los cinco comandos m& importantes p m la simulaci6n se localizan dentro delrla m posteriores men Debbuger y se muestran en la f_ 7-24. i m II 1 ., 22. 92 MICROCONTROLADOR PIC IFR4. DERROLLO DE PROYECTOScA-MA m 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 rpida 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 n pulsando la tecla F9, tambitn al pulsar So 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 instruccin. Es m& Eenro que el modo "Run" pero permite ver como van cambiando los registros. Tal vez sea d modo de ejecucin ms util y rccomendablc. Se entn en este modo seleccionando D s h i r ~ ~ >re Aninia tambin 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 fci 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. Tnmbjzi pulsando sobre el icono correspondiente de la barra de herramientas. * Resef. Equivale a un reset por activacin del pin MCLR. En este modo sc Pan1 entra selcccionarido Dehiigger > Re-re! o pulsando la tecla F6. Tambin si seaemho tic pulsa sobre el icwo correspondiente de la barra de herramientas. Seleccionndonde Iia i 23. i la figura9-4 quet~t. . .-Esta dir fine una ( :to. Dondle quiera Ique icuentre, emblador :Ejemplo I :A continuacin se:]Ni?LED PORTBs conecta i: cstn Iineen ...bsfLEDBLOCK (Dflne n:D~P idbc tl Ranw O,lnes (genmlmentc~DFF icofbs: n .o: Rznm 1 .m; i1 -DFFD P(: El LER sc conccia 3marcada entre las ; ACCCW al Banco 1. ; Confrgum csla lnea como salida. ; hcccw : Banco O. i1 : Encicndi: diodo L elEsta directiva emula #DEFINE del ANSI C standard. Los simbolos definidos coneste mCtodo no estn disponibles Dara ser usados mr el MPLAB.anterior ejemplo).15. Si este valor no9.9 CONVERS ARIO NATURAL A BCD cuwrior al: de la si a lo largo delLa conversin de un numero expresado en binario natural a formato hcu es unaion de variables, d e las opcracianes ms 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 . I01 1 1 1100, para expresarlo en BCD hay que separas Fas centenas, decenas y unidadesdefinidaqudando: 0001 0010 0100. La figura 9-5 txplica cl:diagmma de flujo para resolver esta.4. Unconi~crsihn. programa ejemplo que lo irnplernenta. seria el descrito a continuaci9n yque s,e pttede comprobar sobre el circuito de Iri figura 9-6.***sinienzo los valores. Un nu m m hinario de 8 bits cs curivcnido 3 RCD. El erultadri se gl~qrrl e n m psicioncs aa RAM 4de datos.:dcmem~irins ilamadas Ccntcna~. Docenas y Lnirladcs A d m i s a l tiiial 1las unidades estarti en el., -1 h e ,--m -A; nihhl c bajo del repsmi W y las dcccnas cn cl nlbhlc alto. En Ins didas LEDs canectados al o de calida se visuaii7arn ! s dmenas y la* La; El mvalor que p:niuni:El procediniientr2 utilizado 1 ":ejempln quc trai; A.l*.s, .,.- 24. MICROCO~OLAWRPIC16F84.DESARROLLO DE PROYECTOSOWMA{Decenas)movlwsubwfNO, IH IncremcnS).btfi~;NO, m!NO. ... . . hcrt cenas).FotoNO,mi NO. lncmcnta (Uccenas).NO. resiNO. Incremonta (aecenas).NO,mi NO.Incremnta (Decmia~).NO, m NQ. Incrementa (Decenas).NO. ma lo cNO. Incrt:menta (Dc cmiaii).NO. reSra 10NO. Incrtmenta (Decenas).NO, Festa 10NO. lncrt:mcn ta (Decenas).NO,resr f n hln lnm..-. + I r % * r * n n r l . .M -,*v.iii~ibiiibiira (r,c bCil02,J.NO. m t Si. @ecenari)=O, y aldemb incrementa (Cenfew )NO, resta 10NO.Inemnenta (Decenas)s, se te Numero". r- 1lUDE !o C nnO ovlwhEn el siguiente ejempto se asimila f5cilmwite la utilidad de salto indexado..- IlCli4hardware utilizado s d el esquema de la figura 9-7..mt ovlwhl ,tn h. id: tmp11:matar un: tabla dc Ii verdad ma: i iancja dc teovlwhl;Por qjtmpto, la Iabla seri de 3 enmbs tal como Iitn A 1717 26. CM ~ U L O SALTOS 9: 135o 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;@orSi@&tf).1 O O ] 1 O O O O O;wgumidn4).1 O 1 1 O O O i 1 l;(CdgumcibnS)-1 1 O [ O 1 0 1 1 l;(Conftguracibn).1 1 1 1 i 1 i 1 1 l;(Wguracin7).;im enbndw C, B. A se mectai.mia las llneas del puerto A: RA2 C , M (B) y RAU {A). () 1 ;Lassalidasse~enenelpuertnB:;RBS(S5),lU34 (M), 3 (S3).RB2 (521, M (Sl) RBO (SO). M 1y;ZONADEDATOS * * * S H * * * l * %* * * * W* * * * S I * * * * * * * * * * * * 5 * 1 I I * L * I * * * * * * * * * * * * * * * h * * * * U * * * * *CONFIG CP-OFF & -riDT-QFF & -PWRTEEON & XT-OSC ESTP=16F84AINCLDE 416F84A.lNG;ZONADEC~D~GOS*********************Q"*L******~****#********S:*****~***++*********** ORGO ; El pmgrama conireriza en h direaibn 0. bsfSTATWSHO ; Acceso d Banco l . clrf TMSB: Las heas del hiato B se c o n f i p m u como saiida.movlwblOOO1 1 111 :Las 5 lneas det Puerto A se configuran como eukada. mowf TRISA bcfSTATUS,RPO;Acceso al Banco O.s que puedan ser movf PORTA,W;Leo el valor de las variables de e n e . i utilizxiiin de la andlwb00000t1i;Se queda c los a c bits de enaada. m e;igue sumando al ; Salta a la configuracibn &macla.en el registro de goto Conf1~0iiO gota Configuracion 1 goto Co~guracion2un registro base goto Corhgumcicin3que es el registro goto Conguraciod;fr. Al ejecutar lagoto ConfiguracionSI con la primera goto Cdguraciaa goto Configmcion7 rnovlw b0000101Ot ; Confipuracibn O.Ito indexado. El goto Activasalida; configuracibn l..CL*******I* movlwbOO1OOO1li :Cun-ih 2, movb b0000111~ ; C 0 n ~ i S 3.o gota ActvaSaWCdgumon4 27. 136 MICROCONTROLADOR PrC 1 bFM. DESARROLLO DE PRUY ECTOS F RA - MA mvIw El reg 8 0 un regC~i d mvlw Los biConf~iioti6puede mwh PC LA sotoCwfigmcion7 mvlwActivaSalida mwYf;V i d i z a por el pueFto de salida En las soluciones de los ejercicios facilitadas en el CD-ROM que acompaa a estelibro, se describe otra forma de implemmitacibn ms eficaz mediante el p r o v aindexado-O1 B.acai.El PCLlbits son transfetiznen por dcstiCuando !instnicciiin .ades as, cl salto eque el registroprueba de un sa ; P r o w a para cor ;Se debe comproba 9 ; ZONA DE DATO INCLUO LIST ;ZONA DE C ~ D Iparu comprnhur ios programas de tabla de ivrdac3 Figura 9-7 Cit.~liliioORG Inicio goto c h9.1 1 SALTO INDEXADO DESCONTROLADO Como ya se explicb en el tema 4, los 13 bits contenidos en el coniador de programaORG Principaly que direccionan la memoria de cdigo estan guardados en dos registros especficosniovlw(figura 9-8):addwf 28. i RA-VA CAP~TULO SUBRLITNAS DE RETARDO12: 173;ta iiistniccion tarda cnstal de cuarzo de Carga contador R..ContA can Carga contador R-ContB convalor inicial "K" valor inicial "M" Carga contador R-ConlA convalor inicial "K*Pequerio tiempo de esperaurridoDecrementa R-CoiitA:S resulta necesario;intervalospueden simple de algunasA). ESTRUCTURA DE UNA SUBRUTINA DE RETARDO CON UN LAZO SIMPLE.:0nseguir el retardoOecrementa R-ContBruccin es conocido:I registro R-Corrr.4,ibtenw el tiempo deijerite fragmento deB). ESTRUCTURA DE UNA SUBRUTINA DE la figura 12-4(A) se RETARDO CON DOS LAZOS ANIDADOS mquina.Figura 12-4 Esfruchci-ade Iw sub~4tjna~ r~~tnrdo d(9d valor de "6".Es fcil deducir que el valor deconstante "K" con el que se ha cargado la ~iiicialmente contador R-ContA vendr dado por la sigiiientc ecuacin, donde el tiempo el:cm (al saltar). viene expresado en ps:; miquina. Ziempo=5+4K K=stato.Si la temperatura n a d a es menor que , rrddwf Itt d m d a mcimde la carga, que puede ser un caiefactm. Si la bemperatura medida es Mewijchibliciwic nuiyor que la M a h , apaga la carga. DT "ES.; -Si se vuelve a pulsar "MODO", apaga la carga y pesa a funcionar FL como t e r r n h m . 6o 33. ,SI RA- MA 28:(:AP~K~LO B US DE l . r N ~L~NE.A 455 - A-M A ;As pues, en el circuito se distinguen ms m d o s de funcionamientoque se identifican ;mediante tres flag: ; A) Modo TemiostatotoOFF",donde funciona como termbniew normal sin temiostato. Sereconwe por e1 flag FTemostato-OFF. ;B)Mado "TennosMo-Ajuste", donde se ajusta la temperatura deseada cuando funcionecoma termostato. Se reconoce por el flag F-Termostato-Ajuste. ; C) Modo "Tmmtatc-ON", donde funciona como temrrnetro niirrnal con tmrnosraw.Sereconoce 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 priixma vez que se encienda.CONFIG -0-OFF & -WDT-OFF & _PWRTE-ON & -_XT-OSCLISTP= 16F84AMCLUDE XP I GF84A.iNC>; Guarda 10s incrementos cada 50 m . s;Guarda 10s flags para establmer los; m&s de trabaja ; Corresponde a la direccin O da la zona ; EEPROM de datos. Aqui se va a guardar e1J3CARGA: la temperatura deseada. En principio24 "C.i5WN #DEFIN ESalidaTemostato PORTl3,I : Cargd controlada por el termostato. #DEFINE ZumbadorPORTJ3,2 ; Aqui se conecta el zumbador. #DEFINEMvdoPulsador PORTB,7; Los pulsadms se conectan a estos #DEFINEIncmenta~pulsadorPORTB,6; pines del puwo B. #DEFINEF-Termostato-ONFlapMdos.2 ; FIags utilimdos cn el ajuste de la @DEFINEF-Temio~tato~Aji~teFlagsMdos, 1; temperahira del temiostato. #DEFINE: F-Termostato-OFF FlagsModos,O TMROCargaSOms EQU -d195 ;P m conseguir intemipcin cada 50 m. cargaseQU df4O ; k e r i d a 2s = 40 x 50ms = 2000ms. 34. 7456 MCKOCONTROLADUR PIC16F84. DESARROI-LO DE PROYECTOS%K ~ M A CR4.WMensajeTemmtato-ONc h DT "Termostato: ",OxOB callMt~l~ajeTermnstato~Ajuste illoy DT "Tenqm. deseada",QiiBOmvM e n s ~ w m t i m mov DT",OxOOT ;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 nlIniciodU=DU=D~iza i dSTAEUSW mwhu bW111;Aeacalerde255~d~Oyhab~3ita m 0 4rnN-REG ;~kadc~I~delaifatoB bsflddomwm ;s%cdpmacomaataada bsfL- bcfWTcm#W;Se ~ c o m o ~ . bcfzuulhbx BefSTAWSJUW caii LCDCD~l ; S e ~ i t & a l ~ i & h ~ ~ mwlw Mensajehrblicie d iLCD-MensajeFipru 2 C& DS1azo-~nicia~iza ;~omieripla~0nwnde1term6metroyporie cal1 ModDTemomt~~OFF ; &te n a d a de f u n e i d m . ;Su&"Ser movlwTMRDLarga50ms; Carga el TMRO en comp1emento a 2.9 mwwf m 0; a t qa h m ca i e a dw Carga2s ;Y elregistronryo~t~wntadlos2s. movwfRegistroSOms servicio^ 35. RA-hL4-CAPITL~LUBUS DE ~ 18: N LjNEA 457Ac h , Lee h pica611QxOOde m a m i EEPROM de datos~cdl EEPRW-LeeDsto ;donde se guarda k t e m p e r a t u r a e d e h61m-mm o d -T;v e z q w 9 e ~ .movh blOIU1W ; Activa inmmp5bn del -0(m), m b i o depormovwfDT UTC N;ln dd Puerto B (R3B)y l general (GIE)iwa; 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 la inimumi6n "deep7 ~ o ddene el Timer O.ml p agato PriociplQ"Serviciolnterrupcion"pasado 50 ms?III I"Termomsim" Lee terrnbmetro yactualiza el termoslalo.Han interrumpido laspulsadores? -11"CarnbiarModo":cambia el mDdo1 L-.-. (NO 1de funcionamiento. E& puisaso "INCREMENTAWJ "IncrementarTempOeseada": Ajusta la ternpsralura deseada.JLimpia flags de reconocimiento delas interrupciones.Retorno de la intempcionFigura 28- 10 Diagramu drqfliqo la subrutina de atencin a deintewlkpciones 36. 458 MICROCONTROLAWR PlC 16F84. DES4RROLLO DE PROY E C M S 2 R4-w t RA-~,4 btfsc INTCON ,TUF; Si es una interrupcion producida por el Timer OcallTennometro ;lee el termmetm y actualiza termostato.I btfss NCON,RB[F; Si es una intemipcion RBI lee los pulsadores.;Esta subrutina lee y pob Fin[nternipcion ;debido a la peticiba btfcs M d o P u lsador; &st presionado el.pulsador de "AJUSTE"?; temporizaciinide 2 al CambiarMdo; S. Ajusta la temperatura deseada en el termostato. btfss IncrementarPulsador;Pulsado "INCREMENTAR"? ;TarnbiCn acta so& cal1IncrcmcntarTempDcseada;Si, pasa a incrementar la temperatura deseada.FininterrupcionTermomebu bcf MTCON,RBF; Limpia los flngs de remnocimiento.movlwbcf iNTCON,TOIFm 0 4ret fiedecfsz,goto1movlw 4mowf 1cau1 Prepara para que se produzca lacall 1 prxima interrupcin dentro de 50 ms cal -d i 1m "DS1820-Inicializa": Coniienza laconversion para la siguiente"Termostato"Visualiza la temp - NO "ModoTermostato-ON".se desea ajustar apaga la carga. Temper. c - SI"ModoTemostato-ON", compara la temperatura medidacon la deseada y actua encoiisecuencia activando oapagando la carga II I1 " ~ i s u a ~ ieii el forniatoza~II3 Return Figura 28- 11 Diagrama de flujo de la subrutina Te~mometro 37. Q RA-MA c . ~ P ~ W L O BUS DE UNA L28:~ 459 A - S&mth "T-om-" -----------.!*i;Esta subnitina lee y visualiza el tennbmeko cada 2 segundos aproximadamente. Se ejecutaI! :debido a la peticih de interrupcin dei Tmer O, c& 50 m.Para wnseguir una m; 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. decfsz ; Decrcinenta el cmt~dor. goto :No lian pasado 2 segundos, por canto sale movliv : Repow este contador nuevamente. monvt cal l; Lee la temperablra. cau;Comienza conversinpara la siguiente 1ectm. cal1 . Actha sobre el termostab. cal1 ; Como e s n subniha se caribe ri continuacin return ; se ahorra e s t a dos instniccionrs y a mh; tarnbien espacio en la pila. 0"Visualiza" en formato: se desea aiustar en formato: "~em~er. deseada"25OC " I Visualiza la temperalura medida y la deseada en formato: 1 Termostato: 25OC" 24.5% "Figura 28-12 Diagrama de$ujo de l subrutina I~isimlizaa 38. ; V i s u a z a d t ~ e a ~ f ~ p o s i b l e s :; A) Con el kmos@ hacth-ado, m& "Temmkto-OFP. Pm ejernpb:~ , ~ P pmua W)d "24.5% " (Segunda u). -; "VisdizaTermom ~enlaprimcra~se~zaunmemjepub-lic~ayenIai 9$SegUadsttneahoemparaturaaedrBa~tual.; B) Ajuste &1 termostato, modo Tmmebfa-A&e". PM e j 4 o : - ;En laprimeraha*Trroper.~"~~~ ;temperaturam&b "25% "(k@nalinea).9 Dondemlasc~~vidizala~attraqire~dcseaa~. ;Enldas:-; C) Con e l&va&, modoT m m - O WPor ejenrpQo: Tcmroststo: m" , wntm un#)iI*II 23.5% "f-dalmea).7- 1 ; ~enlaprimemlinease~la~~qiiesedfsaVidizaTemonmcaHmovlwcallVisuaiizeT~turmovlwd btf~ gm T e m m - wmovhv cal11i ti; EnmdaxT&(e) - temprr#ra ajustada en Imi suhutha bmmmtar.tI Visuai~Term~atato~Ajustei, cdlLCDLineal;Se sihia al principio di l primera ha a!mvkMensajeTemstato-Ajuste ; Visualiza men6s.e en la primera hm. call LCD-Mensaje movlw-6 ; Se coloca para centtarvisudhcih m ia cal1 LCD-PosicionLinea2 ; segunda Uaen.VWT- . . - . . .-, .1. . M.-T wW. , . . , -. .; . . .-.. - . , .. 39. ; Se s i h al principio de h primera ha. 40. 162 M J C R C ~ C O h T R O L ~PtC 16FM. R DESARROLLO DE PRCiYECTOSO R 4-MA decisiones sobre h salida.-@S 1820_S&io), registro cori el aig1-10 de la t - medida. Si es cero b tmpmm es mtr y todos sw bits son "1 ",es negativa ii a;Salida- Su funcionamiento:9 -Estando apgada, si la temperatura medida k i e n d e por debajo de latemperatura deseada la salida se activar.I- Estando encendida, si la t m m medida supera la dcseada lasalida ce apagar.- Si las temperahiras medidas y deswida son iguales se qu& en estadoanterior,tanto si est encendida w m o si m apagada.- M temperatura negativas la salida se debe aictivar siempre.Temostam btfssFTemostato~ON; Si el t m o ~ t no est activado salta aogotoApagacarga ; apagar la carga.Msc DS 1 82OLTemperaturaSipo.7 ; Con bmperatum negativas pasa a activargotoEnciendeCarga;la carga.btfvv SalidaTmvstato ;Comprueba el estado actual de h salida paragotdSalidaEstabaApagada; actuar en cnnsecuencia.Sal idaEstaMctivada; Pava a coinprcibar si tiene que apagar la carga.rnovf DS 1 8 20-Temperatura. WsubwfTeniperdrurdDeseadn,W: (W)=(TemperaturtiDcslada)-(DS I820-Tanpe~tura).bikSTATUS,C ; ~(Teniperahml3escada)QDS1820_Ternperanira)?goto FinTmostato:Si, por tanto, lo deja encendido y sale.cal1 Pitido ; Pitido cada vez que conmuta la carga.ApagrtCargabcf SalidaTcrtiiostato; Apaga la salida y sale.gotoFinTwmostatoSalidaEutabaApagada ; Pam a comprobar si tiene qiie encender la cargarnovf TmperatmDesctul&Wsubwf DS 1820-TempcraturqW: w)=(DS 182O-Teinpera~)1Tempm~eseariii).btfsc STATUS,C;@S 182~Teinpcraturar(TemperaturaDeseada)?gotaFinTermostato ;Si,la deja apagada y sale.Enciendecargacal1Pitido ;Pitido c& vez que activa la carga.bsf SalidaTcmostatoFinTemostatoRetumSubm- "Camb;arM&" v "M&Tm ustatri -O F P; Subrutina dc atencin a la intcmipcion pducida por e pulsador "MODO" que canibia el. m1 &:As pues, el 1;de funcionamiento.Cada vcz que pulsa pasa por los modos "Tennostato_Ajusie","Temio~tato~ON, ; Euncionarnie; "Termostatc-OFF"y vuelta repetir.; - (FlagsMd ; - (F!apMod;El ajusic de la temperatura deseada en el termostato se logra mediante dos pulsadores: "MODO" ;- (Flags&ld;e "1NCREMENTARU o n d a s a pines del Puerto B.c ; Pueden dan; Al principio aparecm s61o el tcrmbmetro y el termostato estar desactivado:modo ; -Qu; "Termoritato-0Wt(fl; 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: ;- *TiP 41. B R A-MAc . ~ P ~ 28 L ~ DE UNA LMEA463 U BCrSI"PitidoCorto"en el zumbador. - S I esta en "ModoTerrnostato-OFF"pasa a "ModoTermostato-Ajuste". - Si es& en "MadoTermostato~Ajucte"paca a "ModoTermostato-ON".- Pasa a "ModoTemostato-OFF". ll"LCD-Borra": Borra la pantalla."Visualiza": Segun el formato decada modo. 11 1- Espera deje de pulsar.lc3 Return; A) Modo "TermostatqOFF", donde funciona como tmnrnetra normal sin termostato. Se reconoce por el flag F-Temosiato-OFF, que es el bit O del ~ g i s f t nFlagsMhs.; B) Modo " T ~ r m o s t a t ~ A je, ~donde sc ajusta la ternperahira dewda cuando funcioneu t como termostato. Se reconoce por el flag F-Tmostam-Ajuste, que es el bit 1 del registro FlagsMdou.; C) Modo "TemostatqON, &nd< tiuiciona como termmetro normal y, a d e d , como termostato. Se m o n m por rl tliie F-Termostato-ON, quc es el bit 2 del registro FlagsModos.> ; As pues, el contenido del regism (Flas~Md INCLVDE JNCLUaE SC7D_4BlT2INC> INCLCTDE INCLDE ~~trol continua que giran en im Uriico sentido, suponiendo que lri Vinh = 5 V :al EN2 m El motor M 1 sc pone en marcha a1 poner 3 niwl bajo la cntnda de control A y se~ndientesdetiene con uii nivel alto de entrada.:s.El nintor hI2 se pone eri marcha al poner a nivel alto la etikada dc control B y qedeticnc 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.Tuhia 29-2 Modo de,func.ionumit!n~o r.ir.c-zrto de lu$gira 29-6 (I(/I?ecto delEs indisperisable conecta los diodos D 1 y D2 en paralelo con los devanados de los tnotorcs tal como muestra la figura, como proteccin ficnte 3 los picos de fuerzacorrientecontraelectromotnz producidos por la carga itiductiva de la bobina en el momento dc la conmutacin. 49. 472 ~ C R O C O ~ O LPIC1t6F8-4.DESARROLLO DE PROlTCTOS~ tORA-MA29.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 esti 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 proteccin se pueden cotiectar segun se muestra en la figura 29-8. Para (MotorDC-01 .amarcha del moLa posicin dedepende de lamotor los giro!en la figura 29-Figura 29-8 Conexin de diodos de proteccin d circuito de 1aJ;guro29-7 La Tabla 29-3 muestra el modo de funcionamiento del circuito. 50. ORA-M4 CAPT~ZO29: MOTORES DE CORRIENTE CXIhTWUA 173del motor:or gira en un. el sentido dei. I ,S,dc.1 Tobh 29-3 Modo de~firncionnmiepriv cirrui io d~ Iu.fip4rrr 29- 7$ -29.5 CONEXINDE MOTOR C.C. Y PICl6F84 LIfigwa 79-9 iiiueslra una conzxih tipica de un motor de corriente continua a rinmicrocontrolador PIC16F84A a traves de un dnver L293 B. La tensin aplicada al pin Vses la de alir~ientacihn motor, en este ejemplo se utiliza un motor de 12 V.del1 Figuru 29-9 Con PO/ de motores c.c con el dnver L2933 y el P1CI 6FMA :libIPara comprobar su funcionamiento se puede cargar el prograniaMcltornC-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 posicin 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 delI motor los giros serrin en sentido contrario. El organigrama de este programa se muestraen h figura 29- 10.rra 29-7i 51. 474 MICRCKONTROLADOR PlC l hF4 DES .ARRULLO DE PROYECTOS"MotorDC-0 1 .asrnmConfigura lineas deEntrada y Salida.Gira a la DERECHA: Motor PARADO: RB4=1, R B I = l , RBO=DFi_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 10) movwfCiclos-OFF; ~O-(PORTA)--~~~C~S-OW). movf GuardaEnwada,W movwfCiclos-ON ;Carga RA3:RAO en (Ciclos-ON).Motor-ONmoviw btOM)lOO10 ; Habilita l s drivers y un sentido de g h .o movd PORTB caURetardo-lms decfsi Ciclos_ON,F ; Si (Ciclos-ON)=O salta a Motor-OFF. gota Moto-0N-t-2Motor-OFF clrf PORT3 ; Inhabilita los drivers. Motor parado. cau~ o 0 l m s decfsz Ciclos-OFF,F;Si (Ciclos-OFF)=O salta a Principal. @m MotorLOFF+l g* FinDC-CemPotCiento clrf PORTB ; Inhabilita los dnvers. Motor p&. gotaFin K-1M)PorCiento movlwb0001001Ot ; BabiIita los drivers y un sentido de giro.movwfPORTBFin gotoPnncipd La generacin de la onda cuadrada PWM tambien se puede realizar medianteinterrupciones por desbordamiento del Timer O, tal como sc cxplico cn un cjcrcicio delcapitulo 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; l s iimiccionrs "bsf y "bcf. aCBLOCK O WxCicloTrabajo ; Ciclo de habajo d e d . 56. b Rn-MA CAP~TULO MOTORES DE CORRIEKTE C:CNlT?JUh 29:474 GuardaEntradaTirnd-ContadorA; Contdor auxiliar.ENIXTMRO-Cqa EQU4745; Valor obtenido expcrimentahente con la ventana ; Stopwatch para un tiempo de 1 ms.MaxirnaEnrrada EQU.10#DEFINE SalidaSmtidoO PORTB,O; Salidasdeterminan el sentido de giro.#DEFiNE SalidaSemidol PORTl3,l#DEFINE %lidaMarcRa WRTB,4;Salida de puesta 1 0.amovf GuardaEntrada.Wmmwf CiclaTraba~amoviwb1 10000iJ0 57. 480 MICROCONTROLADOR PIC 16F84.DESARROLLO DE PRUY LCTUS O M-MA mm-f -N; A u t h inferrupcibnTOT y la -1 (GIE). goto FinDC-CeroPurCientobcfSalidaMarcba: Pwe l salida siempre en bajo. a gotoMiabilitaInternrpciunm-1OOPorCientobsf SaLdaMArcha;Pone La salida siempre en alto.lnhabilitalntemrpcionclrfINTCON ;W i t a iiitffnrpcionm.Fin gotohincipal Subnitina " T k e d Intemipcicm"- -- -- 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--WM-STATUSENDCTimerO-intempcion1mw G d - Wo f;Guarda los valcm de ttnian W y STATUS en el No es ramapfSTATiJS,W; Programa P* &.conseguir un rrmovwE Guarda-STATUSde iin proyecto.bcfSTArnS,RW ;Garantiza que trabaja ai el Banco O.movlw TMRO-Cargamovwf T M R Odecfsz Thd-CmtadorAS ; h m m t a el contador.gota Fin_TimerO-iniemipcionkfsSalid&mha ; Testea d anterior estado de la salidaLos m01gmEstabaAlto dispositivos COIEstabaBajo papel de una irbsf S h W h a :Estaba bajo y lo pasa a alto.m&CicloTrabajo,W;Repone el contador nwammte crin el tiempo en disqiieteras demwwfTiind-ContadorA ; alto.obsenra que en goto Fin-TimerOerOIn~pcionpor el eje del mEstabaAltoSalidaMarcb;Bt&ad~ylopabrijo. Los motmovfCicloTrribajo,W; Repwe e1 c m t a h nuevmnite con el tiemposublw .lO; en bajo.comente continTUnaO-ContadmAmwwf hacerlo continuFin_TmerOerOh~ionrnicrocoiimladcswapf M-STATUS,W ; Restaurs regidros W y STATUS. dentro de unamovwf STATUS control de posswapf Guarda-WFswspf C ~ - W , Wrevoluciones pcbcf mc0NJwIF y carsa mecniibcf INTCON,TOiFpor nitodos serFetfie Un motc devanados. El i Cada pulso pro 58. c APTULO30MOTORES PASO A PASO No es raro qiie un aficionado a la electrnica desguace una vieja impresora paraconseguir un motor paso a paso y poder realizar alguna tarea de posicionamiento dentro trabajar con estos utiles motores.de un proyecto. En este capitulo se explica coi~io30.1 MOTORES PASO A PASO (PAP) Los motores paso a paso o PAP (Stepper ,Ilotorj son muy utilizados en losdispositivos controlados por sistemas digitales. Por ejemplo los mecanismos que arrastranpapel de una impresora, [os que mueven cl brazo de un rvbot o los que hacen gii-m lasdisqueteriis de un ordcnador dependen de motores PAP para su funcionamiento. Seobserva que en estas situaciones se requiere un conml pr~ciso la trayectoria a seguir depor el eje dcl motor Los rliotores PAP proporcionan iitu considerable ventaja sobre los motores decorriente continua o DC. El eje de un niotor PAP gira a intervalos reguiares en lugar dehacerlo continuamente, como ocurre con los motores de continua. Bajo el control de unrnicrocontrolador, los mvtures PAP puden ser usados para pasicionarnientos precisosdentro de una amplia gama de aplicaciones, incluyendo robtica, autornatizacin ycontrol de posicionanuentu. La velocidad de un motor de DC viene expresada enrevoluciones por minuto (yni) y es funcin de la tensicin aplicada, corriente por el motory carga mecnica del mismo. Un posicionamiento preciso de un motor DC no es posiblee . .por mhodos sencillos.j;jUri motor PAP gira en h i c i n de una secuencia de pulsos aplicados a sus idevanados. 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, ,/& I E 59. 482 MICROCDNTROLAWR PIC 16F84. DESARROLLO DE PROYECTOSO RA-MAdenominado paso, de ahi el nombre de motor "paso a paso". El resultado de esteinovniento, fijo y repetible, es un posicionamiento preciso y fiable. Los incrementos depasos de la rotacin del rotor se traducen en un alto grado de control de posici~namiento.Los incrementos de rotacin o pasos se miden en grados y es cl paramemofundamental de iin motor PM. Tarnbien se piicdc cspresar en nmeros de pasos porrcvolucion de 360 grados. Un motor paso a paso puede girar un nmero exacto de gradosen ambos sentidos. Los motores PAP se comercializan dentro dc una gran variedad de grados derotacin por paso, desde 0,72"a 22.5". correspondientes a 500 y 16 pasos por revolucin,respectivamente (efectivamente, 360;0,72" = 500 y 360/22,5"= 16). El motor PAP mscomerc~alimdo el de 7,5" por paso o 48 pasos por revolucin. esEl principal problema que presentan los motores PAP es su limitada poteiicia. Sinembargo, este problema esti siendo resuclto por los iiuevos diseos, con los que se halogrado potencias superiores a 1 CV.En este capitulo se va a explicar como realizar el control de niotores P.4P medianteun microcontrolador PIC16F84, pero antcs liay que examinar sus pnticipios defuncionamiento.30.2 PRINCIPIO DE FUNCIONAMIENTOAn basados en el mismo fcnhmeno que el principio dc funcionamiento de losmotores de corriente continila, los niotores paso a paso son mis sencilos, si cabe, quecualquier otro tipo dc motor elctrico. La figura 30-1 ilustra el modo dc funciunarnicrito de un motor PAP. Supotiernosque las bobinas L 1 como L2 poseen un ncleo de hicrro dulce capaz de iniaiitarsc cuandodichas bobinas scan rccotridas por una corricntc cl6cttica, esto es el denoil-iinado estatur.Por otra parte, el imn M puede girar libremente sobre el eje dc sujecin central, este es clrotor.Inicialmente, sin aplicar ninguna corrieilte a las bobinas (que tambin recibe11 elnombre de fases) y con el imri M cn im:i posiciiin cualquierao cl i d n liermanecer en Lnviriencrcposo si no se somete a una fuerza tihteiria.la situaci6n deinwriimos de n Si se hacc circular comenie por ambas fases, como se muestra en la figiiia 30- I (a),grados y se habse crcaran dos polos magnticos NORTE en la parte interna, bajo cuya influencia el imn grados.M se desplazah hasta L posicin indicada en dicha figura.a Si se mSi invertimos la polaridad de la corriente que circula por la bobina L 1 se obten&corrientes son 2la situacin magntica indicada cn la figura 30-1(b) y el imn M se vera desplazado hasta cada pulso aplic 60. lo de estela nueva posicin de equilibrio. Es decir, ha girado 90 grados en seiitido contrario a lasmenios de a p j a s de1 reloj.iarniento. parmetropasos porI de grados kmdos dervoliiribn,:P.4P mastencia. Sinyuc se ha II(a) Paso 111(b) Paso 2 medianteicipios dento dc los cabe, que;iipclincmosrse c L I : ~ ~ Olo estator.1, Aie es c.1reciben elmecer enlnvirticndo ahora la polaridlid de la corriente que atraviesa la bobina L2, sc llcga ala situacin de la fik~1t.a30-1 (c) habiendo girado el imn M otros 90 grados. Siinvertiiiim de nuevo cl sentido dc la corriente en la bobina Ll el iman M girara otros 90m 30-](a),grados y sc. habra abienido una revolucidn completa de dicho imn en cuatro pasos de 90:a el imni grados. Si se mantiene la secuencia de cxcilacion expuesta para L1 y L2 y dichas 61. 484 MICR0CONTROLALK)RP1C 16F84.DESARROLLO DE PROYECTOSo M-MA Analizando lo expuesto podeiiios decir que un motor paso a paso es un dispositivoelectromecnico que convierte impulsos elecbicos en un movimiento rotacional constantey finito dependiendo de las caractersticas propias del motor.El modelo de motor paso a paso que hemos analizado?recibe el nombre de bipolarya que para obtener la secueticia completa, se requiew disponer de corrientes de dos~iolaridades,presentando tal circunstancia un inconveniente importante a la hora dedisear el circuito que controle cl riiotor.30.3 MOTORES PAP BIPOLARESEn 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 biwlarF i p m 30-2 Circuito de Control deuri niolor bipolur De este motor salzri cuatro hilos conectados al circuito de control, que realiza lafuncin de cuatro intemptores electrbnicos dobles que pemitm variar la polaridad de laalimentacion de las bobinas. Con la activacion y desactivacion adecuada de dichosinterruptores dobles, se puede obtener las secuencias correctas para que el ttiotor gire enun sentido o en otro. Estos transistores carifigurados como pi~enteen H pueden sersristititidos par el driver L293B taj como se estudi en el capitulo aiiterior, la conexin deun motor P bipolar y el driver L293B se muestra en la figura 30- 13. En la figura 30-3,Mpuede analizarse como debe ser la secuencia de excitacin para que el motor gire en unsentido. Tiene dos modos de funcionamiento: Full Step y HoVStep. 62. t,RA-MAO RA-MA CAP~TULO30: MOTORES PASO A PASO 435i dispositivo30.3.1 Motor PAP bipolar en modo Full Stepial constanteEn el modo Full Stcp el rotor del motor PAP avanza un paso par cada piilso de excitacin.s de bipolarmtes de dos1 + - la hora de Reloj 111 Terminal 1 1 1 II ! l l l h I 1 l1lI1ll 4 1 l l - t dos grupos, 1 L11 - Terminal 1 I I I III u 1 111 t - I I 1 I u 1 I I II II I I Terminal 2N I N 1 1 +-S t Figunr 30-3 Secuencia d~ In seal de excirucion del motor PAP bipolarLa tabla 30-1 muestra las secuencia para generar los rrwvimientos eii sentido horario CW (Clnckwise) y antihorasio CCW (Counf~rc.lor;hui~e)un motor bipolar. Losde trminos "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.que realiza laslaridad de lala de dichosmotor gire eni pueden ser Tublu 30-1 Sec.iic,ncia de ccopih-ol de un motor PAP hb~ulurpara modo Full Stepiconexibn dea figura 30-3,:or gire en un 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 63. 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 conseguirtal cometido, el modo de excitacin consiste en hacerlo alternativamenk sobre dosbobinas y sobre ima sida de fllas, segn se rnucstra en la tabla 30-2 para airibus seritiiicisde giro. Segn la fibwra 70-1 al excitar dos bobina consccutivas del esvalorsitnuitaneamente. el rotor se alinea con la bisectriz de ambos campos magndticos.Cuando desaparece la excitacin de una de ellas, extjnguiendose el cminipo magniticoinducido por dicha bobina, el rotnr queda bajo la accin del h i c o Campo cxisteilte, daildulugar a un desplazai~iientuinitad.En este c control del sent tabla 3 4 para in30.4 MOTORES PAP UNIPOLARES Una forma de paliar cl inconveniente que supone la necesidad de dos polaridadesde la corriente para generar la secuencia del motor, si este dispone de una toma mediacntre las bobinas, es realizar el montaje que se representa en la figum 30-4. Se obtiene utimotor PAP unipolar de cuatro fases (o bobinas), donde la corriente circuIa por lasbobinas en un h i c o sentido.1En los incitores PAP unipolares, tidas las bobinas del estator estn conectadasIformando cuatro grupos. Estos, a su vez, se conectan dos a dos y se montan sobre dosestalores diferentes, tal como se aprecia en la figura 30-4. Del motor paso a paso saIenI dos grupos de tres cables, uno de los cuales es c o m h a dos bobinados. Los scjstetminales que parten del motor se conectan al circuito de control, el cual, se comporiacorno cuatro conmutadores electronicos que al ser activados o desactivados producen laalimentacin dz los cuatro grupos de bobinas. Generando una secuencia adecuada de Ifuncionamicilto de los transistores que trabajan como interruptores, se pueden producir all los de un paso en el nmero y sentido deseado. Su priiicip inicialmente se al 64. h" ~ n - t . ~ CM~TULO 30: hiOCORES PASO A PASO 487 O RA-MAconseguirsobre dos1 sentidos s1 estator: Dispositivo de controlagneticos.I y de potenciamagntico!de. dandoEn 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 Un@olarparumudo Fzrll S t q ~&rkiadesima mediaobtiene unila por lascoiiechdac sobre dos paso salen.. Los seisi compcitta~rducentalecuada dc Tublu 30-4 Secuencia de conrrn/ de toi motor PAP Unipolar para modo Half Step:n prodiicirSu principio de funcionamiento se representa grficamente en la figura 30-5.Si inicialmente se aplica la corrizntc: a las bobinas L I y L3 cerrando los interruptores S1 y 65. 4$8 MLCRM30NTROLADOR PICl hFM. DESARROLLO DE PROYECTOSO RA-mS3, se generarn dos polos NORTE que atraern al polo SUR del jni;i M hasta encontrarla posicin de equilibrio entre arnbos como puede vcrse en la figura ?O-5(a). Si se abreposteriotmente cl uitemiptor S1 y se cierra S2, por la nueva dislrjbucion de polosmagnticos, M evoluciona hasta la situacin reprtsentada en la figura 30-5(b)30.5 CONE modelo1mayor atractivo 1 II anguiarts. Una fomuel nmero rle bbbi ~1 y a p8rdiheis muyHmh &ore pm1nricles8 de l bc umicropsles mgnlmpktieea con nmotora c hmh hi.ssurpii& s ~ t d i ~ a 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 mismaforma se obtienen avances del rotor dc 90 grados habiendo consepiida, como cn el motorbipolar de dos fases, hacer que el rotor ai7ancepasos dc 90 grados por la accin de Icisimpulsos elctricos de excitacin de cada una & las bobinas. El movirnicnto obtenido hasido eii sentido coiitrario al de las agujas del reloj. Ahora bien, si las secuencias deexcitacin se generan en orden inverso, el rotor girar en sentido contrario. Podemosdcducu que el sentido de giro en los motores paso a paso ss reversible en funcin de lasecuencia de excitacibn y, por tanto, se piiede hacer avanzar u retroceder al motor unnmero determinado de pasos segn las necesidades. La funcin de los intemptores sera ejecutada por los transistores NPN de la figura3 0 4 que se incluyen dentro del driver L293B estudiado en el capitulo anterior, laconexin de iin motor PAP unipolar y el driver L293B se muestra en la figura 30-14. 66. ORA-MA CAP~TUM MOTQMS PASO A PASO 48930:;ta encontrar 1 INTERNA DE UN MOTOR PAP30.5 CONSTITUCI~NI). Si se abrejn de polos ! E modelo de motor paso a paso tsnidisdo, salvo pw su valor didhctico, no ofrece lmayor atractivo desde el punto de vista pdctico debido a la amplitud da sus avancesangulares. ESTATORLJROTOR(Mbvll)Um fama de conseguir metores BAP de gam n mdueido esnsiste m amentw&el nilanero c bobiaee del erihtor, pero ello llevada a un aumento del coste y del volumenby 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%arcibn loi Benuclm~de lae bobinrie y el mtsr en foma de hendidura O d i ~ n h e d n d o ~ eMI,mjoropoloa m@tico~, tmtgfi come diente8 y @i~ablaeienQ ~ l W i o n e 8 equilibrio1m dcmapdtiee~ m avmeer~mgulms muohe mmoia. Be bita f o m e piiblo conaegulr cmmetome de h t de 500 pasos e inelmo m h , En k figura 30-6 se m u e m de f o m uaraaumih eeta dhpodoibn g m un motor BAP do 22,S0,fases de la iiiismao en el motoracciiin de losD obtenido ha;ecuencias dcriii. Podemos funciiin de la- al motor unN de la figurao anterior, la 67. 4WiiCROCONTRQLAI)OR PIC E hFR4. DESARROLLO DE PROYECTOS G M-MAEn las fotografias dc las figuras 30-7 y 30-8 piieclen apreciarse un estator y un rotor centrales, mientlde un motor bipolar de 48 pasos desguazado. en el interior cst:30.7 Desde cl 1de algunas de las Par dini dinhmica perder pi estator ) velocidaa generadni t i 30-8 Esfator del motor paro a pasoFip~ra moror po30.6 PIISPOSICIN DE LAS BOBINAS] bri La existencia de varios bobiirndos en el cstator de los motores paso a paso da lugara varias f m a s de agrupar dichos bobinados para quc sean alimentados adecuadamente. 1-+vcc+vmPar de mdgimen d (a) Muraa Blpolar(b) Mator uniplar 6 Mlos (c) M o r Umpdar 5 hlhs Id) M&nr Unlpdar 8 hilas mayor qiriposicibn e Figura 30-9 D i . ~ p u ~ ~ i d~ k bobinar de motorm paso a pn.70 NSn c ~ mNmemdEn el caso de IOS motore5 ;laso a paso unipolares se pueden encontrar con cinmpam real izseis u ocho ~ m i a a l e s que aderntis de los bobinados Iiay otros terminales quiyacompondcn con las tornas intermedias de las bobinas, los cuales se conecta1directamente a positivo de la fuente dc alimentacin para su correcto funcionamiento. Lafiguras 30-9@), 30-9(c) y 30-9(d) describen como estn conectados internamente lo donde NPteminalec de estos tipvs de motores.krecuenci merci dHay qiie tener en c:ieiita q d e los [notores PAP uriipolares de seis u ocho hilos,lecuadarrpueden hacerse funcionar como rnotom paso rr p s o bipolares si no se utili7m las tomas 68. ! iLX RA-MAn R4-h4A ~ A P h l 30: AiOTORES PASO A PASO 49 1 0cir y un rotor l! centrales, mientras que las de cinco hilas no podrn usarse jams mmo bipolares porqueen el interior estn conectados los dos cables centrales.30.7 PARMETRO DE LOS MOTORES PAP Desde el punto de vista mecnico y elctrico es conveniente conocer el significado caractersticas y parametros que definen un motor PAP:dc algunas de las ~iiincipales Par dinmico de trabajo (Workifig Torque). Depende de sus caracteristicas dinmicas y es el momento mximo que el motor es capaz de desarrollar sin perder paso, es decir, sin dejar de responder a algn 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 excitacin. Se mide en grados, siendo el nmero de pasos estndar ms 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, ende regin~cn excitricin, un paso el rotor cuando la posicin anterior es estable. Es mayor que el par dinmico y acta como fimo para mantener el roior en una posicin esbble dada. Nmero de pasos por vuelta. Es I;i cantidad de pasos que ha de efectuar el rotor pam realizar una revolucin completa. Evidentemente su ecuacin es: a donde NP es el nmero de pasos y a e l arigulo de paso. Frecuencia de paso mximo (,Wavimtarn pull-in/out). Se define como el mximo nmero de pasos por segundo que puede ejecutar el motor funcionando adecuadamente. 69. i492MICROCONTROLADOR PIC 16FS4. DESARROLLO DE PROYECTOSB m-MA O RA-MA30.8 CONTROL DE LOS MOTORES PASO A PASOde resistencit#..1hilos que m i Para realizar el control de los motores paso a paso es necesario, como hemos visto, de ohrmos. EN , generar una secuencia determinada de impulsos. Adems, estos impulsos deben serdos a la parejI:I1,. capaces de enrsegar la corriente necesaria para que las bobinas del motor se exciten. Lafigura 30- 10 muestra el diagrama de bloques general de un sistema de conml para unmotor PAP, deMee6nlwMandoControl PotenclaFigura 30-10 Diagrama de bloques de un sistema de conlrol para motorpaso apaso 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 A-B (1-1) OI contenidos en el integrado L293B (figuras30- 13 y 30-14)sentido antihI de la bobina EJEMPLO: E c h i t o de conhl que gobiema un motor PAF de 7,5O por pam, lpmiucc ei s m c a de I 1 prsoimotor s una frecuencia de 200 ~ z suintos grados,gira? si se desprecia la inercia y los ronmientos mechicos, cunto tiempo tarda en 1Irealizar dicho movimiento?. 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 seal es de 5 ms,por1Itanto, el motor tardad SS ms en realizar este movimiento. I30.9 IDENTIFICACI~NDE UN MOTOR PAP!IPara Iti rcalizaeibn de los ejercicios que vamos ri plantear, se van a utilizar dosmotores paso a paso, uno bipolar y otra unipolwr, recuperiidos de miquinas de desguace,!como discos duros, impresoms o similar.1 La primera dificultad eei la ideatificacidn dc las bobinas internas con tras teminales 1Idel motor, Es eenvmimte tener en cuenta cl niliiiem de hilos que diripone el motor PAP,iipara intentar identificar su estructura i m a con alguno de las modetm desrritoi en I i1 Se midecwlquiem disfigura 30-9, Oenertilrnente se deduce por el color de los cribler pero, en cmo de d h , es Ibobinas y los (:central se niide1 medida de 150convaniante mdir le resietencia de la bobina con un ohmem, Asi, por ejemplo, plrm un 1 mitad corresponicitrir hipolar qiie tiene cuatro hilm debe utilizame uii polimetro en posirihn de medidaI 2 y 3- 4.l 70. O k4-M.4 CAPITULO 30. MOTORES PASO A PASO a93 IIde resistencias para detectar las dos bobi independientes. Para ello, hay que buscar doshilos que midan iin valor cualquiera que no sea infinito, generalmente mas pocas decenas10hemos visto,de ohmos. Estos dos hilos pertenecen a los terminales de una de las bobinas y los otrasisos deben serdos a la pareja opuesta. se exciten. La :oneol para un nas*pasoa paso Figirm 30-1 1 Motor puso n poso de 4 hi1o.cutilizando el En este caso no es importante coriocer el devanado que corresponde con la bobuia de generar laA-B (1 -1 ) o a la C-D (2-29, ni identificar siis terminales, porque una vez conectados los10s los driver9cables al circuito de control si el motor gira en sentido horario y queremos que gire ensentido antihorario, solo tendremos que cambiar las conexiones de la bobina A-B por losde la bobina C-D.:7 , 5 O por paso,,ls &b @O8 Para los motorcs de 6 hilos si queremos identificarlos con los del motor dc laimpo tarda enfigura 3 0-4, procedcrernos de la siguiente manera:U 10s11 @OB,a de 5 m, porn a utilizar dosas de despace, Figrra 30-12 Fofo de ula tiItorrivpaso uyuso de 6 hilosn los terminales: el motor PAB,Se mide con el ohmetro para buscar los tres hilos que entre sirnidan un valor dcsct.itos cn la cualquiera distinto de infinito. Estos tres hilos pertenecern a uno de los juegos debobinas y los otros tres pcrtetiecern al otro juego de bobinas. Pim averiguar el terminalcentral 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 valormitad corresponde con la toma central de la bobina, numerados en la tigura 304 con 1- 71. 0 M-MCAP~TUKJ MOTORESPASO A PASO 49330:1 de resistencias para detectar las dos bobinas independientes. Para ello, hay que buscar doshilos que midan un valor cualquiera que no sea infinito, generalmenteunas p a s decenasirnos visto,de ohmios. Estos dos hitos pertenecen a los terminales de una de las bobinas y los otros deben serdos a la pareja opuesta.exciten.Lam1 para 1so apaso Figura 30-1 1 ~Uotorpaso paso de 4 hilosatilimdo elgenerar laEn este caso no es importante conocer el devanado que corresponde con la bobina los dnvenA-B (1-1 ) o a F C-D (2-27, ni identificar sus tminnles, porque una vez conectados 10s acables al circuito de control si el motor gira en sentida horario y queremos que gire ensentido antihorario, s61o tendremos quc cambiar las conexiones de la bobina A-B por los5"rpitso, de la bobina C-D.ntos pradospo tarda cn Para los motores de 6 hilos si queremos identificarlos con los del motor de laf i p 30-4, procederemos de la simiente manera:IS 11 aulsos,or utilizar dosIc desguace, Figtra 30-12 Fato de zrn motor paso a p a ~ ode t hilos s tminalcsmotor PAP, Se mide con el olimetm para buscar los tres hilos que cntrc si midan un valorssi-itor; en IR cualquiera distinto de infinita. Estos tres hilos pertenecern a uno de los juegos de bobinas y los otros tres pertenecern al otro juego de bobinas. Para averiguar el terminal central se mide la resistencia entre dos cables, obteniendo para nuestro caso concreto lade dudn,CRmedida de t 50 R, midiendo los o- dos resulta 300 Q, por lo tanto, el que tiene el valorplo, pnni iin mitad corresponde con la toma central de !a bobina, numerados en la figura 3 0 4 con 1-1 ric ntcdictn2- y 3- 4. 72. 494 MlCROCOiriTaDLAOR PIC16F84.DESARROLLO DE PRO Y ECTOSO R.-MIPara identificar cual de los hilos corresponde a las bobinas 1, 2, 3 o 4, procedemosde la siguiente forma, tendremos que alimentar el motor, el valor de la tensin dealimentacin normalmente suele ir indicado por una etiqueta o serigrafiaclo en la carcasa.activar las eEn caso contmrio, deberemos de tener cn cuenta que la mayoria de los motores paso a las bobipaso estn consb~iidospara trabajar a 4, 5 , 6 , 12 y 24 voltios. Probamos con 5 V, porprecaucin, conectando esta alimentacin a la patilla central de Ias dos bobinas. ejeniplo se uSeguidamente se toma uno de los dos hilos, se numera con cl nmero 1 y se conecta amasa y el otro hilo del mismo juego de bobinas se nurnmr 2011 el nmero 2 y se deja sinLas ~ iconectar. A continuacin tomamos uio de las terminales del otro jucgo de bobinas y se dichos pinesconecta a masa, si el motor gira un paso en sentido horario se numera el terminal con elcerrados, reslnmero 3 y el otro terminal con el 4. Si por el contrario lo hace en sentido contrario a lasdel motor sejagujas del reloj se numera con 4 y el ltimo tmnina con el nmero 3.i1 Una vez identificados 10s terminales del motor bipoiar y del unipolar. cn lossiguientes epigrafes veremos los circuitos que vamos a montar para cada uno de ellos.El moi!bipdar. En eI30.10 CONEXIN MOTOR PAP BIPOLAR Y PICI 6F84alimentacin1 terminales 3El montaje que vamos a realizar para el motor bipolar se muestsa cn la figura 30- centrales de 1! 13, en el que se ha realizado la conexin del motor PAP a travs de los drivers de1 en este ejern~Figura 30-13 Cottcxihn del motor P,4P bipolur u PICl6F84.A y driver L2 93 B 73. 4, procedemosLas ljncas RBO, RR1, M 2 y RB3 sern las encargadas de genemr la secuencia de la tension derictivaci@~.ii motor paso a paso, mientras que KB4 y RB5 se ponen siempre a "1" paradelo en la carcasa.activar las entradas de habilitacin de los drivers. Las salidas de los drivers se conectan amotores paso alas bobinas del motor para conseguir la corriente suficiente que permita sus con 5 V, porfuncionamiento. La tensidn aplicada al pin Vs es la de alimentacin del motor, eii este; dos bobinas.ejemplo se utiliza un motor de 12 V.y se conecta ai2 y sc deja sinLas lineas RA5:RAOse han concctado a unos interruptores que pueden entregar ale bobinas y se dichos pines un nivel alto "1" o un nivel bajo "O",dependiendo de que estn abiertos o tenninal con e1cerrados, respectivamente. Esto perrnitira controlar las condiciones de funcionamientoi contrario a las del motor segn el estado dc cstos intcrruptorcs.30.11 CONEXINMOTOR PAP UNIPOLAR Y PIC16F84diipolar, en loslo de ellos. El montaje se muesm en la figura 30-14 y es muy similar al del motor paco a pasobipolar. En este caso se ha conectado la toma intermedia de los bobinados a la tension dealimtrntacin, e1 terminal 1 y 2 a las salidas de un par de drivers del L293B y losterminales 3 y 4 a las salidas del otro par de drivers. La tension aplicada a la tomasen la figura 30-centrales de los devanados del motor debe ser igual a su tensin nominal dc alimentacin. los dnvers del en este ejemplo se utiliza un motor de 12 V.MOTOR PAPUNIPOLAR Figura 30-14 Conexih del motor PA P urlipolur a PICI 6F84A y driver L293B 74. 496 MICROCONiROLADOR PIC lbFB4.DESARROLLO DE PROYECTOS30.72 CONTROL DE MOTOR PAP EN MODO FULL STEP Utilizan& cualquiera de los montajes de las figuras 30-13 6 30-14, vamos aanalizar el programa MotorPAP_Ol .asm, que es un programa que hace g r r el motor iasiempre que este cerrado el interruptor conectado a la linea R A O y dependiendo del mestado & la linea RA4 girar en un sentido o en el contrario. El programa para los dos hidotipos de motores es el mismo y su organigrama es el que se muestra en la figura 30-1 5 . w beE w ; M Pdiscipltf L.. - w. . - gBOO micmcontrolador.ct -1:- G &. ,.- .*.. :#M - .&- - m- a-* . * :.-::-* ,:, , . -.: ...--:...al-.-- Figtra 30-15 Organigrama del programa MotorPriP-01.asm 75. Q RAMA CAPITULO 30: MOTORES PASO A PASO 497,STEP #DEFiNEEni&&khciPORTA,O ; htemptor de p t ben marcha. us#DEFiN ~ s n d d o PORTA,4 ; Inkmpbr & sentido de giro.-14, vamos a;~A~&I~**W.**~~******~*****~L*WWW~~~~~**++****O*+***~****-**$rar el motormdiendo delORGo-- - los dosi paraInicio . WSTAWS&Wm 30-15. befl%m&Mmb ;Ema hms se crmfipm cona0 entrada. bef. M- FWITB,;Las l b &l hiena B configurada8 como salidas. bcfSAWSJtM - - .:, m., .. . --.-;--enmarcka?;s.-, drf:- PURTE; N , p r el motor, poniendo rt cero la laeao aa -..sw:.,;:Fm .&; #e Wlitzzidn&::; .-a- . . .:,- - " . . . . .. -. - ; Cgqmcba el sertiido de giro deseado. , - - : d--. ;Gimen unmtido. ,*:. -*:/- ,. - - --: i w%mi&@ ~0 0 ~ 0 . . . , ..:-.,. .-ri, parado . . 76. 498 MICROCI )NTROLADOR PiC 16FL14. DESARKOL[.O DE PRI )YFCTOS c RA-MAmovwf PORTBcailRetardo-lOms ;Temporkcin antes del siguiente paso.NCLUDE m A R D O S . M C > Este control tambin se poda haber realizado mediante tablas de datos, de formasimilar a los juegos de luces plaiiteados y res~~cltos el capitulo 12. Se anima al lector aeriinodificar &te y los prximos ejercicios resolvindolos mediante el procedimientodescrito en el ejercicio Retardo-08 .asrn.30.13 REALIZACI~N E SECUENCIAS DE MOVIMIENTOSDEri muchos proyectos es necesario realizar una secucncia dc moviinientos con losmotores 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 unbuen momento para saberlo. As, si se hace la kinpc.irizacin Iriayor llamando porejemplo a la subrutina Retardo-5Oms en lugar de Retardo-IOms, denm de la silbnitina"ActivaSaljda", podenios contar fkilmente cuntos pasos necesita para dar una vueltacompleta. El motor unipolar que hemos utilizado nosotros necesita 48, por lo que cadaimpulso de excitaciiin recorre 7,5", que corresponde a urio de los valores comercialesrecogidos en la Tabla 30-5.El progranla MotorPAP-02.asm Iiacc que el motor ejecute wia iuelta completa enel ngulo de paso del motor o, lo que es igual, el nmero de pasos a recorrer para que eleje del motor ejccute una vuelta completa. 8Ob: Suhtina "GireGiroIiqukh; El motor PAP realiza una vuelta en sentido y dos en saitido c o n m o ufizaodo el modo Full Step. movlvcall KtoYlu callCONFIG -CP-OFF t -WDTTOFF & -PWRTE_ON & -XT-OSC mmlvLIST P=16FS4AcallN C W E 816F84A.INC> movh cal1CBLOCK OxOCmCich ; Se denementarli cada ciclo de 4 pasos.Vue1tasHdo; slhltina"GkVwhasAnatihorarioENCGirokmha movlvNumeroCjclosEQU-12 ;Un ciclo & 4 p o s son 30 gradas p m un PAP I 77. O RA-M: Q RA-MA CAPI IYI.CI 10: MOTORES PA S O A PASO 499 ; 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**ORGOinicioos, de formabsfSTATS,WOna al lector aclrf WRTB ; Las lineas del Puerto B configuradas coniu salidas.bcfSTATUS3PO-ocedimiento Principalmovlw0x02 ; Dos vueltas en sentido horario.movwfVueltasHoraro OtraVueltakr&amvlw Numdiclos m 0 4 Ciclos:ritos con los OtmCicloMhacal1 GiroDerecha.e servir para, kfsz Ciclos,Fgoto ~~1 0~decfsz VueltasIIorario,Fpuede ser ungoto OmVueltaDaeChalamando pormovlwOxOlla subrutinamwwf Vue1tasAntihomrio; UM vuelta en sentidoantihorririo.ir una vueltaOtraVueltalzqurerda; AL wt una soh vueltano haria falta el contador.lo quc cada movlw NumeroCiElos; Pero se deja para que el lectot pueda k e r iqacomerciales movwf Ccoils; pniebas que crea oportunas canibiando l carga a OtmCicloiqtiierda; (VueltaAntiliorario}.cal1Girohquierdadecfsz CiclosF completa ~ri gotoOtroCicloIzquierda:ne en cuenta d&VueltasAnti~o,F!r para que elgoto CbVueMzquierdagoto Principal GiroIzqirierda movlw; Wmer paso.catImovlw ; Segundo paso.ira11movh; Tercer paso.cal1mvlw; Cuarto y iiltimo pmS.0cdretum; Primer paso pam el giro hacia la daecha.i PAP 78. l5WMCROCOhTROLADOR PIC16FM. DESARROLLO DE PROYECTOSF RA-MAiAaivasalidsm w WRT3 v f ca ;Tempimibn antes del siguien& paso. rmm30.14 CONTROL DE MOTOR PAP EN MODO HALF STEP Una de las posibilidades que tienen 10s motores paso a paso es la de utilizarlos encl 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 elprograma MotorPm3.asm, el proceso de progmacion es el rnisino. Como ejemplode aplicacibn se va a repetir el progma de la seccin 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 ;Uncichde8~son30griidwparamPAP ; dt 73" m m& w - S t e p . Par tanto paraI; co@etar 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 Okucio - bdSTATS,RW 79. O RA-MAe M-MAC ~ P ~ T U L O MOTORES PASO A PASO 50 130:STEPtilizarlos ene 8 estados,b m e en elno ejemploalfStep. ;Frimsrpo. ;Se& paso. ; Tercu paso, ; Gurirto p o . iQuia~g~eo* ; soxw p o . ; -PO. ;mwyrilthnopa 80. r502 MICROCONtROLADCiR P1ClhF84 DESARROLLO DC PROYFLTOS3 KA-m l2,RA-MAmovlwb 0 1 1 10000; Sepimdo paso. CBLacalActivaSalida VeloeYmovlwb00i 11010 ;Tercer paso. EMXcal1 ActivaSalidamovlwU001 100 10 ; Ciiarto paso. #DEFINE Entracal1 ActimSaIidamor~lw WMI 10110 topas^. ; ZONA DE C~call .4ctivaSalidamovlw b00110 100;Sexto paso.ORGcall ActivaSaf idamovlw b0011010lt ; Skptimo paso.cal1 - Activasalida movlwrnovlw b00 1 1000 1 ; &cavo y ultimo p w .movwfcail ActivaSa1idamovfandlwmowf PORTBcal! Retardo-jOms :Temporizaciiin antes del siguiente p o s .m MlNCLUDE crsorcs J.ri:;;cr Sr!iiiiiii cncrips~iladi>s scgii se inilict?en la figiira 3 2-2. funcional: una mane aadir el (Estos disposili*os ticneii Lina c;iracteristica de transferencia como la que se muestraen la 1Tgii1~ 32-3. Fn csta cuma se aprccia que si la tensibn de entrada aumenta desde O V Talhasta un nivel ,ilio la traiicicicn se prtiducc siguiendo b curva A y conmuta para el valorV I . dcnoininnrlo amhral superior. Por cI contrano, si la entrada esti a un nivel alto yE stdisininuyc Iiiist 01., tranciciiiii sc prodiice sigiirendo 13 curva B cuando se alcanza elII con seaitdcnoniiiiadci taoibr:il ieihrioi V ,-. I,o.; valores de y de V , - para el caso del 4010632- 1 se midepeiidcri de la tc.r~~~iiiiiiilinieritnciiin y piicdcn tomar Icis valores de la t-bla 32-1,dc digital. Ci vuelve a tiEli !; ciirva d,: i:;!ti~f~rc:i~ia dcl iiivcrsor Schrnitt cs iniportante observar que laconsidenitmiisiciori dc salid:: dc iito - 3 Brijri cs distinta que la dc Unjo -+ Alto. A estc fenbmeno se40 106, la ;Ic coni3ic coino Xliaiiesis. 95. -RA-MA1FIguru 32-3 Curva de truisv/;~i.c~~?rina ini)ojntir. Triggcr ,S~,hrniftr.lo r 117Triggerntiene 6El 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 x i cii sc h aadir el dibujo de la pifica de histcresis en la ciitr:id;i corrvsprindici~l~.:muestraesde O V Tabla 32- 1 I "rrinresclk t y 1 T ~ I A W o1 40 1/16 (tr)~Ii>.~ il:,r{:i. T k )r i ~:o/tio.s)i el valor)el alto y Estos circuitos son de ~ a utilid;id cuando sc clrscn c(:nii-{il:ii. 1111 r*it-L-iiito i ~ digiVallcanza elcon seales que no lo so11o seales digitalcs coil una srii:il dc i-iii di: ,iriniar;ln. En 1;i iglir;iel 40106 32- 1 se muestra como acta un circuito no invcrcoi- lfenlc a iitia s;:i-i;tl rliic ri;i cs ~ iii-aiiicritc i.l.digital. Cuando la seal V I alcanza 21 valor V.,I;i salda V,, h n c c i i l : ~:I ~ i iiiil:cI al11 y rir!ii vuelve a tomar un nivel bajo hasta que 1;i ciiirada n o Ilcgilc n, l:,~ la tigul-i~ 1 sc 11;i 32-a que la considerado un no inversor para una mis, ficil cxplicricicin. Inia iin iiivcr;c>i. ~ o t i i ocl5meno se 40 106, la seal de salida hubiera cstado invertida reYIiEicici dc 1;i t i ~ , i i i n 96. 5 IX U I C R o C O U T R O W R PIC I6F84. DPSARROLLQ DE QROYECrOS8MM - A-CR A M A En conclusin, un dispositivo Trigger Schmitt produce transiciones de calidalimpias y rpidas, aunque la entrada no 10 sea.rnimonkolador P C I6F84A posee IaEtTlnea RA4 con entrada Trigger Scmitt (figura 5-7) que se puede utilizar para este fin sin~eoecidad intercalar un 40 106.de I R732.3 LDR337 Las resistencias dependientes de la luz, LDR aight Dependertr Rcsistor) ofotmistencias, son dispositivos que varan su rmisencia en funci6n de la luz que incidesobre su supwficie. Cuanto mayor ssea la intensidad luminosa que incide sobre ella menorser la resistencia entre extremos de la misma. Para su fabricacibn se utilizan materialesfotosensibIes.Su a w n fisicn y sUnbologia mLr.~ comn se muestra cn la figum 32-4.. 8.. .- L,, - . :S-..:.. . - LDR LDRi +; .- : ... -..- - , F o m fisicaShbofo elctrico ms comn de 3 LDR n I * .CL YUL Ie mcurwc32-4 LDRFigz~ro; del miiduilii LCD vc :b sa 99 at Su valor nominal se especifica sin que incida la luz externa. As, por ejemplo, unaLDR de valor nominal 50 m, como la de la figura, tendri dicho valor si se tapa de:ZONA DEDATOSmanera que no incida la luz sobre su superficie, si se la acerca a una bombilla de 60 Wpuede bajar hasta unos 30 a. Las principales aplicaciones de estos componentes son cnntroles de iluminacin,control de circuitos con selb,en a l m q , etc. La forma ms sencd1a de conectar estos sensores de luz a un rnicrocontmladoresmlizando un divisor de tensin con la LDR y un potmi0metm, que permite ?jurzar el I DRGOnivel de luz a detectar, A la salidadel divisor de tensin se le coloca una puerta Triggeri IniciaSchmitt para conformar la seal, tambikn puede hacerse m una entrada de a t e tip como 1la RA4 del PIClF84A tal mucstaa la figura 32-5. IEl p r o p m Senso-DR-Ol.acmmenta el nmero de veces que es c o d o unhaz de luz que incide sobre la LDR. 97. t M-MACAPITI~U) 32:SENSORES PAR.4 MI~ROROBOTICA 519ies de salida84A posee la-a este fin sint Resistor) ouz que incidelreella menoran materialesura 32-4.- 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~xion una LDR a la mlruda Trigger Srhniirr RA4 de un P1CI 6F84A deLDR 9; Una LDR ae ie la entrada Trigger Schrnia RA.t/TOCKI aplicando impulsos d Timw O Eadaa;vez que se os cure^ al intmpnetse ua-i objeto la W de htz y la LDR En la pantalla;del d u l o LCD se visualiza e1 nmao de veces que se hkmmpeel haz & luz en dos dlgiios;( a *o). h 99 ejemplo, unasi se tapa debilla de 60 W:iluminacin,controlador csmite ajustar elpuerta Tngger ORGOinicio:ste tipo con10 4 1LCD-inicializabsfSTATUS,RPO; AoocsodSanm l.rnovlw b00101W; TMRO mino contador por flan00 scendenre dees cortado un mowf OPTION-REG;R A W K 1 . . Prescaier asi&d Watchdog.bfESTATLiSJWO; Acceso al Banco O .ctfTMaO; lnicializa contador.; La seccih "PrincipP es de mantmhiento. So10 se dedica a visualizar el Timer 0, cuya 98. ;cuenh sc increinenta coii bs flancos ascendente prucedente de Iri cntmda Triggcr Schriiitt ;Cd la LDR: RA4iTOCKI donde se ba conectado la LDR.Principal. cal1LCD-Lineal; Se pone al principio de la lhm 1.;ZONA DE DA niovf TMR0.W; k e l T u n e r O. cal!Bm-a-BCD; Se debe visualiznr en BCD. cal11,CD-Byte : Visudiza, apagando las dxenss en c a ~ o q~iede sean 0. gotohiricipalEste programa solo pertnite contrir dc forma corrccta hasta 99. Se deja al lector sumejora para ~iridcr aumentar la cuenta y utilizarlo. por ejemplo, en la coinputcin de losob,jcios que estn en una cinta trarisportadora, pcrscitias quc pasan por uria puerta. etc. Estcniisrno programa se l~iiede utilizar para otros censores que sc dcscrihcn mas adelante, porqjcmplo para cotitar el iiiutierci dc objctos que pasan por delante dc iin sensor dc Inicioiiltrasonidos.bf sbifbcf El circuilu de la figiiia 32-6 jiiilto con cl prograina Sorisor .ILDR_-fll.asmconstituye kfotra aplicacihri tpica. Se trata de un interruptor crepiiscular, que cs un circuito para bcfcricender una Iimpara cuando llega la noche y apagarla con los prirncros raycis del sol. PrUicipdbtfssBoto EacierideLwcaiibtfsssotoREObsf Y RE1.E e 4 -%caUbtkg*bcf Fincal1gotoINcLLrnEND+***I**bC*ir4*$******,***i******L4* ScnSoI LDR- -~*****Lm*****~**********C******I*~*Y*Este tipo I1 ; Programa de un interruptor crepuscuIat:una b p a r a se inatendrh encendida mientras waLED, y un recep; de noche. Uria LDR detectarh la luz arnbicnte (sin que le Heme la l z de la Ihpm quc u;pretende conu.olar) y estad conectada a la 8ntrada Ttigger Scbrnirt RA4. define el tipo ya : 99. ; Cuando la LDR detecte osmidad el sistema activar ima kmpara: ; - LDR ihuninada 3 Enb& P C = "0" -A Lhpmapagada.I ; - L D R a i o ~ ~ ~ i d a d EneadaPIC="l" ALbmpani-ida. -> #DEFRIE LmpmPORTB,I ; Lhm donde se conecta la calida.i al lector su #DEFINE LDR PORTA,4 ;E -n Trigger Schmi~ PIC don& del seconecta ; b LDR.lacion de los:ZQNADEC~D~~S**********+*I***********I****~****I****~******~******W********:rtri. etc. Esteidelante, por ORG11 serisor de hiciti bsf ; Acceso al Bataco 1. bsf bcfni constittiye bcf ;A-al Bmco O. :ircuito para bcf ;En principio I h p a r a upapda. s del sil. Principal btfs9 LDR ; J?ntrada=l?, &DR en &?.gow ApaWpara;No,LDR i ! i m h d a por el sol.Apga la Idmpm. Encid- cal1Retad- 20s;Espffaesietimppmnbu~Ioaat&$ btfss W R: &nmda=l?, LDR sigue en oscuridad? Fin ;No,sale fuera. baf Lampara ;SI, mciendc la lamparrt gotoFni APasaLampara cal1Retado-20s; Espera este tiempo p m conrmar la luz de1 mi. MfscLDR ; EnW=O?, iLDR sigtic ihiiaimda por ~ U del sol?Z Fm;No.salehem. bcf LamP; si, a w Igmpara.p Fin cal1~0 ~ 2 0 s; Permaneceenelesardo~n~~lmtriosestetiemp~. sotoPrincipal INCLWDE 4U5TARDOS.MC> END 32.4 FOTOSENSORES ACTIVOSEste 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 reflexin o por barrera como se estudiar a continuacicn. 100. 522 PICl h%M.MICROCO~OLAWR DESARROLLO DE PROYECTOS 0 RA-VASti aplicacjbn. entre om, suele ser la detecciiin de la prcscncja de objetos, medidade distancias inuy cortas, lectura de cisdigos de barras, etc. En microrob6tica suelc:para dcitectar una marca o seguir una lnea (normalmente negra sobre fondovcc:.. Los problemas mis comunes que suelen darse con este tipo de sensorcs son que lareflexin depende las caractersticas del material y del color;en principio los colores mis Alclaros reflejan el haz de luz infranoja m i s que l s oscuros. La luz ambiente es unao2;:importante fuente de mido a tener en cuenta.Sensor optico CNY7Qes un sensor optico reflexivo con salida a transistor (figura 32-7)Vishqk. TeIej~nken Semlcondttctors (www.vishay.cum). Tiene unaconstmcciOn compacta donde el emisor de luz y el receptor se colocan en la mismadireccin para detectar la presencia de un objeto por medio del empleo de la rcff e x i h delhaz de luz idmmoja IR (Infraredl sobre el objeto. La tongjtud de onda de habajo es 950#m. El emisor es un diodo LED infrarr~~ioel detector consiste en zin fototmnsistor. La ydistancia del objeto reflectante dcbe estar entre los 5 y 10 mm de distancia. La corrientedirecta del diodo Ir= 50 m4 y la intensidad del colector es de IC= 50 inA. El circuitrUtiliza un arnplrfiha canectado crpotcncilrnctro qui Vista desde arribaAspeicto y pati1Iaje Diagrama interno. ipr-a32- 7 Sensor cipiico relferivocon salida n fransisfni. FiCW70ara conectar estos dispositivos hay que polariz;rrlos, sa es la fiinci~nde I q nresistencias del circuito de la fipura 32-8, donde se mt!esiran las dos posibles formas deconexin. segn se quiera la salida alto para color blanca o negra.Elinvmor Trigger Schmitt 40106 se intcrcata pam corifomras las tensiones avalora lgicos. 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 tensin de alimenlacion de 5V y no podemos variarlos. ; f 101. P RA-MACAPITULO32: SENSDRFS P,WA MICROROB~JTICA 523is, m e d i hFuncionamiento del Circuito (A): rica suelebre fonclo - Detecta Negro -> Transistor en Cone -. - Detecta Blanco --r Transistor Salurado - - r E n h d a al inversor "U --> Entrada al VC "1" Entrada a) inversor "1" -r Entrada al VGO"VCC=SVvcc=5vson que ladores msite es una 32-7)riene unala misma flesion delia.10 cs 950insistor. La.a corriente - Detacta Negro--r Trans151or Corte --> Entrada al inversor "O" --> Entrada al pC "1" en Figflru 3.2-8 Cirtrritu tr;tlzcosde conexiupr del CM70 El circuito de la figiira 32-9 permite ajustar la tensin de disparo del CNY70.Utiliza un amplificador oper~cional, trabaja como comparador de tensiiin, al que se le queha conectado en la rtitnda no inversora cl sensor y a la entrada inversora iinpotencibmetro que traja como un divisor de tensin.VCCW170cin de lasS formas detensiones aerta son VTariarloS.FiTransistor Sauraao .--Enbada inversor " 0 --> RA3; 1 1 - - 22P- Negro --Transistor en C m e --, Enmda invsrsor "1" --> M = - D .704 tieneente pararte de las32.4.3 Ejemplo de aplicacion Para corriprobar el funcionamiento de los dispusjtivos que tiernos analizado CNY70y los OP703104105 se puede cargar el programa Sensor-CNY70-01 .asm y montar elcircuito con el sensnr de la figura 32-1 l . Cuando cl sensor se enciimtra frente a unasuperficie blanca el h a z infrarrojo refle-ja y en la entrada RA3 aparece un nivel alto quehar que en el LCD visualice el rnensajc "Color BLANCO". Si el haz inhrrojo scenfrenta a una superficie de color negro o tio encuentra superficie, el haz no refleja y en el LCD aparece el mensaje "Color NEGRO".;E i ba L.CD se visualiza el color "Blanco" o "Negro" que e& detectando el sensor CNY70,a l ml; se& b configuracin 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,nxima es7-8 y 32-93 corriente ; Lneas donde se conecra d sensor. 104. 526MICRWONTROLADOR PIC 1 hF&l. DESARROLLO DF PROYECTOS O M-M.4; Z Q ~ ~ A D E C ~ D *~ *~ ~ * vS w * * * * * * * * * * * ~ * * ~ ~ * * * v ~ * * + b * * * ~ * * ~ * * ~ ~ * * u ~ ~ * * * ~ * * m e * * * ~ * * * m m + ~* ~ * O +ORG O 4 1LCD-hiciaiiza movlwMensajeCiilor call LCDMemaje bsfSTATVS,rn ;Linea del senwr se configura corno entrada.hfSTATCiS.RPO call LCD-Lind movlwMensajeNegro; En principio considera que es negro. btkSensor; Lae el sensor. rnovlw MmajeBlanco ; No,es blanco. cal1 LCDMensajc; Visualira el msultado.gotoPrincipalDT " BLANCO". 0x00 DT " Negra ",0x00 WCLmE en AI activar el brazo de la palanca, el temhal comn C realiza un contacto elktrico se encuerimcon el t m i n a l activado A. Cuando no se activa la palanca el terminal C est en contacto su bajo consumo y g rcon e1 t m i n a l dc reposo R.32-26,En temas anteriores se ha utilizado siempre sistemas a n t h b o t e softwaTe para lospulsadores. Un sistema antirrebote hardware se muestra en la fgum 32-25, se mta de unflip flop M que presenta en las salida Ql y Q2 unas seiiales complementarias. En elestado 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 Q pasar a tener un nivel bajo mi-? 1 que la salida 4 2 pasad anive1 alto.Este sensor fui hacer la medicibn. S I anchura del piilso de 1El scnsor SR1 emitidos viajan a la zFigirro 32-25 Conrxin delfinal de carreraa trm& $E un circuito antimebofe reflejado y captado il incorporado cs emitir 115. 32.9 DETECTOR POR ULTRASONIDO SRFO4Loi; ultrasonidos son vibraciones del aire de la mislila naturaleza que el sonido,pena de frecuencia superior a l s 20 H-k por lo que no son audibles por los m ohumanos. Los detectores de obszacuIos por ultrasonidos emiten pulsos de ultrasonidomediantc un dispositivo transmisor, cuando las ondas ultrascinicas se reflejara sobrealgn objeto, a tmvs de una cpsula sensible se captan los pulsos reflejados. Eltiempo que tardan en volvcr los piilsos reflejados es proporcional a la distancia delobjeto sobre el que se reflejan. EL SW04 es un mdulo de sensom por ultrasmidos, desrtrro!lado por DeiwrrrechLrd (~w.mbot-electronics.co~uk) comerciali;rsido en Espaiia por Intpluc S.L y( w w w . s u ~ m o h o t i c a . ~ ~ ) ,es capaz de detectar objetos y calcular la distancia a la quequei elctrico se encuentra cn un rango de 3 a 3 M cm. De muy pequcio tamao, el SRF04 destaca por1 contactos bajo consiirno y gran precisin. Su aspecto fisico y conexiones se muestran en la figum u32-26.e para los Canexlones delrata de unSRFWias. En el activar e 12 pasad a t .5llrnanlsd4n ?N- Z Salldn Eca- 3 E111rada DisparoAspecto fisicoCencxiones y vista postcriol Este sensor hncinnn por ultrasonidos y contiene toda la electrnica encargada dehacer la medicion, Su uso es tan sencillo como enviar el pulso dc arranque y medir laanchura del pulso de retorno tal como se muestra en la figura 32-27. El sensor SW04 fiinciona emitiendo impulsos de uftrasonidos, Los impulsosemitidos viajan a la velocidad del sonido hasta alcanzar un objeto. entonces el sonido esreflejado y captado de nuevo por el receptor de ultrasonidos. Lo que hace cl controladorincorporado es emitir una rfaga de impulsos, a continuacibn empieza a contar d tiempo 116. 538 MlCRKONTltOLADOR PIC 1 hFM, DESARROLLO DE PROY ELTOSun-MA3---- -- --- --- =" - - - - -. ---- t --aiie tarda en lle~arel eco. Ente .i e m m se traduce en un nulso de eco de michura - - - -- - ---- J;.-,.-+~In*proporcional a la distancia a la que se encueiitra el objeto.Pulso de Disparo10 uS MnimoEntrada Pulsods Disparo111U Impulsosultra NCIidr Z E Pulsu de Salida de Eco--- Figura 32-2 7 Diagramar de iiempos del SRFO4, (c~rfe~..iLi ica.com) de www.srtp~rrohofLa relacin entre la distancia medida y el ancho del pulso se muestra en la tigura32-28. Por cada centmetro 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 cnirespectivama te.1i.**************3456 - - - - - - - *- 258259 300DISTANCIA (cm)1 ------.-.L; Para el controlI; lhea RA3 que; sensor se ponga r; uitemrpciones po;S e g u i d a m a seI ANCHURA;centirnms.0,lO 0,18 0,24030 0.36 17.6817.94 18,00 36.110tPULS0 ( m s ) IIFMlNiMo I I l-..,- ,._nniurn n~ ."----A ...--.-,i n a q ~~nMAXlMOII.., D- , A-A- I V I L-Ua bGl L . IU W. - , L.; En este programaFigura 32-28 Relacin entre la distaticio tedida y la unchuua de pulso i : ZONA DE DATiIUna aplicacin tpica puede ser un medidor de distancias, como el de la figura 32--r n M29, donde en el display se visualiza la distancia desde el censor a un objeto.I LISTI iNCLUI El programa Sen~or~Ultrasonido~O1.asm,piiede utilizarse para comprobar d C8UICfuncionamiento del sensor. La tcnica de programacin consiste en mandar un impulso a I Distanciinivel alto de disparo con una duracin minirna de 10 ps al pin 3 del SRFO4 (entrada ENDC 117. Rh-MA: anchuradisparo). Despus 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 dele sl 6nale Eca y elle1 Pulso de.ila figuraen 60 ps,y 300 cm .*kli**O*iT~U**L***O#*******i**,**SeIISM - uaoniJo- +*****~"+C*~***,VU**I**~ ; Programa paraun medidor & dismclas hasta un objeta utilizarido L.erisoporuhmonido SRF04. ;Para el control del semar en primer iugar se genera un pulso de 10 us a mvei alto por la : lneaque se conecta a Ia entrada de di~paro m mSeguidamente se espera a que m el del s . ; 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 mdulo LCD el valor de Ia distancia hasta al okqeto e x p r d m ; centimfms. ;Por cada m& de distancia al objeto el SRF04 aumenta 60 ps la anchura del pulso.tr u ; En este programa la distancia minina es3 ctn y la mixima 250 cm.CBLOCK OxOC Distancia m i 118. 540 hIICRKONTROLAWR PIC 1 hF84. UESARROLI.0 DE PROrT.CTUS#DEFINE Diqm PORTA,3; Disparo para iniciar la medida.#DEFINE EcoPORTA4 ; Pulso cuya anchura hay que medir.MinimaDis!ancia EQU.3MaxbDistaacia EQU,250TMROCarga~crmEQU 427 ; Valor obtenido experimenttilmente con la ;ventana Stopwatch para una interrupcin del; Timer O cuda M) p. Si no mide correctzmciitt pir las tolemcias de los componentes M d; que hacer un a j e fio de este vator, comprobndolo wbre Ias condiciones reales.ORG OgotoInicio ORG 4gotoServiciointemipcimM-jeDistaracia DT " Distancia: ",OxOOMensajeCentimetro DT " cm", 0x00 ; V i s W la dhfmsajjeDisranciaMenorI ;visualizmrrm DT mist. MENOR de:", 0x00 ;YcuandomMcnsajeDistanciaMayor DT "fist.MAYOR de:", 0x00 ;Si la distancis4 1 LCD-Inicializabsf STATWS,RPOkfDisparomoybsf Eoosubumwlwbm; Prescaler de 2 para el TMRO. bthmovwf OPTION REGbcf STATLS~PO ~ D:ticializa lnea de disparo en bajo.sub1 btfsrclrfDic(arrcia; Iniciztli el registro. ! mbsf Disparo ; Comierw el guiso de disparo.cal1Reiardc-70micros;Duracin de1 pulso.DisrauciaMaytbcf Dispara ; Final del pulso de disparo.movm=x~Eool movbtfss Eco ; Si E C M , espera el flanw be subida de h &almov@tu ESpera-Ec0-l; de salida del censor.movlw TMROOCargadOmicros; Ya se ha producido el flanco de subidam M W O ; Carga el Timer O. rnoviwb10100000 ;Auton~airiterrupcibndel TMRO (TOIE).mvmovwf MCON mov mOY; E s p flanco de bajada de la s d a i de la salidagotaEspera-Eco-O; del S W . Ds~caib ilniFaiclrfNCON;Se ha pducido d h c o de bajada. Prohlbe intemp. mcdl VisuaIiza ; Visualiza la distancia. VisurilizaDim 119. callReardo-2s ; Espera un tiempo huta la pr6xima medid&Fin gotaPrincipal- Subrutina"S&cioIntmppioa" -------.--; Se ejecutadebido a l peticibn de interrupcin del Timer O cada 60 ps que 8s el mCmentoa del ; & la anchura de pulso por centmetrode distanciamedido. La variable "Distancia"contiene el; valor de la distancia espresada en centmetros.ServicioIntmpcion movlw TMRO-Carga60micros ; Cwga el Timero. movwf TMRO movlw . i ; Se utiliza insmicciim "addwf",en lugar de "incf &lwf Distancia,F; para posicionar flag de Carry. mvlw MaximaDisimcia ; En c m de desbordamiento carga su mximo valor. btfk STATS,C movwf Distancia bc f MTCON,TOF rdie; Visualiza la distancia expresada en centimetros. Se t i x e de manera que niandohaya que; visiialitar un nrmero 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.Visualitacan; Borra la pantrilla antsrior.movlw ; Va a comprobar si es menor del mInimo 8drnisblc.subwf:TW)+istancia)-Minimaatanciabtfss; ;C=l?, (W)positivo?. i@istancia)rMinimaDi~ia?goto ; No ha resultado menw. y salta al mensaje de error.movf : Va a comprobar si es mayor del mximo sdmisible.sriblw ; (W)rMaximaDistancia-(Distaricia)btfs ; CeO", (W) negativo?, &laximaDistancia~istancia)?goto;No,la medida de la distancia entra dentro del rango.MaximaDistancia; La distancia es rnayw que el &omovwf Distancia movlwMensajeDistanciaMayorgotoVisusiizdXstanciaDistanciaMenor niov1w MinimaDistmcia; L distancia adelir~enor minimo fisble. mowf Distancia movlwMensajeDiutanciaMenor~iisual~Dis~c~~DistanciaFiable movlwVisuatizaDisimcia 120. 542 MICR(K0NTROLADOR PlC16F84. UESARKOLI .U DE PROYEflOS 0 KA-MA ! , caIl LCD-Mmje rnovlw .S: Centre la metida de la distancia m la segunda llnea cal1 LCDLPosicionL~;& la pantalla.movfDistancikW 4 1BiNa-BCD : im pasa a BCD. mvfBCD-Centem~W; Primero lai centenas. btfssSTATi JS,Z; Si mc r no vislializa las centenas. ea gota VisdmCentenas mcst-f DistanciqW;Vuelve a recuperar este valor. d iBIN-a-BCD : Liopass aBCD. d iLCD-Byte; Visualiza las decenasy unidades. gota Visuali~a-cmVisdizaCentmascail LCD .NitibIe ;Viwalim las centenas.movf Distancia,W; Vuelve a reci~perar vaior.este d cal1BIN-a-BCDLCi-ByteCornpleto; Lo pasa a BCD.;Visualiza las detenas r a q u e sea cero) y: unidades.C movlwMensajeCentim- csll LCD-Mumaje rem INCLUDE K4- M ACAPITUIO 33: (:OIS-~RL~CCION UN MICRUROBVTDE 555d p t a un eje33.5 NIVEL F~SICO. MOVILIDAD I iLa cstruct~iraque hemos clegido para nuestro iiiici-obot nos pemiitiI realizartnovimientos hacia delante, hacia trris, giro a la derecha, a la izquierda y sobre si mismo.N Ic un jug~etc 1en enconw,ir:undaria paraIichci o de uri 1 ! 1ntcs hay que ruedas, paraiiiie de S!pcr3ara fijar la