Guia de Montagem Elevador com Arduino e Servo Motor MG995

Guia de Montagem: Elevador com Arduino e Servo Motor MG995 (com diagrama e códigos)

Hoje vamos apresentar um guia detalhado sobre como montar um incrível elevador robótico utilizando peças de MDF e um código de Arduino. Essa montagem proporcionará uma experiência emocionante e informativa para entusiastas da cultura maker, especialmente aqueles interessados em projetos com Arduino e Raspberry Pi.

Introdução

Neste artigo, abordaremos o processo de montagem e o código de Arduino necessários para construir o elevador robótico de MDF, que conta com 4 pisos (térreo + 3 andares), além de uma série de componentes eletrônicos. Explicaremos como realizar a montagem física das peças de MDF e, em seguida, como realizar a montagem eletrônica utilizando o código Arduino fornecido.

Lista de Peças

Antes de iniciarmos a montagem do elevador com Arduino, vamos verificar a lista de peças necessárias:

ImagemDescrição do itemQnt
elevador robotico mdf el4mdf01 SaravatiElevador Robótico MDF EL4MDF011
arduino uno saravati SaravatiPlaca Arduino Uno R3 ATmega328P DIP ATmega16 U21
display lcd 16x2 backlight azul modulo i2c SaravatiDisplay LCD 16×2 Backlight Azul + Módulo I2C1
Servo Motor Metal Gear MG995 11kgcm Engrenagem Metal 360o SaravatiServo Motor Metal Gear MG995 11kg/cm Engrenagem Metal 360º1
Modulo Interruptor Magnetico Reed Switch SaravatiMódulo Interruptor Magnético – Reed Switch4
protoboard 400 pontos SaravatiProtoboard 400 Pontos1
Botao Push Button DS 314 sem Trava Verde SaravatiBotão Push Button DS-314 sem Trava (Verde)4
Ima de Neodimio 8x1 8mmx1mm 1UN SaravatiÍmã de Neodimio 8×1 / 8mmx1mm 1UN1
Kit Jumper MxM MxF FxF 60 fios 20cm 1 1 SaravatiKit Jumper MxM MxF FxF (60 fios 20cm)2
Tabela com itens necessários para montagem do elevador

Diagrama do Projeto

diagrama Elevador com Arduino e Servo Motor MG995
Diagrama Elevador com Arduino e Servo Motor MG995

Montagem Passo a Passo

Agora que você tem todas as peças necessárias e o código Arduino pronto, vamos seguir os passos de montagem para construir seu elevador robotizado:

Etapa 1: Montando a base MDF

  • Passo 1: Montagem da Cabine
    • Comece montando a cabine do elevador. A cabine deve ser encaixada no trilho com o auxílio de 2 rolamentos para garantir um movimento suave.
  • Passo 2: Instalação da Polia
    • Fixe a polia no local designado para garantir o funcionamento adequado do sistema de elevação.
  • Passo 3: Suporte para o Micro Servo Motor
    • Encaixe o suporte para o micro servo motor na posição correta para permitir o movimento vertical da cabine.
  • Passo 4: Montagem da Base e Painel de Controle
    • Posicione a base ampla de forma que a placa controladora possa ser acomodada de maneira segura. Fixe também o suporte para montagem do painel de controle.

Etapa 2: Conexões e programação

Passo 1: Conexão dos Componentes

  1. Conecte o Display LCD 16×2 ao Arduino utilizando o módulo I2C. Conecte o pino SDA do módulo I2C ao pino A4 do Arduino e o pino SCL ao pino A5.
  2. Conecte o Servo Motor ao Arduino. Conecte o fio vermelho (VCC) do servo ao pino 5V do Arduino, o fio marrom (GND) ao pino GND do Arduino e o fio laranja (Sinal) ao pino digital 7 do Arduino.
  3. Conecte os Módulos Interruptor Magnético (Reed Switch) ao Arduino. Conecte um fio de cada módulo ao pino digital 8 (andar térreo), pino digital 9 (1º andar), pino digital 10 (2º andar) e pino digital 11 (3º andar) do Arduino.
  4. Conecte os Botões Push Button ao Arduino. Conecte um fio de cada botão a um pino digital diferente do Arduino (por exemplo, 12, 13, 14 e 15).
  5. Lembre-se de usar o protoboard para facilitar as conexões. Certifique-se de que todas as conexões estejam firmes e bem isoladas para evitar curtos-circuitos.

Passo 2: Programação do Arduino

Agora que todas as conexões estão prontas, é hora de carregar o código no Arduino para que o elevador funcione corretamente.

  1. Abra o software Arduino IDE em seu computador.
  2. Copie o código fornecido na seção abaixo e cole-o na janela de programação do Arduino IDE.
  3. Antes de fazer o upload do código para o Arduino, verifique se você selecionou a placa correta em “Ferramentas” > “Placa”. Selecione “Arduino Uno”.
  4. Em “Ferramentas” > “Porta”, selecione a porta COM à qual o Arduino está conectado.
  5. Clique no botão “Verificar” para verificar se não há erros no código.
  6. Se não houver erros, clique no botão “Enviar” (ícone de seta) para carregar o código no Arduino.
  7. Aguarde o processo de upload e, em seguida, o código começará a ser executado no Arduino.

