martes, 24 de febrero de 2026

REVIEW

 Aquí tienes un repaso detallado sobre el controlador PCA9685, ideal para prepararte para tu evaluación:

1. ¿Qué es la PCA9685?

Es un controlador de 16 canales que permite manejar múltiples servomotores o LEDs utilizando solo dos pines del microcontrolador (como Arduino o ESP32). Se comunica mediante el protocolo I2C, lo que ahorra muchos pines de salida y descarga al procesador principal de la tarea de generar señales en tiempo real.

2. ¿Cómo se usa para controlar servos?

  • Conexión I2C: Se conecta a los pines SDA y SCL del microcontrolador.

  • Alimentación Externa: Los servos consumen mucha corriente, por lo que la PCA9685 tiene una bornera (normalmente azul) para conectar una fuente externa (ej. 5V o 6V). No se deben alimentar los servos directamente desde el Arduino.

  • Librerías: Generalmente se utiliza la librería de Adafruit (Adafruit_PWMServoDriver), que permite enviar comandos simples para posicionar cada servo de forma independiente.

3. Puertos de la PCA9685

La placa está organizada de la siguiente manera:

  • Pines de Control (I2C): VCC, V+, SDA, SCL, GND y OE (Output Enable, para apagar todas las salidas).

  • Canales de Salida (0 al 15): Tiene 16 grupos de 3 pines. Cada grupo tiene:

    1. PWM (Amarillo/Blanco): La señal de control.

    2. V+ (Rojo): Alimentación positiva para el servo.

    3. GND (Negro/Marrón): Tierra.

  • Puente de Direcciones: Pequeños pads de soldadura para cambiar la dirección I2C y conectar hasta 62 placas en cascada.

4. ¿Qué es una señal PWM?

PWM (Pulse Width Modulation) o Modulación por Ancho de Pulso, es una técnica que consiste en variar el tiempo que una señal eléctrica está en estado "alto" (encendido) dentro de un ciclo constante.

  • En los servos, no importa el voltaje promedio, sino la duración exacta del pulso en milisegundos, ya que esto le indica al servo en qué ángulo posicionarse (por ejemplo, 1ms para 0°, 1.5ms para 90° y 2ms para 180°).

5. Pulso Mínimo y Máximo

En la programación de la PCA9685 (que tiene una resolución de 12 bits, es decir, valores de 0 a 4095):

  • PULSO_MIN: Es el valor numérico que corresponde al tiempo mínimo (usualmente 0°). Suele estar cerca de 150.

  • PULSO_MAX: Es el valor que corresponde al tiempo máximo (usualmente 180°). Suele estar cerca de 600.

6. Significado de const int PULSO_MAX = 600;

Según el estándar de programación para estos controladores:

  • Significado: Este número representa la longitud del pulso para la posición máxima del servomotor.

  • En el contexto del código: Indica el valor de "conteo" (ticks) en el que la señal PWM debe bajar a 0 para que el servo alcance su ángulo máximo (180°). Si el comentario dice algo como "Valor de pulso para 180 grados", ese es el significado exacto: definir el límite superior del recorrido del servo para evitar que intente girar más allá de su capacidad física y se dañe.

Resumen para tu examen:

  • PCA9685: 16 canales, I2C, 12 bits de resolución.

  • PWM: Control por duración de pulso.

  • 600: El valor máximo de la señal para llegar al tope de giro (180°).

No hay comentarios:

Publicar un comentario