Controle Dois Motores de Passo com Arduino Nano e Joystick – Tutorial Simples
Componentes e Materiais
- 1x Arduino Nano R3
- 1x Joystick analógico
- 2x Motor de Passo 28BYJ-48
- 2x Módulo Driver ULN2003
- 1x Fonte de alimentação para protoboard K2 (ou outra fonte 5V para os steppers)
- 17x Fios jumper fêmea-fêmea
Aplicativos e Serviços Online
- Visuino - Ambiente de Desenvolvimento Gráfico para Arduino
- Arduino IDE
Sobre o Projeto
Ao construir projetos Arduino com motores de passo, como máquina CNC, plotter ou Arte Animada, chega um momento em que os steppers precisam ser controlados manualmente. Joysticks analógicos são módulos baratos e fáceis para controle manual, com velocidade variável. Parecem uma boa escolha para controlar os steppers. Resolver o problema com código Arduino tradicional, no entanto, não é trivial.
Neste tutorial, mostrarei como é fácil programar Arduino Nano com Visuino para controlar 2 motores de passo com Joystick.
Passo 1: Componentes

- Uma placa compatível Arduino (uso Arduino Nano, mas qualquer outra serve)
- Um Joystick (do kit barato de 37 sensores)
- Dois Motores de Passo 5V com Placas Driver (usei 28BYJ-48 com driver ULN2003)
- Uma Fonte de alimentação para protoboard K2 com adaptador, ou outra fonte 5V para os Steppers
- 17 Fios jumper Fêmea-Fêmea
Passo 2: Conectar Alimentação e Terra nos Motores de Passo

- Conecte Terra (fio Preto) e Alimentação (fio Vermelho) a cada um dos Módulos Driver de Passo
- Conecte outro Terra (fio Preto) ao pino GND da placa Arduino
- Conecte a outra ponta da Alimentação (fios Vermelhos) dos módulos de driver do motor aos pinos "+" de Alimentação da Fonte K2
- Conecte a outra ponta do Terra (fios Pretos) dos módulos de driver do motor e do Arduino aos pinos "-" de Terra da Fonte K2
- Certifique-se que o Seletor de Tensão da Fonte K2 esteja em 5V
Passo 3: Conectar os Motores de Passo ao Arduino

- Se ainda não conectado, encaixe os conectores do motor de passo nas placas driver
- Conecte uma ponta dos Fios jumper Fêmea-Fêmea (Azul, Verde, Amarelo e Laranja) aos pinos IN1 a IN4 do Driver de Passo para o Primeiro Motor
- Conecte uma ponta dos Fios jumper Fêmea-Fêmea (Azul, Verde, Amarelo e Laranja) aos pinos IN1 a IN4 do Driver de Passo para o Segundo Motor
- Conecte o fio IN1 do Primeiro Motor (fio Azul) ao pino Digital 2 do Arduino
- Conecte o fio IN2 do Primeiro Motor (fio Verde) ao pino Digital 3 do Arduino
- Conecte o fio IN3 do Primeiro Motor (fio Amarelo) ao pino Digital 4 do Arduino
- Conecte o fio IN4 do Primeiro Motor (fio Laranja) ao pino Digital 5 do Arduino
- Conecte o fio IN1 do Segundo Motor (fio Azul) ao pino Digital 6 do Arduino
- Conecte o fio IN2 do Segundo Motor (fio Verde) ao pino Digital 7 do Arduino
- Conecte o fio IN3 do Segundo Motor (fio Amarelo) ao pino Digital 8 do Arduino
- Conecte o fio IN4 do Segundo Motor (fio Laranja) ao pino Digital 9 do Arduino
Passo 4: Conectar o Joystick ao Arduino

- Conecte fios Fêmea-Fêmea ao Terra (fio Preto), Alimentação (fio Vermelho), VRx (fio Roxo) e VRy (fio Cinza) do Joystick
- Conecte o fio Terra (fio Preto) ao pino GND da placa Arduino
- Conecte o fio Alimentação (fio Vermelho) ao pino 5V de alimentação do Arduino
- Conecte o fio VRx (fio Marrom) ao pino Analógico 1 da placa Arduino
- Conecte o fio VRy (fio Cinza) ao pino Analógico 0 da placa Arduino
Passo 5: Iniciar Visuino e Selecionar Tipo de Placa Arduino

