Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Arduino Powered Service Elevator

Componentes e suprimentos

Arduino Mega 2560
× 1
Chave de micro limite OpenBuilds
× 4

Sobre este projeto


Projete e teste um sistema de controle para um elevador de serviço operando em quatro andares. O microcontrolador (ATMega2560) é usado para determinar em qual contator fornecer energia a fim de ativar o motor do elevador para mover o elevador para cima ou para baixo, verificando o piso em que o elevador está atualmente. O sistema de controle também deve ser capaz de interromper a alimentação do elevador quando ele atingir o piso necessário. Um fator de segurança integral deve ser implementado para sempre fechar a porta do elevador antes de subir ou descer. O sistema de controle é capaz de determinar com sucesso qual contator precisa ser alimentado para mover o elevador até o andar desejado. O sistema é capaz de controlar o motor da porta do elevador de segurança para fechar a porta quando o elevador precisar se mover e abrir a porta automaticamente quando ela atingir o andar desejado.





Vídeo de demonstração:





1.1 Fiação do motor trifásico


Um motor trifásico é usado nesta aplicação, pois requer um motor potente que pode lidar com uma carga pesada. O motor trifásico é alimentado pela alimentação trifásica principal. A energia através do principal passa por dois contatores principais. Quando o primeiro contator é ligado e o segundo contator é desligado, a energia passa pelo primeiro contator para o enrolamento do motor que move o motor na direção para frente.

Quando o segundo contator é ligado e o primeiro contator é desligado, a energia passa pelo segundo contator para o enrolamento do motor que move o motor na direção para trás. Observe que a fiação é diferente para a direção reversa.





1.2 Detecção de piso


A fim de detectar o piso em que o elevador está atualmente, um interruptor de limite é usado. Conforme o elevador se move para cima ou para baixo, ele fecha e abre um interruptor de limite em cada andar. Quando o elevador está em um andar específico, o andar limite desse andar específico é fechado, indicando ao microcontrolador em que andar o elevador está. Conforme o elevador se move, o interruptor de limite abre, indicando ao microcontrolador que o elevador está se movendo.

A transição do sinal baixo para o alto produzido pelo interruptor de limite quando o elevador se move através de um piso acontece em uma fração de segundo e muitas vezes rápido demais para ser detectado pelo microcontrolador. Os interruptores de limite são conectados a uma fonte de 5 Vcc e a saída do terminal NO (normalmente aberto) é conectada a um pino IO do microcontrolador. Quatro interruptores de limite em quatro andares enviam dados para o microcontrolador. Isso permite que o microcontrolador determine em que andar o elevador está, verificando qual pino passou de baixo para cima. A transição do estado de uma chave fim de curso é mostrada no diagrama abaixo:

A tarefa complicada é permitir que o microcontrolador detecte a transição de baixo para alto. Existem dois métodos para abordar esse problema. O primeiro método é determinar se um pino da chave limitadora fica ALTO dentro da função de loop usando uma condição if. O programa essencialmente enquanto executa outro código sempre verifica se um pino fica ALTO. Isso ocupa muita memória, pois o programa está constantemente procurando por um sinal HIGH de um pino do interruptor de limite. Outro problema é que às vezes o programa pode perder essa transição, pois a função de loop estava executando algum outro código durante a transição. Para evitar esses problemas, são utilizadas interrupções. As interrupções pausam essencialmente a execução do código e executam uma função separada quando uma condição de interrupção específica é satisfeita. Isso é ideal para a operação de elevação. Quando um pino do interruptor de limite vai de baixo para alto, uma função de interrupção é executada e esta função verifica se o elevador está no andar atual e para o elevador ou permite que ele se mova mais. Uma vez que o programa é forçado a executar a função de interrupção quando um interruptor de limite é comutado, o sistema pode garantir que o programa não pule deliberadamente a detecção de um piso. O microcontrolador utilizado para esta aplicação é o Arduino Mega 2560 que possui 6 pinos digitais utilizáveis ​​para interrupções, ideal para os quatro andares. O primeiro parâmetro para attachInterrupt é um número de interrupção. Normalmente você deve usar digitalPinToInterrupt (pin) para traduzir o pino digital real para o número de interrupção específico. Por exemplo, se você se conectar ao pino 3, use digitalPinToInterrupt (3) como o primeiro parâmetro para attachInterrupt. Também é importante notar que a função delay () não funcionará dentro da função executada pela Rotina de Serviço de Interrupção (ISR).

O diagrama acima mostra como os interruptores de limite são conectados ao MCU. Os pinos no MCU são conectados por meio de um resistor pull down. Este resistor puxa para baixo o pino do MCU para o aterramento para garantir que uma leitura de baixa tensão seja lida pelo MCU quando a chave de limite for deixada aberta. A configuração do resistor é mostrada no diagrama abaixo.





1.3 Controle de subida e descida do motor


Dois relés de 12 Vcc são usados ​​para comutar a energia CA para os contatores do motor que controlam sua direção (para cima ou para baixo). O circuito projetado usando o Multisim é mostrado no diagrama abaixo:

