Braço Robótico de Solda Automatizado: Precisão, Velocidade e Guia DIY
Componentes e Materiais
| Motor de Passo 28BYJ-48 com Driver ULN2003 | × | 1 |
| Arduino UNO | × | 1 |
| Servomotor TowerPro MG955 | × | 1 |
| LCD Serial I2C 1602 | × | 1 |
| Módulo Step-Down (Buck Converter) | × | 1 |
| Motor de Passo NEMA 17 (OpenBuilds) | × | 1 |
Ferramentas Necessárias
- Cortadora a laser (genérica)
- Kit de fresas para ferramenta rotativa (Dremel)
Aplicativos e Serviços Online
- Arduino IDE
- Microsoft Visual Studio 2015
Sobre o Projeto
Introdução
A ideia surgiu acidentalmente ao pesquisar diferentes capacidades de braços robóticos — descobri que poucas cobrem a área de solda automatizada (robotic soldering arm).
Já tinha experiência com projetos similares, mas este foi especialmente útil e eficaz.
Antes de definir o formato, analisei muitas aplicações e projetos industriais; projetos open source ajudaram muito a encontrar formato adequado.
Passo 1: Design
Inicialmente vi projetos profissionais complexos demais para implementar. Decidi criar meu próprio produto inspirado neles, usando Google SketchUp 2017 Pro. Cada peça foi desenhada para montar em ordem específica.
Antes de montar, testei as peças e escolhi o ferro de solda adequado, desenhando o projeto final virtual em tamanho real como guia para dimensionar corretamente o ferro.
Passo 2: Operação e Instalação
Durante o trabalho, enfrentei obstáculos importantes:
- Braços pesados demais para os pequenos motores de passo. Corrigido na próxima versão/impressão a laser.
- Atrito excessivo na base rotativa (material plástico) → movimentos não suaves.
- Primeira solução: motor de passo maior + redesenho da base. Não resolveu — atrito entre superfícies plásticas + impossibilidade de ajustar potenciômetro do driver por porcentagem. A posição máxima de rotação não é a corrente máxima do driver. Use a técnica do fabricante: meça tensão girando o pot.
- Solução final: redesenho total da base com servomotor com engrenagens metálicas no lugar do mecanismo de engrenagens.
- Alimentação
Arduino pode ser alimentado via: jack DC (7-12V), USB (5V), ou pino VIN (7-12V). Alimentar via pinos 5V/3.3V bypassa o regulador. Compramos cabo USB especial que entrega 5V do PC/fonte.
Motores de passo e outros componentes funcionam bem com 5V apenas. Para proteger, adicionamos módulo step-down (buck converter): conversor DC-DC que reduz tensão (aumenta corrente) da entrada para saída, mantendo estabilidade.
Passo 3: Modificações
Reduzimos tamanho dos braços e fizemos furo adequado para engrenagem do servomotor.
O servomotor conseguiu girar o peso 180° corretamente graças ao alto torque — capacidade de lidar com cargas maiores. O torque depende de tensão de alimentação, velocidade do eixo, etc.
I2C foi ótimo: usa só 2 pinos e permite múltiplos dispositivos I2C nos mesmos 2 pinos (ex.: até 8 LCDs com backpack I2C). Desvantagem: deve usar pinos I2C de hardware.
Passo 4: Suporte/Garra do Ferro de Solda
Garra fixada com servomotor de engrenagens metálicas para suportar peso do ferro.
servo.attach(9, 1000, 2000);
servo.write(constrain(angle, 10, 160));
Inicialmente o motor tremia/vibrava até encontrarmos truque no código com ângulos limitados. Nem todos servos têm 180° completos.
Fizemos teste para achar limites mecânicos. Use servo.writeMicroseconds em vez de servo.write — range base 1000-2000; muitos servos suportam 600-2400. Teste valores diferentes e veja onde começa o zumbido (fim de curso). Mantenha dentro desses limites. servo.attach(pin, min, max) define limites. Função constrain() do Arduino é útil para isso.
Passo 5: Programação
O ambiente Arduino usa bibliotecas para estender funcionalidade, como a maioria das plataformas. Bibliotecas dão funcionalidade extra para sketches: hardware, manipulação de dados. Para usar uma biblioteca:
#include <AccelStepper.h>
#include <MultiStepper.h>
#include <Servo.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
Código
Código Steppers X Y Z Arduino
#include "AccelStepper.h"
// AccelStepper Setup
AccelStepper stepperX(1, 2, 3); // 1 = interface Easy Driver
// UNO Pino 2 → STEP do Easy Driver
// UNO Pino 3 → DIR do Easy Driver
AccelStepper stepperZ(1, 5, 6); // 1 = interface Easy Driver
// UNO Pino 5 → STEP do Easy Driver
// UNO Pino 6 → DIR do Easy Driver
AccelStepper stepperY(7, 8, 9); // 1 = interface Easy Driver
// UNO Pino 5 → STEP do Easy Driver
// UNO Pino 6 → DIR do Easy Driver
// Variáveis de deslocamento
long TravelX, TravelZ, TravelY;
int move_finished = 1;
void setup() {
Serial.begin(9600);
Serial.println("Digite deslocamento separado por vírgula: X,Z");
Serial.print("Digite valores de movimento agora: ");
// Velocidade máxima e aceleração
stepperX.setMaxSpeed(500.0);
stepperX.setAcceleration(500.0);
stepperZ.setMaxSpeed(250.0); // rotação mais lenta
stepperZ.setAcceleration(250.0);
stepperY.setMaxSpeed(250.0);
stepperY.setAcceleration(250.0);
}
void loop() {
while (Serial.available() > 0) {
move_finished = 0;
TravelX = Serial.parseInt();
Serial.print(TravelX); Serial.print(" X Travel, ");
TravelZ = Serial.parseInt();
Serial.print(TravelZ); Serial.print(" Z Travel, ");
TravelY = Serial.parseInt();
Serial.print(TravelY); Serial.println(" Y Travel");
stepperX.moveTo(TravelX);
stepperZ.moveTo(TravelZ);
stepperY.moveTo(TravelY);
delay(1000);
Serial.print("Movendo steppers para posição...");
}
// Verifica se steppers chegaram à posição
if ((stepperX.distanceToGo() != 0) || (stepperZ.distanceToGo() != 0) || (stepperY.distanceToGo() != 0)) {
stepperX.run();
stepperZ.run();
stepperY.run();
}
// Mensagem de conclusão
if ((move_finished == 0) && (stepperX.distanceToGo() == 0) && (stepperZ.distanceToGo() == 0) && (stepperY.distanceToGo() == 0)) {
Serial.println("CONCLUÍDO!");
Serial.println("");
Serial.println("Próximos valores (0,0,0 para reset): ");
move_finished = 1;
}
}
Esquemáticos

Processo de manufatura
- Makerarm: O Braço Robótico Desktop All‑in‑One para Makers
- Engenharia de Controles de Motor Precisos para Sistemas Robóticos Avançados
- Infineon Revela Controlador de Motor IMC300 com Arm Cortex-M0 Integrado para Flexibilidade Aprimorada
- Trinamic e Maxim Integrated Lançam Design de Referência para Acelerar Desenvolvimento de End-of-Arm Tooling em Robótica Industrial
- Como Braços Robóticos São Construídos: Design e Função
- Como Braços Robóticos Industriais Transformam a Manufatura: Principais Benefícios
- Entendendo Motores Servo em Braços Robóticos: Função, Benefícios e Impacto
- Células FlexLoader da ABB Automatizam Carregamento de Peças, Aumentando Eficiência e Reduzindo Custos
- Mercado de Robôs SCARA Alcançará US$14,78 Bi até 2026, Impulsionando Crescimento da Automação
- Braços Robóticos Industriais: Impulsionando a Revolução na Manufatura