Documentos de Académico
Documentos de Profesional
Documentos de Cultura
pasinporlarobticaenArgentina
[PRINCIPAL][NOSOTROS][ACTIVIDAD][NOTICIAS][ARTICULOS][GALERIA][ENLACES][CONTACTO]
DesarrolladoresdeRobots:
Ungrupodondepodemosconversardelostemasquenosinteresan
Ingresatudireccindecorreoelectrnicoypulsaenter
DesarrolladoresdeRobotsfuncionaenGruposYahoo! ar.groups.yahoo.com
ServosdemodelismooRC
ControldeunservoPrueba01:Controlbsico
porEduardoJ.Carletti
Estaeslaprimeradeungrupodepruebasdelaboratorioenlasque,partiendo
desdecero,implementaremoselcontroldeservosdemodelismopormediode
un microcontrolador PIC. El microcontrolador elegido es el PIC16F628A, que
tiene una distribucin de patas igual a las del histrico y archiconocido
PIC16F84A, aunque con mejores prestaciones. Las razones de elegir este PIC
para las pruebas de aprendizaje en lugar del PIC16F84A las he desarrollado en
el artculo Prueba de conexin serie entre un PIC y una PC y no tiene
sentidorepetirlasaqu.
AlosservosdemodelismotambinselesllamaservosRC(porRadio Control)
o, en ingls, RC servos. En estas pruebas utilizaremos el servo HS311 de
Hitec, que se consigue en Argentina a mejor precio que otros similares de
Futaba,porejemplo. Servoutilizado:Hitec
HS311
La forma de controlar el posicionamiento de este tipo de servos es bastante
sencilla,ycomoyalahemosdescriptoendetalleenelartculo Servos,Caractersticas bsicas, no
voy a extenderme aqu. A aquellos que an no han profundizado en el mtodo que se utiliza para
controlarlosservosdemodelismoquetienemuchoqueverconlascaractersticasdelradiocontrol
lesrecomiendodarunaojeadaa esteartculoantesdeseguir.
Acontinuacinsepuedeobservarelprimercircuitoquevamosautilizar:
PrimerapruebadecontroldeunservoRC
http://robotsargentina.com.ar/Prueba_ServoRC01.htm 1/6
1/4/2017 MotoresControldeunservoPrueba01:ControlbsicoRobotsArgentina
valor positivo, o valor lgico 1, las entradas del PIC que se utilizan para "leer" los pulsadores. Los
pulsadoresllevanestenivelalgico0,otierra,cuandoselospresiona.
MontajedelcircuitobsicodecontroldeunservoRC
Comoseveenlafoto,alservolehemoscolocadouncrculodecartulinaconunalneanegraquenos
servircomoindicadordesuposicin.Lostrespulsadoresqueseobservanenlafotocorresponden,de
izquierda a derecha, a "pulsador 1", "pulsador 2" y "pulsador 3" en el circuito. El pulsador 1 servir
parallevaralservoasuposicincentral,o"neutra".Conelpulsador2seharavanzarlentamente al
servoensentidoantihorario,yconelpulsador3selohargirar,deapoco,ensentidohorario.
Este circuito, y el programa asociado en el PIC, no cumplen otro propsito que el de dar una primera
aproximacin al mtodo de programa utilizado para controlar a este tipo de servos. En las pruebas
siguientesiremosavanzandohastallegaraunasofisticacinyutilidadmuchomayor.
ProgramabsicodecontroldeservosRC
;**********************************************************************
;MANEJODESERVOSProgramaBsico1
;PorEduardoJ.Carletti,RobotsArgentina,2007
;**********************************************************************
listp=16F628A ;definirprocesador
#include<p16F628A.inc> ;definicionesdevariablesespecficasdelprocesador
ERRORLEVEL1;302 ;paraevitarlosmensajesdecambiode
;bancoenelresultadodelcompilador
__CONFIG_CP_OFF&_WDT_OFF&_LVP_OFF&_PWRTE_ON&_INTRC_OSC_NOCLKOUT&_MCLRE_OFF
;*****DEFINICINDELNOMBREDEENTRADASYSALIDAS
;*****VARIABLES
CBLOCK 0x20
http://robotsargentina.com.ar/Prueba_ServoRC01.htm 2/6
1/4/2017 MotoresControldeunservoPrueba01:ControlbsicoRobotsArgentina
acum_A ;variablemomentnea
Posic ;posicinservo
ENDC
;***********************************************************************************
org 0x000
goto principal
;***********************************************************************************
;Principal
;***********************************************************************************
principal
movlwb'00000111' ;deshabilitacomparadores.Estoes
movwfCMCON ;algoimportanteenelPIC16F628A
clrfPORTA ;iniciaports
clrfPORTB ;iniciaports
bsfSTATUS,RP0 ;Apuntaabanco1
movlwb'00001110' ;PORTA
movwf TRISA ;salidasmenos1,2y3,entradas
MOVLWb'00000000' ;PORTB
movwf TRISB ;salidas
bcfSTATUS,RP0;Apuntaabanco0
clrfTMR0 ;iniciaregistrodetimeren0
movlwd'133' ;iniciavalordeposicindeservo(centro)
movwfPosic
;***********************************************************************************
;Lazoprincipal
;***********************************************************************************
lazo
;Losservosactanconunpulsodecontrolquevaentre0,5msy2,5ms.
;Enelbloquequesigueseiniciaen1elpulsodecontrolyseesperaun
;retardofijodeaproximadamente0,5ms,queeselvalormnimodelpulso.
;Conestevalordelongituddepulsoyunalongitudceroenlapartevariable,
;elservoestparadoalmximohacialaizquierda(sentidoantihorario).
;Acontinuacin,comienzaeltiempovariabledelpulso.Estopermite
;queelrecorridocompleto,de180grados(valoresdepulsoentre0,5ms
;y2,5ms),sedividaen256segmentos(256*8us=2,048ms).
;Lapartevariabledelpulsodecontrolvaraentre0y2ms
http://robotsargentina.com.ar/Prueba_ServoRC01.htm 3/6
1/4/2017 MotoresControldeunservoPrueba01:ControlbsicoRobotsArgentina
;Retardode20ms,queeseltiempoestndarquedebesepararlospulsos
;decontrolparalosservoscomunesdeRC
pulsadores ;leerdenesatravsdepulsadores
btfss PULSADOR1
gotoiniciaPos ;servoenposicincentral
btfss PULSADOR2
gotoincPos ;incrementaPosic
btfss PULSADOR3
gotodecPos ;decrementaPosic
gotolazo
END
Bajarelprogramaenformato ASM(puedeusarelbotnderechodesumouse)
Bajarelprogramaenformato HEX(puedeusarelbotnderechodesumouse)
Porlasdudas,elarchivoincluido P16f628a.inc(puedeusarelbotnderechodesumouse)
DiagramadeflujodelprogramadecontroldeunservoRC
http://robotsargentina.com.ar/Prueba_ServoRC01.htm 4/6
1/4/2017 MotoresControldeunservoPrueba01:ControlbsicoRobotsArgentina
Esperoqueenesteprogramasepuedaverconclaridadlamaneradegenerarelpulsoconlostiempos
correctos.Dehecho,lohemosescritolomssimpleposibleporestarazn.Perolaverdadesqueesta
forma de hacerlo tiene el defecto de que mientras se producen los retardos, el microcontrolador est
enunlazocerrado,dedicadoexclusivamenteaesperarquesecumplanlostiempos.
Cmo se soluciona esto? Haciendo que los retardos se produzcan mientras el microcontrolador est
haciendo otra cosa. Y para hacer esto se debe utilizar una de las herramientas ms potentes y
necesarias en un sistema que debe ser sensible a sucesos producidos en el mundo real: las
interrupciones.
Losinvito,entonces,acontinuarestapruebadelaboratorioenlasegundapartedeestetrabajo:
Controldeservosconinterrupciones.
Algunascosasqueobservenlaparte1
Datosadicionales:
MicrocontroladorPIC16F628A
El PIC16F628Asepuedecompraren Cika,dondecuestaus$3.
ServodemodelismooRC
Utilizamos el servo Hitec HS311 porque era el ms barato disponible en ese tipo al momento de
encararelproyecto.Sepuedeconseguiren Mirax,dondecuestamsomenosus$11.
Recomendamosver,paracompletarestainformacin>Servos,Caractersticasbsicas
2007,2017RobotsArgentinaContacto:ecarletti@ituzaingo.org
http://robotsargentina.com.ar/Prueba_ServoRC01.htm 6/6