Escolar Documentos
Profissional Documentos
Cultura Documentos
Controle em Malha Fechada Da Velocidade de Um Motor DC Utilizando Um Microcontrolador 8051 PDF
Controle em Malha Fechada Da Velocidade de Um Motor DC Utilizando Um Microcontrolador 8051 PDF
UMMICROCONTROLADOR8051
RaphaelRochaCoelhoAcadmico,CleitonMoyadeAlmeidaAcadmico,Vincius
BerndsenPeccinAcadmico
DepartamentodeAutomaoeSistemasUniversidadeFederaldeSantaCatarina
ProgramadeEducaoTutorialdaEngenhariaEltricaUniversidadeFederaldeSanta
Catarina
Resumo
Introduo
Osmotoresdecorrentecontnuasolargamenteutilizadosnaindstriaparaacionamento
deequipamentosdepequenoporte,ondesonecessriasprecisodevelocidade.Existem
CI's controladores para esses motores; porm, optouse em criar um sistema capaz de
controlar a velocidade com uma interface diferenciada, podendo o operador alterar
parmetrosduranteofuncionamento.
1.VisoGeraldoProjeto
Nesteprojetoimplementadoumcontroladordavelocidadedemotordecorrentecontnua.
Foi utilizado um microcontrolador da famlia 8051, em especfico o modelo AT89S8252.
Essecontrolefeitoemmalhafechada.Anexoaoeixodomotorfoiimplementadoumdisco
seccionado de forma a obter diferentes sinais pticos, utilizados para clculo de
realimentaodosistema.
Ousurioforneceovalordesejadodavelocidadeemrpm(rotaesporminuto)atravsde
uma interface num computador. Esse transferido por uma porta serial ao
microcontrolador.Duranteofuncionamento,osistemacaptaossinaispticosgeradospelo
sensor.Essessinaissotratadosporumarotinadecontroleprogramadano8051eos
resultadosenviadosviaserialparaosoftwaredeinterface.
2.ControledevelocidadedeummotorDCcomoMicrocontrolador8051
Oprogramadecontroledevelocidadedomotordecorrentecontnuadivididoemcinco
partesprincipais:
Definiesdevariveis,constanteseparmetrosdecontrole
ConfiguraesIniciais
ProgramaPrincipal
Interrupes
Subrotinas
2.0.Definiesdevariveis,constanteseparmetrosdecontrole
Almdasvariveiseconstantes,utilizamosparmetrosdeincrementododutycicleefaixas
devaloresdevelocidade.
2.1.ConfiguraesIniciais
Nestaseosoconfiguradosos3timerseacomunicaoserialdedados.
Timer0:Configuradoemmodo2paraexecuodocontrolePWM,explicadonaseo4.1
Timer1:Utilizadoemmodo1paracomunicaodaportaserial,analisadonaseo4.2
Timer2:Configuradocomocontadordossinaispticos.Atravsdestecontadorpodese
calcularavelocidadeatualdomotor.
2.2.ProgramaPrincipal
Elaboradoparaqueacada200msomicrocontroladorenvieavelocidadeatualdomotor
para a interface e execute a rotina de controle. Esse envio determinado por um flag
auxiliar,ativadoquandoocorreumainterrupodotimer0esetadoemVccaalimentao
domotor.
2.3.Interrupes
2.3.1Interrupodotimer0
GeraosinalPWMnaportaP2.1paraoacionamentodoMotordeacordocomodutycicle
especificadopelocontrole.
2.3.2Interrupodaserial
Ainstruoderecepodedadoschamadaeavelocidadedesejada
armazenadanavarivelVEL_SET.Apsissoenviadoumdadoparaaconfirmaode
recebimento.
2.4.Subrotinas
2.4.1ConfiguraodoPWM
OvalordodutyciclecarregadonoregistradorR7esubtradode0FFh.Oresultado
inseridoemTL0.EletambmovalorcorrespondenteaointervalodetempoemTlow,na
interrupodotimer0.
2.4.2ControledaVelocidade
Analisaavelocidadeatualdomotor(VEL_ATUAL)eincrementaoudecrementao
dutycyle(DUTY),deacordocomavelocidadesetada(VEL_SET)pelaserialeasfaixasde
velocidadesdantesdefinidas.
2.4.3SerialTX
Enviaumdadoqualquerpelaserial.OdadodeveestarcolocadonoAcumulador.
2.4.4SerialRX
Recebeumdadoqualquerpelaserial.OdadocolocadonoAcumulador.
3.ConhecimentoNecessrio
3.1.NoesdeControlePWM
denominadaDUTYCYCLE(razocclica),
eatravsdelapodemossaberavelocidadeaplicadaaomotor.
Fig.1SinalPWM
OPWMutilizadoemreguladoresdetensoeficientes.Pelochaveamentodetensona
carga,comarazocclicaapropriada,asadaseaproximardonveldetensodesejado.O
rippledatensochaveadanormalmentefiltradocomumindutoreumcapacitor.
3.2.DriverparaMotorDCeSensorptico
3.3.CdigoFonte
;***********************************************************************
;*UniversidadeFederaldeSantaCatarina(UFSC)
;*CentroTecnolgico(CTC)
;*DepartamentodeAutomaoeSistemas(DAS)
;*ProgramadeEducaoTutorialdaEngenhariaEltrica(PETEEL)
;*
;*
*
;*=====================================
;*CONTROLEEMMALHAFECHADADAVELOCIDADEDEUMMOTORDC
;*UTILIZANDOUMMICROCONTROLADOR8051
;*=====================================
*
;*
*
***********************************************************************
;==================================
;0.VARIVEISECONSTANTES
;==================================
PERIODO
equ030h
PERIODO1
equ031h
FLAG_VEL
equ032h
DUTY
equr0;(00hFFh)
VEL_SET
equr1;ndepulsos/200ms
VEL_ATUAL
equr2;ndepulsos/200ms
MODULO
equr3;|VEL_ATUALVEL_SET|
INCREM
equr4
SINAL_MOD
equf0
FLAG1
equ0D1h
;0.1Parmetrosdecontrole
;~~~~~~~~~~~~~~~~~~~~~~~~~~
VALOR_1equ03h;Valoresdasfaixasdevelocidade
VALOR_2equ07h
VALOR_3equ15h
INCREM_1equ3;Incremento(+ou)doDutyCycle
INCREM_2equ6
INCREM_3equ9
org00h
jmpINICIO
org0Bh
jmpTIMER0
org23h
jmpINT_SERIAL
;==================================
;1.CONFIGURAESINICIAIS
;==================================
org30h
INICIO:
movDUTY,#00h
movFLAG_VEL,#00h
movVEL_SET,#00h
movVEL_ATUAL,#00h
;1.1CONFIGURAESPWM(TIMER0)
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
movtmod,#00100010b;SetaoTimer0eoTimer1noModo2
callPWM_CONF
setbea;HabilitaInterrupes
setbet0;HabilitaInterrupodoTimer0
setbtr0;DisparaoTimer0
;1.2CONFIGURAESSERIAL(TIMER1)
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
movth1,#11111101b;Cargainicialparaumbaudratede9600bps
movscon,#01010000b;SerialnoModo1,recepohabilitada
movtl1,TH1;
setbtr1;InciodacontagemdoTimer1
setbie.4;HabilitaainterrupodoTimer1
movPERIODO1,#02h
mova,#'Z'
callSERIAL_TX
;1.3CONFIGURAESDOCONTADORDEFAIXAS(TIMER2)
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mov0C9h,#01h
mov0C8h,#00001111b
;==================================
;2.PROGRAMAPRINCIPAL
;==================================
LOOP:
mova,FLAG_VEL
jnzENVIA_SERIAL
jmpLOOP
ENVIA_SERIAL:
movFLAG_VEL,#00h
mova,PERIODO
deca
movPERIODO,a
jnzLOOP
movPERIODO,#0A5h
mova,PERIODO1;Esperaumnmerodeinterrupes
deca
movPERIODO1,a
jnzLOOP
movPERIODO1,#4;Correspondentea200ms
mova,0CCh
movVEL_ATUAL,a
callSERIAL_TX;Escreveonmerodeciclosnaserial
mov0CCh,#00h;0CCh=T2
callCONTROLE
jmpLOOP
;=================================
;3.TRATADORESDEINTERRUPES
;=================================
;3.1TRATADORDOTIMER0
;~~~~~~~~~~~~~~~~~~~~~~~~
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;DESCRIO:GeraosinalPWMparaoacionamentodoMotor
;ENTRADA:dutycycle(DUTY)Escala:0FF
;SADA:SinalPWMemP1.2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIMER0:
clrea
jbFLAG1,THIGH;F0:0>TLOW;1>THIGH
TLOW:
setbFLAG1
setbp1.2;VccemP1.2(ativobaixo)
clrtf0
setbea
movtl0,r7;ColocaemTL0R7=256duty
reti
THIGH:
movFLAG_VEL,#0ffh
clrp1.2;0VemP1.2(ativobaixo)
clrFLAG1
mova,#0FFh;255
clrc
subba,r7
clrc
subba,#5
SAI:clrtf0
setbea
movtl0,a
reti
;3.2TRATADORDASERIAL
;~~~~~~~~~~~~~~~~~~~~~~~
INT_SERIAL:
clrea
callSERIAL_RX
movVEL_SET,a
callSERIAL_TX
setbea
clrri
reti
;=================================
;4.SUBROTINAS
;=================================
;4.1CONFIGURAODOPWM
;~~~~~~~~~~~~~~~~~~~~~~~
PWM_CONF:
mova,DUTY
jnzPULA
mova,#01h
PULA:
movr7,a
;CarregaodutycycleemR7
mova,#0FFh;255
clrc
subba,r7
movtl0,a
ret
;4.2CONTROLEDAVELOCIDADE
;~~~~~~~~~~~~~~~~~~~~~~~~~~
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;DESCRIO:Analisaavelocidadeatualdomotor(VEL_ATUAL)
;eincrementaoudecrementaodutycyle(DUTY),deacordo
;comavelocidadesetada(VEL_SET)pela
serial.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CONTROLE:
clrSINAL_MOD
mova,VEL_ATUAL;Calculaomdulodadiferenadasvelocidades
subba,VEL_SET
jncPOSITIVO
setbSINAL_MOD;SeVEL_SET>VEL_ATUAL=>SetaoflagSINAL_MOD
clrC;ClearCY
mova,VEL_SET
subba,VEL_ATUAL
POSITIVO:
movMODULO,a
cjneMODULO,#VALOR_1,DIF_1;
jmpFIM2;MODULO=VALOR_1
DIF_1:
jncMAIOR_1;MODULO>VALOR_1
jmpFIM;MODULO<VALOR_1
MAIOR_1:
cjneMODULO,#VALOR_2,DIF_2
movINCREM,#INCREM_1
jmpFIM
DIF_2:
jncMAIOR_2
movINCREM,#INCREM_1
jmpFIM
MAIOR_2:
cjneMODULO,#VALOR_3,DIF_3
movINCREM,#INCREM_2
jmpFIM
DIF_3:
jncMAIOR_3
movINCREM,#INCREM_2
jmpFIM
MAIOR_3:
movINCREM,#INCREM_3
FIM:mova,DUTY;IncrementaoudecrementaoDutyCycle
jnbSINAL_MOD,DECREM
adda,INCREM
jncSAIDA
mova,#0FAh
jmpSAIDA
DECREM:
subba,INCREM
jncSAIDA
mova,#05h
SAIDA:
movDUTY,a
callPWM_CONF
FIM2:ret
;4.3SERIALTX
;~~~~~~~~~~~~~
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;DESCRIO:Enviaumdadoqualquerpelaserial
;OdadodeveestarcolocadonoAcumulador
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SERIAL_TX:
clrea
movsbuf,a
jnbti,$
clrti
setbea
ret
;4.4SERIALRX
;~~~~~~~~~~~~~
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;DESCRIO:Recebeumdadoqualquerpelaserial;
;OdadocolocadonoAcumulador;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SERIAL_RX:jnbri,$
mova,sbuf
clrri
ret
end
MANUALDOUSURIO
CONTROLEEMMALHAFECHADADAVELOCIDADEDEUMMOTORDCUTILIZANDO
UMMICROCONTROLADOR8051
DescrioGeraldoPrograma
OProgramadeControledevelocidadedemotordecorrentecontnuatemumainterface
amigvelcomousurio,noqualsoespecificadososparmetroseporondepossvel
acompanharocomportamentodocontrole.Observenafiguraemanexooquerepresenta
cadacampo.
Ousurioforneceovalordesejadodavelocidadeemrpm(rotaesporminuto)atravsde
umbotolocalizadodireitainferiordainterfacedoprograma.Essedadotransferidopor
umaportaserialaomicrocontrolador.Duranteofuncionamento,osistemacaptaossinais
pticosgeradospelosensor.Essessinaissotratadosporumarotinadecontrole
programadano8051eosresultadosenviadosviaserialparaosoftwaredeinterface.
UtilizandooPrograma
Passo1
Conecteocaboserialdocontroladoremumcomputador.Aps,conecteafontedaplacana
redeeltrica.
Passo2
InicieosoftwareeacioneobotoBoolean.
Passo3
Especifiqueovalor(emrpm)davelocidadedesejada.PressioneobotoAtualizar.
Ovalordavelocidadeatualmostradanovelocmetro,enquantoqueocomportamentoda
velocidadeemfunodotempovisualizadonateladegrfico.
Passo4
Seousuriodesejaralteraravelocidade,bastaselecionarumnovovalorepressionaro
botoAtualizar,semanecessidadedepararomotor.
Passo5
Quandohouvernecessidadededesligamento,seteavelocidadeemzeroepressioneo
botoAtualizareobotoBoolean.
Parmetrosda
comunicaoserial
Botohabilita
leitura Dadosrecebidos
pelaserial
Nmerodebytes
recebidos
Comportamento
daVelocidade
EnviaVelocidadeSetada
Velocidade
setadaemhex
FatordeMultiplicao
paraclculode
velocidade
Indicadorde
velocidadeatual
emRPM
Iniciar
;*RaphaelRochaCoelho
coelholds@gmail.com
;*CleitonMoyadeAlmeida
cleitonmoya@yahoo.com.br
AjusteVelocidade
Desejadaemrpm
;*ViniciusBerndsenPeccin
vinicius.peccin@gmail.com