Uma extremidade do contator da bobina de ambos os relés é conectada à fonte de 12 Vcc por meio de um transistor PNP. O principal motivo para fazer isso é garantir que o motor não receba energia até que a porta do elevador seja fechada. Uma vez que a porta do elevador é fechada, o pino de saída do DoorSwitch para o portão do transistor PNP é puxado para o solo garantindo que o PNP seja ligado para fornecer a energia VCC para ambos os relés. Portanto, o relé não é ligado mesmo se o sinal MotorUp ou MotorDown estiver HIGH. A outra extremidade da bobina do relé é puxada para o aterramento por meio de um transistor NPN. O sinal MotorUp é gerado a partir do MCU. Quando o sinal MotorUp é HIGH, o primeiro transistor NPN é ativado e puxa o outro contato da bobina para o terra para completar o circuito para alimentar a bobina do Relé Up para alimentar o motor. O mesmo método é usado para ativar o Relé de descida. As razões para usar transistores para alternar os relés são:
  • Ambos os relés possuem bobinas de 12VDC, portanto é necessário usar um transistor PNP para chavear a parte do lado alto (12V) da bobina, já que o MCU só é capaz de produzir 5V, o que não é suficiente para ligar a bobina do relé.
  • Os transistores podem ser usados ​​para ligar o relé usando corrente mínima do MCU, já que pouca corrente através da base do transistor o ativa. Isso economiza energia no MCU quando ele precisa alternar os relés.
  • Também isola o MCU de qualquer contra-corrente que pode fluir de volta para o pino do MCU, o que pode danificar potencialmente o MCU.





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 para fluir quando a bobina for ligada e desligada. Cargas indutivas, como uma bobina no relé, criam picos de tensão repentinos quando a corrente de alimentação é interrompida repentinamente. Isso adiciona proteção extra ao MCU. O diagrama abaixo mostra como conectar um diodo flyback entre os contatores da bobina do relé.





1.3.2 Controle de entrada do usuário


O usuário controla a operação do elevador por meio dos botões do piso. Existem quatro botões de pressão no andar, quando pressionados indicam ao microcontrolador que o elevador precisa ser levado ao andar desejado.

Um botão quando pressionado momentaneamente cria um sinal ALTO e um sinal BAIXO quando o usuário solta o botão. A tarefa do microcontrolador é identificar um sinal HIGH de um botão de andar pressionado pelo usuário. Esta tarefa específica não precisa ser tratada por meio de uma interrupção. Contanto que o usuário pressione o botão por um período de tempo suficiente, o MCU é capaz de registrar o sinal do botão. A próxima tarefa do microcontrolador é avaliar se deve girar o motor para cima ou para baixo, dependendo da entrada do usuário e do piso atual do elevador.

Com a programação inteligente por meio de microcontroladores, podemos eliminar o hardware adicional que seria necessário se um sistema fosse projetado puramente por lógica e analógico. O sistema anterior para o elevador exigia um interruptor direcional adicional, conforme mostrado no diagrama abaixo, foi usado para permitir que o sistema identificasse a direção em que o elevador está se movendo (para cima ou para baixo).

Mas, ao projetar um algoritmo para manter o piso atual do elevador em uma variável e compará-lo com a entrada do usuário, permitiu que o sistema se livrasse completamente dos interruptores direcionais para determinar a direção que o elevador deve se mover para chegar ao ponto desejado piso. Por exemplo:No diagrama de conexões de entrada e sensor de piso para MCU mostrado acima, o elevador está indicando ao MCU que está no segundo andar através do pino 3. Em seguida, o usuário insere pressionando o botão do quarto andar. O MCU recebe este comando e compara as duas entradas. Visto que a entrada do usuário, “4” é maior do que a entrada da chave limitadora, “2” o MCU envia um sinal através do pino MotorUp para ativar o transistor para alimentar o relé Up.

Conforme o elevador sobe, a variável do andar atual no programa é atualizada quando chega ao terceiro andar. Assim que um interruptor de limite é acionado, ele é comparado com o valor de entrada do usuário que, neste caso, é "4" e novamente compara esse valor com o piso atual atualizado para determinar se o elevador se aproximou do piso desejado. Uma vez que o interruptor de limite do quarto andar é acionado, o MCU identifica que o elevador se aproximou do quarto andar e envia um sinal BAIXO através do pino de sinal do Motor Up para interromper a alimentação do motor e evitar que ele se mova mais.





1.3.3 Isolamento de controle de entradas


Outro fator importante é isolar o lado de controle DC do microcontrolador de qualquer interferência AC que possa afetar o MCU através das entradas do sistema. Um problema que enfrentei, pois não tinha nenhum hardware de isolamento instalado inicialmente, a interferência CA que se originou do corpo metálico do elevador foi transferida para o MCU através dos interruptores de limite. Mesmo que os interruptores de limite operem em uma fonte DC separada, a entrada dos interruptores de limite são alimentados diretamente para o microcontrolador, a interferência ocorre quando o elevador começa a se mover e, devido a esta interferência AC, o MCU não é capaz de identificar corretamente o piso do elevador está em. Para neutralizar esse problema, um optoacoplador foi usado para cada entrada para isolar o MCU de interferências externas.

O objetivo do optoacoplador é transferir o sinal de entrada gerado pelo interruptor de limite de piso para o MCU por meio de um LED e fototransistor. Quando a chave de limite é fechada, o LED é ligado e a luz de entrada do LED ativa a porta do fototransistor, que então transfere um sinal HIGH para o MCU, isolando com sucesso a entrada de fora e o MCU.





1.4 Protótipo








Processo de manufatura

  1. Elevador
  2. Arduino Spybot
  3. FlickMote
  4. TV B-Gone caseiro
  5. Relógio mestre
  6. Encontre-me
  7. Arduino Power
  8. Tech-TicTacToe
  9. Arduino Quadruped
  10. Registrador de dados do balão meteorológico Arduino