Interfaz
Componentes para interactuar con una persona: teclas, palanca y pantalla.
Keypad (teclado)
Sección titulada «Keypad (teclado)»new five.Keypad({ controller, ... }). Teclados táctiles, analógicos o matriciales.
Soporta multitáctil según el chip.
Opciones
| Opción | Significado |
|---|---|
controller | El chip (ver lista). Obligatorio en la práctica. |
pin / pins / address | Según el controller (un pin analógico, o I2C). |
keys | Array con las etiquetas de cada tecla (define el alias que recibirás en los eventos). Puede ser array de arrays. |
length | Número de teclas (alternativa a keys, para el controller ANALOG). |
holdtime | ms para disparar hold (default 500). |
Controllers: MPR121 (y variantes MPR121QR2, MPR121_KEYPAD…), VKEY,
ANALOG, AT42QT1070, SX1509.
Propiedades: isMultitouch (bool), value (última lectura cruda).
Métodos: toAlias(indice) → la etiqueta de una tecla; toIndices(raw) → array de
índices de teclas activas.
Eventos — todos reciben un objeto { type, which, timestamp }, donde which es
la(s) tecla(s) implicada(s) y timestamp es Date.now():
| Evento | Cuándo |
|---|---|
down (alias press, tap, hit, touch, impact) | al pulsar tecla(s) |
up (alias release) | al soltar |
hold | al mantener pulsada más de holdtime |
change | en cualquier transición |
const teclado = new five.Keypad({ controller: "MPR121", keys: [["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"], ["*", "0", "#"]],});
teclado.on("down", (evento) => { varG.tecla = evento.which; // la(s) etiqueta(s) pulsada(s)});Joystick
Sección titulada «Joystick»new five.Joystick([xPin, yPin]) o new five.Joystick({ pins: [x, y], ... }).
Joystick analógico de dos ejes, auto-calibrado y normalizado a [-1, 1].
Opciones: pins ([xPin, yPin] analógicos), controller (ANALOG default o
ESPLORA), invert (invierte ambos ejes), invertX / invertY (un solo eje).
Propiedades: x (posición del eje X en [-1, 1]), y (eje Y en [-1, 1]).
Eventos: data → { x, y } (en cada lectura); change → { x, y } (cuando se
mueve).
const joystick = new five.Joystick(["A0", "A1"]);joystick.on("change", () => { varG.x = joystick.x; // -1 a 1 varG.y = joystick.y;});LCD (pantalla de caracteres)
Sección titulada «LCD (pantalla de caracteres)»new five.LCD({ controller, pins, rows, cols, ... }). Pantallas de texto tipo
HD44780, en modo paralelo o por expansor I2C. No emite eventos: se controla
llamando a sus métodos.
Opciones
| Opción | Significado |
|---|---|
controller | PARALLEL (default, conexión directa por pines), JHD1313M1, PCF8574 (y alias LCM1602, LCD2004…), MJKDZ (por I2C). |
pins | En modo paralelo, los pines de control y datos ({ rs, en, data: [...] } o array). |
rows | filas de la pantalla (default 2). |
cols | columnas (default 16). |
bitMode | 4 u 8 (default 4). |
backlight | pin de la retroiluminación (si aplica). |
address | dirección I2C (en los controllers I2C). |
Propiedades: characters (mapa de caracteres personalizados registrados).
Métodos (devuelven la pantalla salvo createChar)
| Método | Qué hace |
|---|---|
print(texto, opciones?) | escribe texto en la posición actual del cursor |
write(codigo) | escribe un único carácter por su código |
clear() | borra toda la pantalla |
home() | lleva el cursor al inicio |
setCursor(col, fila) | posiciona el cursor (columna, fila) |
cursor(fila, col) | con argumentos, posiciona (fila, columna); sin ellos, muestra el cursor |
noCursor() | oculta el cursor |
blink() / noBlink() | activa / desactiva el parpadeo del cursor |
autoscroll() / noAutoscroll() | activa / desactiva el autoscroll |
backlight() / noBacklight() | enciende / apaga la retroiluminación |
on() / off() | enciende / apaga el display |
createChar(nombre, mapa) | crea un carácter personalizado (8 bytes); devuelve su índice (0–7) |
useChar(nombre) | carga en memoria un carácter predefinido para poder usarlo |
Eventos: no emite.
// Pantalla I2C 16x2const lcd = new five.LCD({ controller: "PCF8574", rows: 2, cols: 16 });lcd.clear();lcd.print("Hola Undercromo");
// Segunda línealcd.setCursor(0, 1);lcd.print("Thing en linea");