Para começar a programar o Arduino, você precisará ter a Arduino IDE instalada em: https://www.arduino.cc/ . Certifique-se de instalar a versão 1.6.7 ou superior, caso contrário este tutorial não funcionará!
O Visuino: https://www.visuino.com também precisa ser instalado.
- Inicie o Visuino
- Clique no botão "Tools" no componente Arduino no Visuino
- Quando a janela aparecer, selecione Arduino Nano
Passo 6: No Visuino: Adicionar e Conectar Componentes de Motor de Passo

- Digite "step" na caixa de filtro da Caixa de Ferramentas de Componentes, selecione o componente "4 Wire Stepper Motor" e arraste dois deles para a área de design
- Clique na caixa "Out" contendo os pinos do componente Stepper1 para começar a conectar todos os pinos Out de uma vez
- Mova o mouse sobre o pino de entrada "Digital" do canal "Digital[ 2 ]" do componente Arduino. O Visuino espalhará automaticamente os fios para conectar corretamente aos demais pinos
- Repita para o Stepper2, conectando aos pinos Digital[ 6 ]
Passo 7: No Visuino: Definir Propriedades do Motor de Passo e Adicionar Pinos para Controlar Velocidade

- Selecione o componente Stepper1. No Inspector de Objetos, defina o valor da propriedade "Steps Per Second" para "0"
- Clique no botão Pin na frente da propriedade "Steps Per Second" e selecione "Float SinkPin"
- Repita para o componente Stepper2
Passo 8: No Visuino: Adicionar e Conectar Componentes Analógicos de Zona Morta Escalonada

Os pinos analógicos onde o Joystick está conectado geram valores normalizados entre 0.0 e 1.0. Precisamos convertê-los para +/-300 passos por segundo. Como o Joystick não é muito preciso na posição central liberada, queremos uma pequena zona ao redor do centro considerada 0.5, então precisamos introduzir "Zona Morta":
- Digite "zone" na caixa de filtro, selecione o componente "Dead Zone Scaled Analog" e arraste dois deles para a área de design
- Conecte a saída "Out" do componente DeadZoneScaled1 à entrada "StepsPerSecond" do componente Stepper1
- Conecte a saída "Out" do canal "Digital[ 14 ]/Analog[ 0 ]" do componente Arduino à entrada "In" do componente DeadZoneScaled1
- Conecte a saída "Out" do componente DeadZoneScaled2 à entrada "StepsPerSecond" do componente Stepper2
- Conecte a saída "Out" do canal "Digital[ 15 ]/Analog[ 1 ]" do componente Arduino à entrada "In" do componente DeadZoneScaled2
Passo 9: No Visuino: Definir Propriedades dos Componentes Dead Zone Scaled Analog

- Selecione DeadZoneScaled1. No Inspector, expanda a propriedade "Output Range"
- Defina "Max" para "300" e "Min" para "-300"
- Repita para DeadZoneScaled2 com os mesmos valores
Passo 10: Gerar, Compilar e Carregar o Código Arduino

- No Visuino, pressione F9 ou clique no botão mostrado para gerar o código Arduino e abrir a Arduino IDE
- Na Arduino IDE, clique no botão Upload para compilar e carregar o código
Passo 11: E Brincar...

Parabéns! Você completou o projeto.
Você pode controlar os Steppers com o Joystick. Movendo o Joystick para Cima e Baixo controlará a rotação Frente e Trás de um dos Steppers. Movendo o Joystick para Esquerda e Direita controlará o outro Stepper.
Também anexado está o projeto Visuino que criei para este tutorial. Você pode baixar e abri-lo no Visuino: https://www.visuino.com
FQM7EG7IPOA2W5T.zip
Processo de manufatura
- Mealheiro Inteligente: Controlar Aceitador de Moedas com Arduino Nano
- Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
- Avaliando Saúde de Plantas com TinyML: Guia Prático
- Contador Geiger Portátil com Arduino Nano: Construa o Seu
- ThimbleKrox: Controle de Mouse Dedo-Montado com Arduino Micro e MPU-6050
- Volante Joystick Arduino Personalizado para Jogos
- Sistema DIY de Controle de Baratas com Arduino – Construa por Menos de $30
- Controle Remoto de Carro com Arduino Uno e Bluetooth: Guia Passo a Passo
- Controle Braço Robótico Arduino via App Android Dedicado
- Controle de Ventoinha PWM 4 Pinos 25 kHz com Arduino Uno – Montagem, Código e Teste