Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/FrancoMartino/cod-es/llms.txt

Use this file to discover all available pages before exploring further.

Para usar este módulo, definí INCLUIR_SERVO antes de incluir Cod-ES.h.

Activación

#define INCLUIR_SERVO
#include <Cod-ES.h>

Clase Servo

Cada servo que uses en tu proyecto requiere su propia instancia de la clase Servo. Podés controlar hasta 12 servos simultáneamente en la mayoría de las placas AVR.
Servo miServo;

Métodos

Adjuntar y desvincular

miServo.adjuntar
uint8_t
Asocia el objeto Servo a un pin digital de la placa. A partir de este momento, el pin envía la señal PWM de control. Retorna el índice interno del servo.Firmas disponibles:
  • adjuntar(pin) — adjunta al pin con valores mínimo y máximo por defecto (544 µs – 2400 µs).
  • adjuntar(pin, min, max) — adjunta al pin con pulsos mínimo y máximo en microsegundos personalizados.
Parámetros: pin — número de pin digital; min — ancho de pulso mínimo en µs (por defecto 544); max — ancho de pulso máximo en µs (por defecto 2400).
miServo.desvincular
void
Desasocia el servo de su pin y detiene la señal PWM. Libera el timer para otros usos.
miServo.adjunto
bool
Retorna verdadero si el servo está actualmente adjunto a un pin, o falso en caso contrario.

Controlar posición

miServo.escribir
void
Mueve el servo a la posición indicada.
  • Para servos estándar: el valor es el ángulo en grados (0 a 180).
  • Para servos de rotación continua: valores menores a 90 giran en un sentido, mayores a 90 en el otro, y 90 detiene el motor.
Parámetro: value — ángulo en grados (0–180) o velocidad para rotación continua.
miServo.escribirMicrosegundos
void
Mueve el servo enviando directamente el ancho de pulso en microsegundos. Permite mayor precisión que escribir().Parámetro: value — ancho de pulso en microsegundos (típicamente entre 544 y 2400).

Leer posición actual

miServo.leer
int
Retorna el ángulo actual del servo en grados (0–180), tal como fue indicado con escribir().
miServo.leerMicrosegundos
int
Retorna el ancho de pulso actual en microsegundos, tal como fue establecido con escribir() o escribirMicrosegundos().

Ejemplo completo — movimiento de barrido

#define INCLUIR_SERVO
#include <Cod-ES.h>

Servo miServo; // Crear una instancia del servo

inicio
  miServo.adjuntar(9); // Adjuntar el servo al pin 9
fin

bucle
  // Barrer de 0° a 180°
  repetir(entero pos = 0, pos <= 180, pos++)
    miServo.escribir(pos);
    esperar(15, MILISEGUNDOS);
  fin

  // Barrer de 180° a 0°
  repetir(entero pos = 180, pos >= 0, pos--)
    miServo.escribir(pos);
    esperar(15, MILISEGUNDOS);
  fin
fin

Ejemplo con dos servos

#define INCLUIR_SERVO
#include <Cod-ES.h>

Servo servoBase;
Servo servoBrazo;

inicio
  servoBase.adjuntar(9);   // Servo de la base en pin 9
  servoBrazo.adjuntar(10); // Servo del brazo en pin 10

  servoBase.escribir(90);  // Centrar la base
  servoBrazo.escribir(45); // Posicionar el brazo
fin

bucle
fin
No adjuntés el servo hasta no haber conectado la fuente de alimentación. Los servos consumen más corriente de la que puede proveer el pin USB del Arduino; usá una fuente externa si controlás más de un servo o si el servo es de gran torque.
Usá adjuntar(pin, min, max) cuando necesités mayor precisión. Medí los valores reales de tu servo con un osciloscopio o ajustalos experimentalmente.

Build docs developers (and LLMs) love