Passo 3: Teste e Verificação

Após a conclusão do upload do código, o elevador robótico estará pronto para ser testado.

  1. Certifique-se de que o elevador esteja posicionado no andar térreo (andar inicial) e que nenhum botão esteja pressionado.
  2. Agora, pressione os botões correspondentes aos andares desejados (T, 1, 2 ou 3) para que o elevador suba ou desça automaticamente.
  3. Observe o display LCD para acompanhar o andar atual do elevador e o andar para o qual ele está se movendo.
  4. O servo motor será acionado para mover a cabine verticalmente até o andar desejado, conforme os botões pressionados.

Conclusão

Montar um elevador robótico utilizando peças de MDF e o código Arduino é uma experiência enriquecedora e divertida. Além de aprender sobre eletrônica e programação, você terá em mãos um projeto fascinante que pode ser aplicado em diversas situações.

Agora que você possui todas as informações necessárias para a montagem, mãos à obra e divirta-se com esse projeto incrível!

Exemplos de Aplicações

Exemplo 1: Maquete de Prédio Inteligente

  • Utilize o elevador robótico como parte de uma maquete de um prédio inteligente. Adicione mais andares e crie uma maquete que simule um edifício moderno, onde o elevador automatizado proporcionará uma experiência realista de transporte vertical.

Exemplo 2: Exposição em Feiras de Ciências

  • Apresente o projeto do elevador robótico em feiras de ciências e eventos educacionais. Explique o funcionamento do elevador, as conexões eletrônicas e o código Arduino. Isso demonstrará habilidades em eletrônica e programação, tornando-se um projeto educativo e inspirador para outros estudantes.

Exemplo 3: Automação Industrial

  • O protótipo do elevador robótico pode ser adaptado para projetos de automação industrial. Ele pode ser incorporado em sistemas de logística, transportando pequenos objetos entre diferentes níveis em uma linha de produção automatizada.

Exemplo 4: Experiências de Aprendizado para Crianças

  • Utilize o elevador robótico como uma ferramenta de aprendizado interativa para crianças. Explique conceitos de eletrônica e programação de forma lúdica, mostrando como o elevador é controlado através do código Arduino. Essa experiência pode inspirar o interesse delas em ciência e tecnologia.

Exemplo 5: Projetos de Automação Residencial

  • Integre o elevador robótico como parte de um sistema de automação residencial. Controle o elevador através de um aplicativo ou assistente de voz, permitindo que os usuários chamem o elevador de diferentes andares da casa.

Código Arduino

Após a montagem física do elevador robótico, você precisará programar o Arduino para controlar o funcionamento do sistema. Aqui está o código Arduino necessário para o projeto:

/////////////////////////////////////////////////
//    Elevador com Servo Rotacao Continua      //
/////////////////////////////////////////////////
#include <Servo.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#define terreo 2
#define andar1 3
#define andar2 4
#define andar3 5
#define randart 8
#define randar1 9
#define randar2 10
#define randar3 11

Servo servo;
LiquidCrystal_I2C lcd(0x27,16,2);

int subida = 180;
int parado = 90;
int descida = 0;
int andaratual;
int andarchamado;

