Este documento descreve um projeto de um elevador didático de 5 andares desenvolvido para fins educacionais. O elevador funciona usando um CPLD e lógica programável para controlar os movimentos e paradas em cada andar de acordo com os botões pressionados. O código VHDL implementa uma máquina de estados finitos para controlar o funcionamento do elevador.
Unidade 111 estrutura de dados e lógica de programação - com respostas 15-0...
Elevador didático de 5 andares
1. 20/04/12 Elevador Didático de 5 andares
pesquisar...
Home Objetivos Exemplos de Aplicação KITS Tutoriais Softwares
Fórum Trabalhe Conosco
Home Exemplos de Aplicação Exemplos Didáticos Elevador Didático de 5 andares
Elevador Didático de 5 andares
APOIO Andre Vinicius Rocha Silva
Projeto Elevador
Este projeto trata de um elevador didático de 5 andares, e o que motivou a escolha
pelo desenvolvimento de um elevador foi a possibilidade de utilizá-lo com diversos
circuitos e lógicas de controle, fazendo com que se possa realizar desde aplicações
utilizando lógicas simples, até controles complexos que, além da lógica de
funcionamento normal, consideram questões de segurança.
O Hardware do elevador utilizado neste projeto foi desenvolvido em parceria com
ONLINE alunos do curso de técnólogo em mecatrônica do Instituto Federal de Santa Catarina,
na disciplina de projeto integrador, com o intuito de auxiliar no ensino de diversas
Nós temos 16
disciplinas como sistemas digitais, circuitos combinacionais e outras diversas
visitantes e 2
disciplinas na área.
membros online
marcos
carolwestphal
LINKS
CNPq
SBMicro
IFSC
NERsD
LOGIN
Nome de Usuário
Senha
Lembrar-me
ENTRAR Figura 1: Elevador
Esqueceu sua
senha? Como foi mencionado muitos são os hardwares de controle que poderiam ser
Esqueceu seu nome utilizados, sejam um Microcontrolador, um CLP, um circuito de lógica discreta, etc.
de usuário?
Neste artigo iremos apresentar o desenvolvimento de um hardware de controle,
Registrar-se utilizando o lógica programável. O hardware que será utilizado é o kit de
desenvolvimento CPLD_7064 que possui um CPLD modelo EPM7064SLC44-10,
da ALTERA. O projeto foi desenvolvido para funcionar como um elevador de carga, e
PARCEIROS pensado de modo a ser extremamente didático. Seu funcionamento será descrito a
seguir.
Funcionamento
fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html 1/12
2. 20/04/12 Elevador Didático de 5 andares
Botões e Sensores
Para começar definimos que todos o Botões e Sensores por padrão estão inicialmente
em nível lógico "ZERO", para garantir esta condição todos os botões estão ligados a
terra por um resistor de "pull down", desta forma quando pressionamos um botão este
ficará com nível lógico "UM", no PLD os botões são representado por uma entrada
de 5 bits.
A figura abaixo apresenta o dado que o PLD recebe quando o botão de um andar é
pressionado, como pode ser observado o bit correspondente ao botão vai para "1".
Figura 2: Ilustração do sistema de botões
Os sensores de andares, como já foi mencionado, obedecem a mesma lógica dos
botões, por padrão estão em "ZERO" e se acionadas vão para "1", a figura abaixo
apresenta os valores recebidos pelo PLD quando o elevador passa ou está em um
andar, neste momento o bit correspondente ao andar apresenta o valor “1”
Figura 3: Ilustração do sistema de sensor.
Além dos sensores de andar outro sensor representa o estado da porta, foi definido
que quando a porta está fechada o sensor fica em "ZERO" e quando ela esta aberta o
sensor fica em "1", como pode ser observado na figura abaixo.
Figura 4: Ilustração do funcionamento da trava da porta.
Motor e Travamento da Porta
fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html 2/12
3. 20/04/12 Elevador Didático de 5 andares
Os sinais de saída do PLD são o comando do motor e o travamento da porta.
O motor utilizado neste exemplo é um motor DC simples e seu comando se restringe
a uma palavra de dois bits:
Saída de controle para o motor Ação no Elevador
00 Elevador Parado
01 Elevador Sobe
10 Elevador Desce
Para aplicações mais complexas podem ser implementadas técnicas de soft-start e
soft-stop de modo a tornar a aplicação mais proxima ainda da realidade.
O comando de travamento da porta é de 1 bit, se o bit está "setado", ou seja, em nível
lógico "1" a porta está travada, senão a porta pode ser aberta.
Lógica de Funcionamento
A Lógica de Funcionamento do elevador obedece uma maquina de estados que possui
cinco estados:
Espera: No inicio do processo a maquina de estado permanece em um estado de
espera para evitar que as transições de estado dos diversos componentes interligados
possam interferir na execução das tarefas.
Partida: Após o estado de ESPERA, caso o elevador não esteja localizado em
nenhum andar, ou seja, todos os sensores em “ZERO”, o elevador deverá tentar um
movimento de descida, até atingir o andar mais próximo abaixo. Assim que a condição:
“posicionado sobre um andar” for atendida ele vai para a condição de PARADO;
Subindo: Enquanto o elevador sobe, pode ser chamado a outros andares, acima ou
abaixo de sua localização imediata. Ele permanecerá em seu movimento de subida,
até que o último andar solicitado acima dele seja atingido;
Parado:Quando o elevador, em movimento, chega a algum andar solicitado, ele para
por um intervalo de alguns segundos, e se não houver outro andar solicitado, ele
permanece parado no andar; Enquanto o elevador está parado, a porta pode ser
aberta, e o elevador não inicia qualquer movimento até que ela volte a ser fechada. Se
um botão de andar é pressionado, a solicitação é registrada, e o elevador começa um
movimento de subida ou de descida, em direção ao andar correspondente.
Descendo: Enquanto o elevador desce, pode ser chamado a outros andares, acima
ou abaixo de sua localização imediata. Ele permanecerá em seu movimento de
descida, até que o último andar solicitado abaixo dele seja atingido;
A Figura que representa a máquina de estados é apresentada a seguir:
Figura 5: Diagrama de estados da maquina de estados
fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html 3/12
4. 20/04/12 Elevador Didático de 5 andares
Registradores
Para o funcionamento da máquina de estados são necessários alguns registradores
que serão descritos na tabela abaixo.
Entrada de 5 bits associada aos botões de chamada do
Botoes[1..5] elevador a cada andar do “edifício”. O estado normal destas
entradas é '1', e vai a '0' quando o botão é pressionado.
Registrador de 5 bits que armazena a informação de chamada
Andar_Solicitado[1..5]
do elevador em cada um dos andares do “edifício”.
Entrada de 5 bits, associada aos sensores localizados em
Sensores[1..5] cada andar do “edifício”. Quando o elevador ativa um dos
sensores, leva a '0' a entrada correspondente.
Registrador de 5 bits, associado aos andares. Um dos bits
Ultimo_Andar[1..5] deverá ser feito '0' quando o elevador passar pelo andar
correspondente ao mesmo.
Entrada do sensor da porta do elevador, indica (quando em '1')
Porta_Fechada
que ela não está fechada.
Registro do sentido de movimento corrente do elevador ('1'
Sentido para subindo, e '0' para descendo), utilizado enquanto não
atende a todos os andares solicitados.
General Chat 3 5 People Here
Figura 6: Ilustração do registro de andares requisitados.
Andares Solicitados
Registrador que armazena os andares solicitados
Seu valor é atualizado utilizando um ou lógico com o valor do sensor dos botões
fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html 4/12
5. 20/04/12 Elevador Didático de 5 andares
Verificação de Andar Solicitado
É feito uma operação lógica e dos andares solicitados com os sensores de andar
Se o resultado for diferente de 0 o andar no qual o elevador se encontra foi
solicitado
Se for 0 não foi solicitado ou já foi atendido
Exemplo:
Verificação de Solicitação de Andares Acima
É feito uma operação lógica e dos andares solicitados com o inverso do andar atual
Se o resultado for diferente de 0 existe andares solicitados acima
Se for 0 não existe
Exemplo:
Verificação de Solicitação de Andares Abaixo
É feito uma operação lógica e dos andares solicitados com
andar atual
Se o resultado for diferente de 0 existe andares solicitados abaixo
Se for 0 não existe
Exemplo:
fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html 5/12
6. 20/04/12 Elevador Didático de 5 andares
Máquina de estados
Funcionamento
PARTIDA
Se o elevador estiver em um andar qualquer, ele vai para o estado Parado.
Se o elevador estiver entre dois andares, ele desce até chegar a algum.
SUBINDO
O elevador sobe enquanto não chega no andar mais alto solicitado;
Quando o elevador chega no andar mais alto solicitado vai para o estado Parado.
PARADO
Quando o elevador chega a algum andar solicitado, para por um intervalo de 60
segundos. Ele permanecerá parado se a porta estiver aberta ou não houver andar
solicitado.
Se o andar solicitado:
For acima do atual e não há mais nenhum andar abaixo solicitado, então
assume o estado Subindo;
For abaixo, então assume o estado Descendo.
fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html 6/12
7. 20/04/12 Elevador Didático de 5 andares
DESCENDO
O elevador desce enquanto não passar por um andar solicitado.
Quando o elevador chega a algum andar solicitado ele vai para o estado Parado.
Visão Geral
O Código
O início do código, como todo o VHDL, começa com a entidade, onde são declarados
o clock, resetn, sensores e botões como entradas e o motor e a trava como saídas:
A arquitetura possui alguns sinais auxiliares: chamada, andar, pausa_andar e flag.
Chamada é responsavel por registrar os andares solicitados, andar registra o ultimo
andar, pausa_andar é responsavel por indicar se o tempo de pausa em um andar ja
acabou e a flag indica se o elevador estava descendo ou subindo. O signal
estado_elevador é a maquina de estados responsável pelo controle do código.
fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html 7/12
8. 20/04/12 Elevador Didático de 5 andares
O código possui três processos: o primeiro controla a os andares chamados e
atendidos, o segundo trata dos estados da maquina de estados e o ultimo processo é
responsável pela rotina de pausa em um andar.
O primeiro processo inicia verificando se o elevador está em algum andar, caso sim
ele atribui esse andar a variável andar. Em seguida, se algum botão foi pressionado
então registra-se um chamado. O passo seguinte é, caso a maquina de estados
esteja no estado parado, sinalizar que o andar atual ja foi atendido. No final do
processo atribui-se o valor da variável andar_chamado para o signal chamado.
O segundo processo é responsavel pelo controle da máquina de estados. Quando o
reset é pressionado a maquina de estados vai para o estado espera. Na operação
normal do elevador, quando está no estado espera passa para partida e sai do estado
partida quando encontra o primeiro andar abaixo dele.
Quando o elevador está no estado subindo ele precia identificar qual o andar solicitado
mais alto, andar onde irá parar. Para isso implementou-se o conjunto de testes
presentes nesse trexo do código. O primeiro conjunto de if-else é responsavel por
identificar qual o andar mais alto solicitado, e os ifs dentro deles são responsável por
identificar se o andar atual é o mais alto.
fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html 8/12
9. 20/04/12 Elevador Didático de 5 andares
No estado descendo o elevador deve parar en todos os andares solicitaods e, de
forma análoga ao estado de subida, precisa identificar o andar mais baixo solicitado
para que possa habilitar novamente a subida.
Quando o elevador está no estado parado e a flag de pausa indica que o tempo
minimo de parada acabou, caso estava subindo e há um andar mais alto chamando
ele continua subindo. Caso esteja no andar mais alto solicitado ou estava descendo e
há um andar mais baixo solicitado, então vai para o estado descendo.
fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html 9/12
10. 20/04/12 Elevador Didático de 5 andares
O terceiro processo faz uma contagem enquanto o elevador está no estado parado, de
forma que o elevador não vai para o proximo estado antes que a contagem acabe.
Por ultimo é feita uma atribuição de seleção para os valores do motor e uma para a
trava de porta
Simulação
Para a simulação do elevador será necessário emular as solicitações dos andares e o
posicionamento do elevador, ou seja, os sensores do elevador. Inicialmente se declara
os sinais da simulação:
Em seguida declara-se emula-se a o pressionamento do botão de reset e os pulsos
de clock:
O processo principal inicia com o pressionamento de um botão e o posicionamento do
elevador. Em seguida se emula a subida do elevador, pois o elevador está no estado
subindo e, em seguida, começa a descida, com a emulação do pressionamento de
alguns botões:
fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html 10/12
11. 20/04/12 Elevador Didático de 5 andares
As formas de ondas encontradas na simulação estão apresentadas abaixo:
Figura 7: Formas de onda da simulação.
Arquivos de Projeto
Elevador simples.zip
< Anterior Próximo >
Artigos Relacionados :
» Placa de Botões
Placa de Botões Figura 1 - Placa de Botões A placa de botões é um módulo muito útil
do conjunto de kits e pode ser empregada em diversas aplicações seja na
configuração de...
Read more...
» Controle de um Motor de Passo
fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html 11/12