Brazo Robot con Servo Motores, Potenciometros y Arduino Nano V3 Deja un comentario

(Arduino Nano V3)

Este proyecto te permite controlar de forma independiente 4 servomotores usando 4 potenciómetros de 10 kΩ. Es ideal para un brazo robótico de 4 grados de libertad: base, hombro, codo y muñeca (o pinza). El Arduino lee la posición de cada potenciómetro y la convierte a un ángulo (0–180°) para cada servo. (Algunas placas genéricas utilizan una versión antigua del gestor de arranque, si tienes problemas para subir el sketch considera cambiarla antes de subirlo a la placa)

Guía de apoyo el ensamble del chasis Aquí

Materiales

  • 1 × Nano V3 compatible con Arduino
  • 1 × Shield/Protoshield para Nano V3 (facilita el cableado, opcional pero recomendado)
  • 2 × Baterías 18650
  • 1 × Porta baterías para 2×18650
  • 4 × Potenciómetros 10 kΩ (uno por cada servo)
  • 4 × Servomotores (SG90, MG90S, o similares según tu chasis)
  • Cables dupont y/o cableado
  • Recomendado: 1 módulo reductor (buck) 5 V/3–5 A para alimentar los servos
  • Recomendado: Capacitores de 100–470 µF cerca del riel de 5 V de los servos

Nota de alimentación: Los servos consumen picos altos de corriente (varios cientos de mA cada uno). No los alimentes desde el regulador del Nano. Usa un buck a 5 V dedicado para los servos (3–5 A), y une las tierras (GND del buck y GND del Nano) para que las señales sean de referencia común. Si usas 2×18650 en serie (~7.4 V), alimenta:

  • Al buck 5 V (salida a servos y opcionalmente al pin 5V del Nano).
  • Evita usar VIN del Nano para también alimentar servos: el regulador integrado no soporta esa corriente.

Conexiones

Potenciómetros (uno por servo)

  • Centro (wiper) del potenciómetro → A0, A1, A2, A3 (uno para cada pot)
  • Una pata lateral → 5 V del Nano
  • La otra pata lateral → GND del Nano

Si el giro se siente “invertido”, intercambia las patas de 5 V y GND del potenciómetro.

Servomotores

  • Señales:
    • Servo 1 → D11
    • Servo 2 → D10
    • Servo 3 → D9
    • Servo 4 → D8
  • Rojo (V+) de todos los servos → 5 V del buck
  • Marrón/Negro (GND) de todos los servos → GND del buck
  • Muy importante: GND del buck unido a GND del Nano

Código sketch para Arduino

Cómo funciona (paso a paso)

  1. Declaración y pines: Se crean 4 objetos Servo. Los potenciómetros van a A0–A3 y las señales de los servos a D11, D10, D9, D8.
  2. setup(): attach() vincula cada objeto servo a su pin digital de señal. A partir de aquí, write() enviará pulsos PWM (posiciones) a cada servo.
  3. loop(): lectura analógica: analogRead() mide cada potenciómetro (0–1023). Ese valor representa la posición física del pot.
  4. Mapeo a ángulo: map(0–1023 → 0–180) traduce la lectura a grados para el servo.
  5. Movimiento: servo.write(ángulo) ordena la posición del eje del servo. Cada pot controla un servo de forma independiente.
  6. Suavizado básico: delay(10) da un pequeño respiro entre actualizaciones para evitar vibraciones innecesarias.

Puesta en marcha

  1. Realiza todas las conexiones según las secciones anteriores.
  2. Conecta el Nano al PC (sólo datos). Alimenta los servos con el buck a 5 V.
  3. Sube el sketch desde el IDE de Arduino.
  4. Gira cada potenciómetro y verifica que el servo correspondiente siga el movimiento. Si va al revés, invierte 5 V y GND en ese potenciómetro.

Calibración y límites mecánicos

  • Si tu brazo tiene topes físicos, limita el rango por software: servo1.write(constrain(angle1, 10, 160)); (ajusta 10–160 a tus límites reales).
  • Si un servo zumba o fuerza, reduce el rango o revisa la mecánica.

Solución de problemas

  • Temblor/Jitter: Suele ser por alimentación insuficiente o ruidosa. Usa un buck 5 V de 3–5 A; añade un capacitor de 100–470 µF cerca del riel de servos; une GNDs correctamente.
  • Reseteos del Nano al mover servos: Separar alimentación (buck para servos; el Nano por USB o desde el mismo buck a 5 V), con tierras comunes.
  • Movimiento invertido: Invierte las patas de 5 V y GND del potenciómetro correspondiente.
  • Vibración por ruido en potenciómetros: Cables cortos, buena masa; opcional: un condensador de 0.1 µF del wiper (centro) a GND.

Extensiones (opcionales)

  • Guardado de límites por servo: Define min/max diferentes por articulación para proteger la mecánica.
  • Pinza: Usa el 4º canal para abrir/cerrar una pinza y limita su rango para no forzarla.

Consejo final: prueba primero sin carga (servos “al aire”), y luego monta el brazo y vuelve a ajustar límites. Un buen suministro de 5 V estable es la clave para movimientos suaves.

Deja una respuesta