Ir al contenido

frvn — Introducción

frvn es la API de bajo nivel del protocolo. Trabajas con la placa “a pelo” a través del objeto global board: configuras pines, lees entradas y escribes salidas. Da control fino y cubre casos que no tienen un componente de alto nivel en frvn componentes. Puedes mezclar ambos estilos en el mismo boardCode.

Casi todo en board sigue tres pasos:

  1. Configura el pin con un modo: board.pinMode(pin, board.MODES.OUTPUT).
  2. Escribe (digitalWrite, analogWrite…) o lee (digitalRead, analogRead…).
  3. Las lecturas son por eventos: pasas un callback que la plataforma llama cuando llega un dato nuevo desde la placa. No “preguntas y esperas”; te avisan.
board.pinMode(13, board.MODES.OUTPUT);
board.digitalWrite(13, board.HIGH);
  • board.HIGH vale 1: voltaje alto (5 V o 3,3 V según la placa).
  • board.LOW vale 0: 0 V (masa/GND).

Sirven tanto para escribir un nivel como para comparar lo que lees.

En las páginas de buses (I2C, SPI, serie…) aparecen estas convenciones; conviene tenerlas claras de entrada:

  • Hexadecimal (0x68): un número escrito en base 16. El prefijo 0x lo indica. Direcciones y registros se escriben así porque es como vienen en los datasheets. 0x68 es 104 en decimal: son el mismo número, solo cambia la forma de escribirlo.
  • Byte: un número entre 0 y 255 (8 bits). Es la unidad mínima con la que hablan los buses.
  • Arreglo de bytes ([0x6B, 0x00]): una lista de bytes que se envía o se recibe de un dispositivo, en orden.

Cada pin se configura con un modo. Los que usarás:

ModoPara qué
board.MODES.OUTPUTsalida digital (encender/apagar)
board.MODES.INPUTentrada digital
board.MODES.PULLUPentrada digital con resistencia pull-up interna
board.MODES.ANALOGentrada analógica
board.MODES.PWMsalida PWM (analógica simulada)
board.MODES.SERVOservomotor
board.MODES.I2Cbus I2C
board.MODES.SPIbus SPI
board.MODES.SERIALpuerto serie secundario
board.MODES.DHTsensor de temperatura/humedad
board.MODES.FREQUENCYconteo de pulsos/frecuencia

(Muchos métodos —como analogRead o i2cConfig— ya ponen el modo correcto por ti; lo verás en cada sección.)

  • board.pins — arreglo con el estado de cada pin (modo y valor actuales).
  • board.analogPins — mapa de índice analógico → número de pin físico.
  • board.RESOLUTION — resolución de la placa. En placas Arduino clásicas, la entrada analógica va de 0 a 1023 y la salida PWM de 0 a 255.

Cada guardado reinicia la placa y ejecuta tu boardCode desde cero. Abre los buses al inicio (board.i2cConfig(...), board.spiBegin(...), board.serialConfig(...)) y no asumas que un pin quedó configurado de antes. Ver El entorno.

Pines digitales · analógicos · intervalo de muestreo · PWM · servo · I2C · SPI · serie · DHT · frecuencia · consultas · avanzado · no soportado.