Elevador de Serviço Inteligente com Arduino para Operação de 4 Andares
Componentes e Materiais Necessários
- Arduino Mega 2560 × 1
- Chave Fim de Curso Micro OpenBuilds × 4
Sobre este Projeto
Projeto e teste de um sistema de controle para um elevador de serviço operando em quatro andares. O microcontrolador (ATMega2560) determina qual contator deve ser energizado para acionar o motor do elevador, movendo-o para cima ou para baixo, verificando o andar atual. O sistema também deve cortar a energia do elevador quando atingir o andar desejado. Um fator de segurança integral garante que a porta do elevador esteja sempre fechada antes de mover-se para cima ou para baixo. O sistema de controle determina com sucesso qual contator energizar para mover o elevador ao andar desejado, controlando o motor da porta de segurança para fechá-la quando o elevador precisa mover-se e abri-la automaticamente ao atingir o andar requerido.
Vídeo de Demonstração
Vídeo demonstrativo do funcionamento do elevador.
1.1 Fiação do Motor Trifásico
Um motor trifásico é usado nesta aplicação, pois requer um motor potente capaz de lidar com cargas pesadas. O motor é alimentado pela rede trifásica principal. A energia passa por dois contatores principais. Quando o primeiro contator é ligado e o segundo desligado, a energia passa pelo primeiro contator para o enrolamento do motor, movendo-o na direção forward (subida).
Quando o segundo contator é ligado e o primeiro desligado, a energia passa pelo segundo contator para o enrolamento do motor, movendo-o na direção backward (descida). Note que a fiação é diferente para a direção reversa.
1.2 Detecção de Andar
Para detectar o andar onde o elevador se encontra, utiliza-se uma chave fim de curso (limit switch). À medida que o elevador sobe ou desce, ele abre e fecha uma chave fim de curso em cada andar. Quando o elevador está em um andar específico, a chave desse andar fica fechada, indicando ao microcontrolador a posição atual. Conforme o elevador se move, a chave abre, indicando movimento.
A transição de sinal baixo para alto produzida pela chave fim de curso quando o elevador passa por um andar ocorre em fração de segundo, muitas vezes rápida demais para ser detectada pelo microcontrolador. As chaves são conectadas a uma fonte 5V CC e a saída do terminal NA (Normalmente Aberto) conectada a um pino de I/O do microcontrolador. Quatro chaves nos quatro andares enviam dados ao microcontrolador, permitindo determinar o andar verificando qual pino transitou de baixo para alto.
O desafio é fazer o microcontrolador detectar a transição de baixo para alto. Existem dois métodos: verificar se um pino da chave vai HIGH dentro da função loop() usando um if (consumindo muita memória e podendo perder a transição), ou usar Interrupções (Interrupts). As interrupções pausam a execução do código e executam uma função separada quando uma condição específica é satisfeita — ideal para operação do elevador. Quando um pino da chave vai de low para high, uma função de interrupção (ISR) é executada, verificando se o elevador está no andar atual e parando-o ou permitindo prosseguir. Como o programa é forçado a executar a ISR quando a chave é acionada, garante-se que não haja perda de detecção. O Arduino Mega 2560 possui 6 pinos digitais utilizáveis para interrupções, ideal para os quatro andares.
O diagrama mostra as chaves conectadas ao MCU via resistores pull-down. Este resistor puxa o pino do MCU para terra, garantindo leitura LOW quando a chave está aberta.
1.3 Controle de Subida e Descida do Motor
Dois relés 12V CC são usados para comutar a alimentação CA aos contatores do motor, controlando sua direção (Subida ou Descida). O circuito projetado no Multisim é mostrado abaixo:
Uma extremidade da bobina de ambos os relés é conectada à fonte 12V CC através de um transistor PNP. O objetivo é garantir que o motor não receba energia até que a porta do elevador esteja fechada. Uma vez fechada, o pino de saída DoorSwitch no gate do transistor PNP é puxado para terra, ligando o PNP e fornecendo VCC a ambos os relés. A outra extremidade da bobina é puxada para terra através de um transistor NPN. O sinal MotorUp gerado pelo MCU, quando HIGH, ativa o primeiro NPN, puxando o outro contato da bobina para terra e completando o circuito para energizar o relé de subida. O mesmo método ativa o relé de descida.
Motivos para usar transistores no chaveamento dos relés:
- Ambos relés têm bobinas 12V CC, necessitando transistor PNP para chavear o lado alto (12V), pois o MCU só fornece 5V, insuficiente para ligar a bobina.
- Transistores permitem chavear o relé usando corrente mínima do MCU (pouca corrente na base ativa o transistor), economizando energia.
- Isolam o MCU de correntes de retorno que poderiam fluir de volta ao pino do MCU, potencialmente danificando-o.
1.3.1 Diodo Flyback para Proteção Adicional
Um diodo flyback é instalado nos contatos da bobina do relé para garantir que a corrente de retorno tenha um caminho ao ligar/desligar a bobina. Cargas indutivas como a bobina do relé criam picos de tensão súbitos quando a corrente é interrompida abruptamente, adicionando proteção extra ao MCU.
1.3.2 Controle de Entrada do Usuário
O usuário controla o elevador através de botões de andar. Existem quatro botões pulsadores; quando pressionados, indicam ao microcontrolador que o elevador deve ir ao andar desejado.
Um botão pressionado momentaneamente cria um sinal HIGH e depois LOW ao soltar. A tarefa do microcontrolador é identificar o sinal HIGH do botão pressionado. Esta tarefa não precisa ser tratada por interrupção; desde que o usuário pressione por tempo suficiente, o MCU registra o sinal. A próxima tarefa é avaliar se deve ligar o motor de subida ou descida baseado na entrada do usuário e no andar atual.
Com programação inteligente via microcontroladores, eliminamos hardware adicional que seria necessário em um sistema puramente lógico/analógico. O sistema anterior exigia uma chave seletora de direção (mostrada abaixo) para identificar se o elevador subia ou descia.
Projetando um algoritmo que armazena o andar atual em uma variável e compara com a entrada do usuário, eliminamos completamente as chaves seletoras. Exemplo: O elevador indica ao MCU que está no 2º andar (Pino 3). O usuário pressiona o botão do 4º andar. O MCU compara: entrada do usuário "4" > andar atual "2" → envia sinal pelo pino MotorUp para ativar o transistor e energizar o relé de subida.
À medida que o elevador sobe, a variável current_floor é atualizada ao chegar ao 3º andar. Quando uma chave fim de curso é acionada, compara-se com o valor de entrada do usuário ("4") e novamente com o andar atual atualizado para determinar se chegou ao andar desejado. Ao acionar a chave do 4º andar, o MCU identifica a chegada e envia sinal LOW pelo pino MotorUp para cortar a energia do motor.
1.3.3 Isolamento do Controle das Entradas
Outro fator importante é isolar o lado de controle CC do microcontrolador de interferências CA que poderiam afetar o MCU através das entradas do sistema. Inicialmente, sem hardware de isolamento, interferência CA originada do corpo metálico do elevador era transferida ao MCU pelas chaves fim de curso. Mesmo operando em fonte CC separada, as entradas das chaves iam direto ao MCU; a interferência ocorria quando o elevador movia-se, impedindo a correta identificação do andar. Para resolver, usou-se um optoacoplador para cada entrada, isolando o MCU de interferências externas.
O optoacoplador transfere o sinal gerado pela chave fim de curso ao MCU via LED e fototransistor. Quando a chave fecha, o LED acende e a luz ativa o gate do fototransistor, transferindo sinal HIGH ao MCU, isolando com sucesso a entrada externa do MCU.
1.4 Protótipo
Processo de manufatura
- Elevadores: Design, História e Inovações Futuras
- Construa um Spybot Controlado por Bluetooth com Arduino
- FlickMote: Controle Remoto IR por Gestos para Casa Inteligente
- DIY Arduino TV B-Gone: Controle Remoto Universal para Todas as TVs
- Construa um Relógio Mestre LED Personalizado com Alarme – Visível a 12 Metros
- Find Me: Localizador Inteligente de Objetos com Arduino e Bluetooth
- Soluções de Energia Otimizadas para Projetos Arduino
- Jogo da Velha com Arduino, Matriz LED MAX7219 e Caixa de Papelão
- Construa um Robô Quadrúpede Inteligente com Arduino: Guia Passo a Passo
- Registrador de Dados de Balão Meteorológico Arduino de Alto Desempenho