Ir al contenido

Entradas

Componentes que leen el mundo. Todos son emisores de eventos: escuchas con .on("evento", manejador).

new five.Button(pin) o new five.Button({ pin, holdtime, pullup, pulldown, invert }). Botón digital con anti-rebote y detección de “mantener pulsado”.

Opciones

OpciónSignificado
pinPin del botón.
holdtimems que hay que mantener pulsado para disparar hold (default 500).
pulluptrue activa la resistencia pull-up interna (default false).
pulldowntrue activa la resistencia pull-down interna (default false).
invertinvierte la lógica pulsado/suelto. Con pullup se invierte solo.

Propiedades: isDown (bool, si está pulsado), value (0/1).

Eventos (ninguno lleva payload)

EventoCuándo se dispara
down (alias press)al pulsar
up (alias release)al soltar
holdmientras sigue pulsado, cada holdtime ms
const boton = new five.Button(2);
boton.on("down", () => { varG.pulsado = true; });
boton.on("up", () => { varG.pulsado = false; });
boton.on("hold", () => { varG.mantenido = true; });

Con pull-up interna (botón entre el pin y GND, sin resistencia externa):

const boton = new five.Button({ pin: 2, pullup: true });
boton.on("down", () => { varG.pulsado = true; }); // la inversión la maneja el componente

new five.Switch(pin) o new five.Switch({ pin, type, invert }). Modela abierto / cerrado (un interruptor de palanca, un reed, etc.).

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

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

Eventos

EventoCuándoQué recibe el manejador
openal quedar abiertola propia instancia del Switch
closeal quedar cerradola propia instancia del Switch
const sw = new five.Switch(7);
sw.on("close", (s) => { varG.cerrado = s.isClosed; });
sw.on("open", (s) => { varG.cerrado = s.isClosed; });

Sensor (sensor genérico analógico/digital)

Sección titulada «Sensor (sensor genérico analógico/digital)»

new five.Sensor("A0") o new five.Sensor({ pin, freq, range, limit, threshold, type }). Es el componente más usado para entradas analógicas (potenciómetros, LDR, etc.). Filtra ruido por mediana y emite de forma periódica.

Opciones

OpciónSignificado
pinPin (analógico como "A0", o digital).
type"analog" (default) o "digital".
freqms del intervalo de emisión de data (default 25).
range[min, max] del rango crudo esperado (default [0, resolución]).
limit[inferior, superior] para disparar eventos limit (default ninguno).
thresholdcambio mínimo (±) respecto al último valor para emitir change (default 1).

Propiedades

PropiedadQué devuelve
rawúltimo valor crudo leído (0–1023 en analógico)
valuevalor escalado si hay escala activa; si no, el crudo
scaledvalor según la escala fijada con scale()
analogcrudo mapeado a 0–255
constrainedcrudo acotado a 0–255
booleantrue si supera el umbral medio (o el fijado con booleanAt)
resolutionresolución del conversor (p. ej. 1023)
freqintervalo de emisión (se puede reasignar)

Métodos (devuelven el sensor salvo scaleTo/fscaleTo)

MétodoQué hace
scale(low, high) o scale([low, high])fija el rango al que se mapea value/scaled
scaleTo(low, high)devuelve el crudo mapeado (entero) a [low, high] sin alterar el sensor
fscaleTo(low, high)igual que scaleTo pero con decimales
booleanAt(umbral)fija el punto que separa boolean true/false
within(rango, unidad?, cb)llama cb(null, valor) en cada data solo si la propiedad unidad (default "value") cae dentro de rango
enable() / disable()reanuda / detiene las lecturas

Eventos

EventoCuándoQué recibe
datacada freq msel valor (mediana redondeada en analógico; crudo en digital)
changecuando el valor cambia más que thresholdel valor
limitcuando el crudo cruza limit[0] o limit[1]objeto { boundary: "lower" | "upper", value }
limit:loweral cruzar el límite inferiorel valor
limit:upperal cruzar el límite superiorel valor
const pot = new five.Sensor("A0");
// "change": solo cuando cambia el valor
pot.on("change", () => {
varG.crudo = pot.value; // 0–1023
varG.porcentaje = pot.scaleTo(0, 100); // re-mapeado a 0–100
});
// "data": de forma periódica, útil para muestrear
pot.on("data", () => {
pushData("lecturas", pot.value);
});

Disparar algo al cruzar un límite:

const luz = new five.Sensor({ pin: "A1", limit: [100, 900] });
luz.on("limit:lower", () => { varG.oscuro = true; });
luz.on("limit:upper", () => { varG.oscuro = false; });

new five.Pin(pin) o new five.Pin({ pin, type, mode, freq }). Es el componente de más bajo nivel dentro de five: un pin pelado. (Para control fino normalmente es más cómodo el objeto board.)

Opciones: pin (o addr), type ("analog"/"digital"), mode/as (modo inicial: 0 INPUT, 1 OUTPUT, 2 ANALOG, 3 PWM, 4 SERVO), freq (ms del sondeo de lectura, default 20).

Propiedades: value (último valor), mode (modo actual, reasignable), type, addr, isHigh/isLow (bool, en pines digitales).

Métodos (devuelven el pin): high() (pone a alto), low() (pone a bajo), write(valor) (escribe, pasa a OUTPUT), read(cb) (pone en lectura y llama cb(null, valor) en cada ciclo), query(cb) (consulta el estado al hardware; cb recibe el objeto del pin).

Eventos

EventoCuándoQué recibe
highel pin pasa a alto (en sondeo de entrada)value
lowel pin pasa a bajovalue
changecambia el estadovalue
dataen cada ciclo de sondeovalue
const pin = new five.Pin(2);
pin.read((err, valor) => {
varG.estado = valor;
});