Skip to content

Salidas (actuadores)

This content is not available in your language yet.

Componentes que actúan sobre el mundo: encienden, mueven, suenan. Casi todos sus métodos devuelven el propio objeto (encadenables) y no emiten eventos, salvo donde se indica.

new five.Led(pin) o new five.Led({ pin, controller, isAnode }).

Opciones

OpciónSignificado
pinPin del LED. Para brightness/pulse/fade debe ser un pin PWM.
isAnodetrue si el LED es de ánodo común (invierte la lógica on/off). Default false.
controllerDEFAULT (pin directo) o PCA9685 (driver PWM por I2C).

Propiedades: value (último valor escrito), isOn (bool), isRunning (si hay una animación activa como blink/pulse).

Métodos (todos devuelven el LED)

MétodoQué hace
on() / off() / toggle()enciende / apaga / alterna
brightness(0–255)fija el brillo (pin PWM)
intensity(0–100)brillo en porcentaje
blink(ms = 100, cb)parpadea cada ms; cb se llama en cada cambio
pulse(ms = 1000, cb)latido suave (PWM); cb al completar cada ciclo
fade(valor, ms, cb)transición hasta valor en ms; cb al terminar
fadeIn(ms, cb) / fadeOut(ms, cb)sube/baja a tope/cero
stop()detiene la animación (no apaga; usa off() para apagar)

Eventos: no emite.

const led = new five.Led(13);
led.blink(500); // parpadea cada 500 ms
// En un pin PWM, latido suave:
const led9 = new five.Led(9);
led9.pulse(1000);

new five.Led.RGB([rPin, gPin, bPin]) o new five.Led.RGB({ pins: [r, g, b] }) (o pins: { red, green, blue }).

Opciones: pins (los tres pines, PWM), isAnode (ánodo común, default false), controller (DEFAULT, PCA9685, BLINKM, ESPLORA).

Propiedades: isOn, isRunning, values (objeto con los canales), isAnode.

Métodos (devuelven el objeto)

MétodoQué hace
color(valor)fija el color. Acepta hex ("#ff0000"), nombre CSS ("red"), array [r,g,b], objeto {red,green,blue} o tres números r, g, b. Sin argumentos, devuelve el color actual.
on() / off() / toggle()enciende (último color) / apaga / alterna
blink(ms = 100, cb)parpadea
pulse(ms = 1000, cb)latido suave
intensity(0–100)brillo global en porcentaje
stop()detiene la animación

Eventos: no emite.

const rgb = new five.Led.RGB([9, 10, 11]);
rgb.color("#00ff88"); // verde azulado
rgb.blink(1000);

new five.Led.Matrix({ pins: { data, clock, cs }, devices }). Controla matrices de LEDs 8×8 (chip MAX7219/MAX7221). Hereda de LedControl. pins también acepta el array [data, clock, cs]; devices es el número de matrices encadenadas (default 1).

Métodos (el primer parámetro addr es el índice de la matriz cuando hay varias; en una sola, 0)

MétodoQué hace
on(addr) / off(addr)enciende / apaga el display
brightness(addr, 0–100)ajusta el brillo
draw(addr, caracter)dibuja un carácter o un patrón de 8 bytes (una fila por byte)
column(addr, col, valor)enciende/apaga una columna entera con un byte
led(addr, fila, col, estado)enciende/apaga un LED concreto
row(addr, fila, valor)enciende/apaga una fila entera
device(addr)devuelve el estado interno de un device
each(cb)ejecuta cb por cada device encadenado

five.Led.Matrix.CHARS trae un mapa de caracteres listos para draw. No emite eventos.

const matriz = new five.Led.Matrix({ pins: { data: 2, clock: 3, cs: 4 } });
matriz.on(0);
matriz.draw(0, five.Led.Matrix.CHARS[":"]); // dibuja un carácter del mapa

new five.Led.Digits({ pins: { data, clock, cs }, devices }). Igual que Led.Matrix pero para displays numéricos de 7 segmentos (también MAX7219).

Métodos (además de on/off/brightness/device/each): print(texto) muestra un texto/número; digit(addr, posicion, caracter) escribe en una posición concreta. five.Led.Digits.CHARS trae el mapa de 7 segmentos. No emite eventos.

const display = new five.Led.Digits({ pins: { data: 2, clock: 3, cs: 4 } });
display.on(0);
display.print("1234");

new five.Relay(pin) o new five.Relay({ pin, type }). Un relé abre/cierra un circuito.

Opciones: type"NO" (normalmente abierto, default) o "NC" (normalmente cerrado; invierte la lógica).

Propiedades: value (0/1), isClosed (bool), type.

Métodos (devuelven el relé): close() (cierra el circuito = activa en un relé NO), open() (abre = desactiva), toggle(). No emite eventos.

const rele = new five.Relay(8);
rele.close(); // activa
rele.open(); // desactiva

new five.Servo(pin) o new five.Servo({ ...opciones }). Posiciona un servo en un ángulo y lo mantiene.

Opciones

OpciónSignificado
pinPin de señal del servo.
type"standard" (default, posición por ángulo) o "continuous" (rotación continua).
range[min, max] en grados que se permiten (default [0, 180]).
pwmRange[minUs, maxUs] ancho de pulso en microsegundos para los extremos (default [600, 2400]).
offsetcorrección en grados sumada a cada movimiento (default 0).
invertinvierte el sentido.
startAtángulo inicial al crear el servo.
centersi true, arranca centrado (90°).
controllerDEFAULT (pin directo) o PCA9685 (driver por I2C).

Propiedades: position (último ángulo, -1 si no se ha movido), last, history.

Métodos (devuelven el servo)

MétodoQué hace
to(grados, ms?, paso?)va a grados. Con ms, anima el recorrido en ese tiempo.
step(grados, ms?)mueve relativo (suma grados a la posición actual).
min() / max() / center()va al extremo mínimo / máximo / al centro
home()va a la posición inicial (startAt o centro)
sweep(rango?)barre de extremo a extremo de forma continua. Acepta [min,max] u opciones de animación
stop()detiene un barrido o animación
cw(velocidad) / ccw(velocidad)gira en sentido horario / antihorario (solo type: "continuous", velocidad 0–1)

Eventos

EventoCuándoQué recibe
move:completeal terminar un movimiento animado de to()/sweep()sin payload
const servo = new five.Servo(9);
servo.to(90); // al centro
servo.on("move:complete", () => { varG.listo = true; });
servo.to(0, 1000); // anima a 0° en 1 s

new five.ESC(pin) o new five.ESC({ ...opciones }). Controla un variador electrónico (motores de drones, etc.).

Opciones

OpciónSignificado
pinPin de señal.
pwmRange[minUs, maxUs] ancho de pulso (default [1000, 2000]).
neutralpunto neutro (reposo).
device"FORWARD" (default, solo adelante), "FORWARD_REVERSE" (con marcha atrás) o "FORWARD_BRAKE_REVERSE".
controllerDEFAULT o PCA9685.

Propiedades: device, pwmRange, neutral.

Métodos (devuelven el ESC): throttle(valor) — acelera; en FORWARD el valor es un porcentaje 0–100, o microsegundos directos. brake() — lleva al punto neutro. No emite eventos.

const esc = new five.ESC(6);
esc.throttle(30); // 30 % de potencia

new five.Motor(pin) o new five.Motor({ pins, controller, ... }). Motor de corriente continua, con o sin control de dirección según el cableado.

Opciones: pins (objeto { pwm, dir, cdir?, brake?, enable? } según el driver), controller (muchos drivers: DEFAULT, PCA9685, ADAFRUIT_V2, ARDUINO_MOTOR_SHIELD_R3_*, etc.), invertPWM, threshold (velocidad mínima efectiva, default 30).

Propiedades: isOn (bool), currentSpeed (0–255), enabled (bool).

Métodos (devuelven el motor)

MétodoQué hace
start(velocidad?)arranca a la velocidad dada (0–255)
stop()detiene (libre)
brake(ms?)frena activamente; opcional durante ms
release()suelta el freno
forward(velocidad) / fwdadelante (requiere control de dirección)
reverse(velocidad) / revatrás
speed(0–255)fija la velocidad sin cambiar el estado
enable() / disable()habilita / deshabilita el driver

Eventos (todos sin payload): start, stop, brake, release, forward, reverse — se emiten al ejecutarse la acción correspondiente.

const motor = new five.Motor({ pins: { pwm: 3, dir: 12 } });
motor.start(150);
motor.on("stop", () => { varG.motor = "parado"; });

new five.Piezo(pin) o new five.Piezo({ pin, controller }).

Opciones: controllerDEFAULT (zumbador en un pin) o I2C_BACKPACK.

Propiedades: isPlaying (bool).

Métodos (devuelven el zumbador)

MétodoQué hace
note(nota, ms)toca una nota (p. ej. "c4") durante ms
frequency(hz, ms)toca una frecuencia en hercios durante ms
tone(tono, ms)toca un tono (en la unidad interna) durante ms
play(cancion, cb)reproduce una melodía; cb al terminar
off() / stop()silencia

La melodía de play es un objeto { song, tempo }, donde song es una lista de pares [nota, beats] (la nota puede ser null para un silencio) y tempo marca la velocidad. El manejador cb recibe la melodía al completarse. No emite eventos.

const piezo = new five.Piezo(3);
piezo.frequency(440, 200); // 440 Hz durante 200 ms

new five.ShiftRegister([dataPin, clockPin, latchPin]) o new five.ShiftRegister({ pins: { data, clock, latch, reset? }, size, isAnode }). Amplía salidas con un chip 74HC595 (p. ej. displays de 7 segmentos).

Opciones: pins (data/clock/latch, y reset opcional), size (número de registros encadenados, default 1), isAnode (para displays de ánodo común).

Propiedades: value (estado actual), isAnode.

Métodos (devuelven el registro): display(numeroOcadena) — muestra dígitos (0–9) y puntos en un display de 7 segmentos; send(valor) — envía un byte/array de bytes crudos; clear() — apaga todo; reset() — pulso de reset (lanza error si no configuraste el pin reset). No emite eventos.

const sr = new five.ShiftRegister([2, 3, 4]); // data, clock, latch
sr.send(0b10101010);