void setup() {
  pinMode(terreo,INPUT_PULLUP);
  pinMode(andar1,INPUT_PULLUP);
  pinMode(andar2,INPUT_PULLUP);
  pinMode(andar3,INPUT_PULLUP);
  pinMode(randart,INPUT);
  pinMode(randar1,INPUT);
  pinMode(randar2,INPUT);
  pinMode(randar3,INPUT);
  servo.attach(7);
  lcd.begin(16,2);
  lcd.setBacklight(HIGH);

  if((digitalRead(randart)==HIGH)&&(digitalRead(randar1)==HIGH)&&(digitalRead(randar2)==HIGH)&&(digitalRead(randar3)==HIGH)){
    lcd.setCursor(0,0);
    lcd.print("Calibrando...");
    servo.write(descida);
    while((digitalRead(randart)==HIGH)&&(digitalRead(randar1)==HIGH)&&(digitalRead(randar2)==HIGH)&&(digitalRead(randar3)==HIGH)){
      digitalRead(randart);
      digitalRead(randar1);
      digitalRead(randar2);
      digitalRead(randar3);
    }
    servo.write(parado);
    lcd.setCursor(0,0);
    lcd.print("             ");
    lcd.setCursor(0,0);
    lcd.print("Calibrado");
    if(digitalRead(randart)==LOW){
      andaratual=0;
    }
    else{
      if(digitalRead(randar1)==LOW){
        andaratual=1;
      }
      else{
        if(digitalRead(randar2)==LOW){
          andaratual=2;
        }
        else{
          if(digitalRead(randar3)==LOW){
            andaratual=3;
          }
        }
      }
    }
    lcd.setCursor(0,0);
    lcd.print("                ");
    lcd.setCursor(0,0);
    lcd.print("Andar Atual: ");
    lcd.print(andaratual);
  }
  else{
    if(digitalRead(randart)==LOW){
      andaratual=0;
    }
    else{
      if(digitalRead(randar1)==LOW){
        andaratual=1;
      }
      else{
        if(digitalRead(randar2)==LOW){
          andaratual=2;
        }
        else{
          if(digitalRead(randar3)==LOW){
            andaratual=3;
          }
        }
      }
    }
    lcd.setCursor(0,0);
    lcd.print("                ");
    lcd.setCursor(0,0);
    lcd.print("Andar Atual: ");
    lcd.print(andaratual);
  }
}  
void loop() {
  int TERREO=digitalRead(terreo);
  int ANDAR1=digitalRead(andar1);
  int ANDAR2=digitalRead(andar2);
  int ANDAR3=digitalRead(andar3);
  if(TERREO==LOW){
    andarchamado=0;
    lcd.setCursor(0,1);
    lcd.print("                ");
    lcd.setCursor(0,1);
    lcd.print("Andar chamado: ");
    lcd.print("T");
    servo.write(descida);
    while(digitalRead(randart)==HIGH){
      digitalRead(randart);
    }
    servo.write(parado);
    andaratual=andarchamado;
    lcd.setCursor(0,0);
    lcd.print("                ");
    lcd.setCursor(0,0);
    lcd.print("Andar Atual: ");
    lcd.print("T");
  }
  if(ANDAR1==LOW){
    andarchamado=1;
    lcd.setCursor(0,1);
    lcd.print("                ");
    lcd.setCursor(0,1);
    lcd.print("Andar chamado: ");
    lcd.print(andarchamado);
    if(andarchamado>andaratual){
      servo.write(subida);
      while(digitalRead(randar1)==HIGH){
        digitalRead(randar1);
      }
    }
    else{
      servo.write(descida);
      while(digitalRead(randar1)==HIGH){
        digitalRead(randar1);
      }
    }
    servo.write(parado);
    andaratual=andarchamado;
    lcd.setCursor(0,0);
    lcd.print("                ");
    lcd.setCursor(0,0);
    lcd.print("Andar Atual: ");
    lcd.print(andaratual);
  }
  if(ANDAR2==LOW){
    andarchamado=2;
    lcd.setCursor(0,1);
    lcd.print("                ");
    lcd.setCursor(0,1);
    lcd.print("Andar chamado: ");
    lcd.print(andarchamado);
    if(andarchamado>andaratual){
      servo.write(subida);
      while(digitalRead(randar2)==HIGH){
        digitalRead(randar2);
      }
    }
    else{
      servo.write(descida);
      while(digitalRead(randar2)==HIGH){
        digitalRead(randar2);
      }
    }
    servo.write(parado);
    andaratual=andarchamado;
    lcd.setCursor(0,0);
    lcd.print("                ");
    lcd.setCursor(0,0);
    lcd.print("Andar Atual: ");
    lcd.print(andaratual);
  }
  if(ANDAR3==LOW){
    andarchamado=3;
    lcd.setCursor(0,1);
    lcd.print("                ");
    lcd.setCursor(0,1);
    lcd.print("Andar chamado: ");
    lcd.print(andarchamado);
    servo.write(subida);
    while(digitalRead(randar3)==HIGH){
      digitalRead(randar3);
    }
    servo.write(parado);
    andaratual=andarchamado;
    lcd.setCursor(0,0);
    lcd.print("                ");
    lcd.setCursor(0,0);
    lcd.print("Andar Atual: ");
    lcd.print(andaratual);
  }
}

Certifique-se de copiar e colar o código acima em seu ambiente de desenvolvimento Arduino para poder controlar corretamente o elevador robótico.

Bibliotecas Adicionais:

Perguntas Frequentes

1. É necessário ter conhecimento prévio em eletrônica e programação para montar o elevador robótico?

Não é obrigatório, mas ter um conhecimento básico em eletrônica e programação pode facilitar o processo de montagem.

2. Quais são as dimensões aproximadas do elevador montado?

O elevador montado possui cerca de 280mm Largura x 180mm de Comprimento x 510mm de Altura.

3. Posso utilizar outros materiais além de MDF para a montagem da estrutura?

Sim, é possível utilizar outros materiais similares ao MDF, desde que sejam compatíveis com a estrutura do elevador.

4. O elevador robótico possui algum limite de carga?

O limite de carga do elevador dependerá da capacidade do servo motor utilizado na montagem.

5. Onde posso encontrar mais projetos e tutoriais sobre Arduino, Raspberry Pi e Cultura Maker? Você pode encontrar mais projetos e tutoriais sobre Arduino, Raspberry Pi e Cultura Maker em nosso blog, Blog Saravati.

Não deixe de explorar nosso blog para descobrir mais projetos interessantes e se manter atualizado com as últimas tendências da tecnologia maker.

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *